Jelajahi Sumber

1. 移除品牌名
2. 仅支持蓝牙设备(移除 USB 设备支持)
3. 替换背景

cc12458 1 bulan lalu
induk
melakukan
6254e4ece4
37 mengubah file dengan 288 tambahan dan 454 penghapusan
  1. 38 6
      TYUsbSDK/src/main/java/com/taiyi/tyusbsdk/OssFileUtil.java
  2. 123 0
      TYUsbSDK/src/main/java/com/taiyi/tyusbsdk/pulse/ProxyManager.java
  3. 38 0
      TYUsbSDK/src/main/java/com/taiyi/tyusbsdk/pulse/TaiyiConfig.java
  4. 21 9
      TYUsbSDK/src/main/java/com/taiyi/tyusbsdk/pulse/TaiyiManager.java
  5. 22 0
      TYUsbSDK/src/main/java/com/taiyi/tyusbsdk/pulse/net/HttpUtil.java
  6. 8 2
      TYUsbSDK/src/main/java/com/taiyi/tyusbsdk/pulse/ui/SuccessActivity.java
  7. TEMPAT SAMPAH
      TYUsbSDK/src/main/res/drawable/deflation.gif
  8. TEMPAT SAMPAH
      TYUsbSDK/src/main/res/drawable/device_3.png
  9. TEMPAT SAMPAH
      TYUsbSDK/src/main/res/drawable/device_7.png
  10. TEMPAT SAMPAH
      TYUsbSDK/src/main/res/drawable/img.png
  11. TEMPAT SAMPAH
      TYUsbSDK/src/main/res/drawable/img_1.png
  12. TEMPAT SAMPAH
      TYUsbSDK/src/main/res/drawable/inflatable.gif
  13. 1 1
      TYUsbSDK/src/main/res/layout/activity_success.xml
  14. 7 0
      TYUsbSDK/src/main/res/values/taiyi.xml
  15. 0 31
      ble/src/main/java/com/taiyi/zhimai/common/util/DialogTipsUtil.java
  16. 9 0
      ble/src/main/java/com/taiyi/zhimai/ui/DeviceSAdapter.java
  17. 15 130
      ble/src/main/java/com/taiyi/zhimai/ui/activity/MeasureMainActivity.java
  18. 0 33
      ble/src/main/java/com/taiyi/zhimai/ui/main/FragmentFactory.java
  19. 0 22
      ble/src/main/java/com/taiyi/zhimai/ui/main/MainB.java
  20. 0 22
      ble/src/main/java/com/taiyi/zhimai/ui/main/MainC.java
  21. TEMPAT SAMPAH
      ble/src/main/res/drawable-xxhdpi/bg_main.png
  22. TEMPAT SAMPAH
      ble/src/main/res/drawable-xxhdpi/device_logo_10.png
  23. TEMPAT SAMPAH
      ble/src/main/res/drawable-xxhdpi/device_logo_7.png
  24. TEMPAT SAMPAH
      ble/src/main/res/drawable-xxhdpi/dialog_bg_otg.png
  25. TEMPAT SAMPAH
      ble/src/main/res/drawable/deflation.gif
  26. TEMPAT SAMPAH
      ble/src/main/res/drawable/device_3.png
  27. TEMPAT SAMPAH
      ble/src/main/res/drawable/device_7.png
  28. TEMPAT SAMPAH
      ble/src/main/res/drawable/hand_left_10.png
  29. TEMPAT SAMPAH
      ble/src/main/res/drawable/hand_right_10.png
  30. 2 2
      ble/src/main/res/drawable/ic_home_bg.xml
  31. TEMPAT SAMPAH
      ble/src/main/res/drawable/img.png
  32. TEMPAT SAMPAH
      ble/src/main/res/drawable/img_1.png
  33. TEMPAT SAMPAH
      ble/src/main/res/drawable/screen.png
  34. 4 95
      ble/src/main/res/layout/activity_measure_main.xml
  35. 0 57
      ble/src/main/res/layout/dialog_i_know_otg.xml
  36. 0 17
      ble/src/main/res/layout/fragment_main_b.xml
  37. 0 27
      ble/src/main/res/layout/fragment_main_c.xml

+ 38 - 6
TYUsbSDK/src/main/java/com/taiyi/tyusbsdk/OssFileUtil.java

@@ -16,10 +16,18 @@ import com.alibaba.sdk.android.oss.common.utils.OSSUtils;
 import com.alibaba.sdk.android.oss.model.PutObjectRequest;
 import com.alibaba.sdk.android.oss.model.PutObjectResult;
 
+import io.reactivex.annotations.Nullable;
+
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+
 public class OssFileUtil {
 
+    private static final ClientConfiguration config = new ClientConfiguration();
     private static OssFileUtil mUploadFileBiz;
+    public static String bucketName = "taiyi";
     public static String endPoint = "https://oss-cn-beijing.aliyuncs.com";
+    public static String target = endPoint.replaceFirst("^(https?://)oss-", "$1" + bucketName + ".oss-");
 
     public static OssFileUtil getInstance() {
         if (mUploadFileBiz == null) {
@@ -28,6 +36,35 @@ public class OssFileUtil {
         return mUploadFileBiz;
     }
 
+
+    static {
+      config.setConnectionTimeout(15 * 1000); // 连接超时,默认15秒。
+      config.setSocketTimeout(15 * 1000); // socket超时,默认15秒。
+      config.setMaxConcurrentRequest(5); // 最大并发请求书,默认5个。
+      config.setMaxErrorRetry(2); // 失败后最大重试次数,默认2次。
+    }
+
+    public static void setProxy(@Nullable String proxy) {
+      if (proxy == null || proxy.isEmpty()) return;
+      android.util.Log.i("log:proxy", "[oss] 设置代理: " + proxy + " ("+ target + ")");
+
+      final String prefix = target;
+      OkHttpClient client = new OkHttpClient.Builder().addInterceptor(chain -> {
+        Request originalRequest = chain.request();
+        String requestUrl = originalRequest.url().toString();
+        if (requestUrl.startsWith(prefix)) {
+          String proxyUrl = requestUrl.replaceFirst(prefix, proxy);
+          android.util.Log.d("log:proxy", "[oss] OkHttp URL: " + proxyUrl + " (" + prefix + ")");
+          Request proxyRequest = originalRequest.newBuilder().url(proxyUrl).build();
+          return chain.proceed(proxyRequest);
+        } else {
+          android.util.Log.d("log:proxy", "[oss] OkHttp URL: " + requestUrl);
+          return chain.proceed(originalRequest);
+        }
+      }).build();
+      config.setOkHttpClient(client);
+    }
+
     private OssFileUtil() {
 
     }
@@ -48,11 +85,6 @@ public class OssFileUtil {
             ServiceException {
         OSSLog.enableLog();
 
-        ClientConfiguration config = new ClientConfiguration();
-        config.setConnectionTimeout(15 * 1000); // 连接超时,默认15秒。
-        config.setSocketTimeout(15 * 1000); // socket超时,默认15秒。
-        config.setMaxConcurrentRequest(5); // 最大并发请求书,默认5个。
-        config.setMaxErrorRetry(2); // 失败后最大重试次数,默认2次。
 
         OSSCredentialProvider credentialProvider = new OSSCustomSignerCredentialProvider() {
             @Override
@@ -63,7 +95,7 @@ public class OssFileUtil {
 
         OSS sOss = new OSSClient(context, OssFileUtil.endPoint, credentialProvider, config);
 
-        PutObjectRequest put = new PutObjectRequest("taiyi", key, path);
+        PutObjectRequest put = new PutObjectRequest(bucketName, key, path);
         if (progressCallback != null) {
             put.setProgressCallback(progressCallback);
         }

+ 123 - 0
TYUsbSDK/src/main/java/com/taiyi/tyusbsdk/pulse/ProxyManager.java

@@ -0,0 +1,123 @@
+package com.taiyi.tyusbsdk.pulse;
+
+import android.text.TextUtils;
+import android.webkit.WebResourceRequest;
+import android.webkit.WebResourceResponse;
+
+import com.taiyi.tyusbsdk.OssFileUtil;
+import com.taiyi.tyusbsdk.pulse.net.HttpUtil;
+
+import java.io.FilterInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import io.reactivex.annotations.Nullable;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.Response;
+import okhttp3.ResponseBody;
+
+public class ProxyManager {
+  private static volatile ProxyManager instance;
+
+  public static ProxyManager getInstance() {
+    if (instance == null) {
+      synchronized (ProxyManager.class) {
+        if (instance == null) instance = new ProxyManager();
+      }
+    }
+    return instance;
+  }
+
+  private ProxyManager() {
+  }
+
+  public HashMap<String, String> pool = new HashMap<>();
+
+  public void init(HashMap<String, String> pool) {
+    this.pool = pool;
+    this.client = new OkHttpClient();
+
+    Map.Entry<String, String> oss = findEntry(entry -> entry.getKey().startsWith(OssFileUtil.target));
+    if (oss != null) OssFileUtil.setProxy(oss.getValue());
+
+    Map.Entry<String, String> api = findEntry(entry -> entry.getKey().startsWith(HttpUtil.getBaseUrl()));
+    if (api != null) HttpUtil.setBaseUrl(api.getValue());
+  }
+
+  private OkHttpClient client;
+
+
+  @Nullable
+  public WebResourceResponse interceptWebViewRequest(WebResourceRequest request) {
+    String targetUrl = request.getUrl().toString();
+    Map.Entry<String, String> pool = findEntry(entry -> targetUrl.startsWith(entry.getKey()));
+
+    if (pool != null) {
+      String proxyUrl = targetUrl.replaceFirst(pool.getKey(), pool.getValue());
+      android.util.Log.i("log:proxy", "[webview] OkHttp URL: " + proxyUrl + " (" + pool.getKey() + ")");
+      try {
+        Request.Builder okRequest = new Request.Builder();
+
+        okRequest.url(proxyUrl);
+        okRequest.method(request.getMethod(), null);
+
+        Map<String, String> requestHeaders = request.getRequestHeaders();
+        if (requestHeaders != null) for (Map.Entry<String, String> header : requestHeaders.entrySet()) okRequest.addHeader(header.getKey(), header.getValue());
+
+
+        Response okResponse = client.newCall(okRequest.build()).execute();
+
+        String contentType = okResponse.header("Content-Type", "text/html; charset=utf-8");
+        String mimeType = "text/html";
+        String encoding = "utf-8";
+        if (contentType != null) {
+          String[] parts = contentType.split(";");
+          if (parts.length > 0) {
+            mimeType = parts[0].trim();
+          }
+          for (String part : parts) {
+            part = part.trim();
+            if (part.toLowerCase().startsWith("charset=")) {
+              encoding = part.substring("charset=".length()).trim();
+            }
+          }
+        }
+
+        Map<String, String> responseHeaders = new HashMap<>();
+        for (Map.Entry<String, List<String>> entry : okResponse.headers().toMultimap().entrySet()) responseHeaders.put(entry.getKey(), TextUtils.join(";", entry.getValue()));
+
+
+        ResponseBody body = okResponse.body();
+        InputStream stream = null;
+        if (body != null) stream = new FilterInputStream(body.byteStream()) {
+          @Override
+          public void close() throws IOException {
+            super.close();
+            okResponse.close();
+          }
+        };
+
+        return new WebResourceResponse(mimeType, encoding, okResponse.code(), okResponse.message(), responseHeaders, stream);
+      } catch (Exception ignored) {
+      }
+    }
+    return null;
+  }
+
+  public Map.Entry<String, String> findEntry(Predicate<Map.Entry<String, String>> predicate) {
+    for (Map.Entry<String, String> entry : pool.entrySet()) {
+      if (predicate.test(entry)) {
+        return entry;
+      }
+    }
+    return null;
+  }
+
+  public interface Predicate<T> {
+    boolean test(T t);
+  }
+}

+ 38 - 0
TYUsbSDK/src/main/java/com/taiyi/tyusbsdk/pulse/TaiyiConfig.java

@@ -0,0 +1,38 @@
+package com.taiyi.tyusbsdk.pulse;
+
+import android.content.Context;
+import android.content.res.Resources;
+
+import com.taiyi.tyusbsdk.R;
+
+import java.util.HashMap;
+
+public class TaiyiConfig {
+  private final String appId;
+  private final String appSecret;
+  public boolean skipReport = false;
+  public HashMap<String, String> proxy = new HashMap<>();
+
+  public static TaiyiConfig getDefault(Context context) {
+    return new TaiyiConfig(context);
+  }
+
+  public TaiyiConfig(String appId, String appSecret) {
+    this.appId = appId;
+    this.appSecret = appSecret;
+  }
+
+  private TaiyiConfig(Context context) {
+    Resources resources = context.getApplicationContext().getResources();
+    this.appId = resources.getString(R.string.taiyi_app_id);
+    this.appSecret = resources.getString(R.string.taiyi_app_secret);
+  }
+
+  public String getAppId() {
+    return appId;
+  }
+
+  public String getAppSecret() {
+    return appSecret;
+  }
+}

+ 21 - 9
TYUsbSDK/src/main/java/com/taiyi/tyusbsdk/pulse/TaiyiManager.java

@@ -6,6 +6,9 @@ import android.app.Application;
 import android.content.Context;
 import android.content.Intent;
 import android.os.Build;
+import android.text.TextUtils;
+
+import androidx.annotation.Nullable;
 
 import com.taiyi.tyusbsdk.ResultListener;
 import com.taiyi.tyusbsdk.pulse.ui.HelpActivity;
@@ -31,6 +34,7 @@ public class TaiyiManager {
     private String uid;
 
     private static TaiyiManager instance;
+    private static TaiyiConfig _config;
     private Context context;
     public static final int CAPTURE_REQUEST = 10101;
     public static final String CAPTURE_IMG_PATH = "img_path";
@@ -95,19 +99,27 @@ public class TaiyiManager {
         return instance;
     }
 
+    public static TaiyiConfig getConfig() {
+        return _config;
+    }
+
+    public void init(Application application) {
+        this.init(application, null);
+    }
+
     public void init(String appId, String appSecret, Application application) {
-        this.appId = appId;
-        this.appSecret = appSecret;
-        this.context = application;
+        this.init(application, new TaiyiConfig(appId, appSecret));
     }
 
+    public void init(Application application, @Nullable TaiyiConfig config) {
+        this.context = application;
 
-    public void toTargetMeasure(String uid, Class targetActivity, Activity activity, SkipInterface skipInterface, ResultListener listener) {
-        this.uid = uid;
-        Intent intent = new Intent(activity, targetActivity);
-        activity.startActivity(intent);
-        mSkipInterface = skipInterface;
-        setResultListener(listener);
+        _config = config == null ? TaiyiConfig.getDefault(context.getApplicationContext()) : config;
+
+        this.appId = _config.getAppId();
+        this.appSecret = _config.getAppSecret();
+
+        ProxyManager.getInstance().init(_config.proxy);
     }
 
 

+ 22 - 0
TYUsbSDK/src/main/java/com/taiyi/tyusbsdk/pulse/net/HttpUtil.java

@@ -4,6 +4,8 @@ import android.content.Context;
 import android.text.TextUtils;
 import android.widget.Toast;
 
+import androidx.annotation.Nullable;
+
 import com.android.volley.AuthFailureError;
 import com.android.volley.Request;
 import com.android.volley.RequestQueue;
@@ -38,6 +40,7 @@ import java.security.cert.CertificateFactory;
 import java.security.cert.X509Certificate;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Objects;
 
 import javax.net.ssl.KeyManager;
 import javax.net.ssl.KeyManagerFactory;
@@ -80,6 +83,25 @@ public class HttpUtil {
     //    private static String saveMaiReportUrl = "https://api.test.reborn-tech.com/pmsecurity/measure/save";
     //    private static String getCombinedReportDesc = "https://api.test.reborn-tech.com/pmsecurity/report/getCombinedMai";
 
+    public static String getBaseUrl() {
+        return baseUrl.endsWith("/") ? baseUrl.substring(0, baseUrl.length() - 1) : baseUrl;
+    }
+    public static void setBaseUrl(@Nullable String baseUrl) {
+        if (baseUrl == null || baseUrl.isEmpty() || Objects.equals(HttpUtil.baseUrl, baseUrl)) return;
+        if (!baseUrl.endsWith("/")) baseUrl += "/";
+
+        android.util.Log.i("log:proxy", "[api] 设置代理: " + baseUrl + " (" + HttpUtil.baseUrl + ")");
+
+        checkUrl = checkUrl.replace(HttpUtil.baseUrl, baseUrl);
+        uuidUrl = uuidUrl.replace(HttpUtil.baseUrl, baseUrl);
+        saveMaiHeatReportUrl = saveMaiHeatReportUrl.replace(HttpUtil.baseUrl, baseUrl);
+        measurePulseSaveUrl = measurePulseSaveUrl.replace(HttpUtil.baseUrl, baseUrl);
+        measurePulseResultUrl = measurePulseResultUrl.replace(HttpUtil.baseUrl, baseUrl);
+        saveCombinedUrl = saveCombinedUrl.replace(HttpUtil.baseUrl, baseUrl);
+        saveMaiReportUrl = saveMaiReportUrl.replace(HttpUtil.baseUrl, baseUrl);
+        getCombinedReportDesc = getCombinedReportDesc.replace(HttpUtil.baseUrl, baseUrl);
+        HttpUtil.baseUrl = baseUrl;
+    }
 
     public HttpUtil getRequestQueue(Context context) {
         mContext = context;

+ 8 - 2
TYUsbSDK/src/main/java/com/taiyi/tyusbsdk/pulse/ui/SuccessActivity.java

@@ -4,13 +4,13 @@ import android.annotation.SuppressLint;
 import android.graphics.Bitmap;
 import android.net.http.SslError;
 import android.text.TextUtils;
-import android.util.Log;
 import android.view.View;
 import android.webkit.JavascriptInterface;
 import android.webkit.SslErrorHandler;
 import android.webkit.WebChromeClient;
 import android.webkit.WebResourceError;
 import android.webkit.WebResourceRequest;
+import android.webkit.WebResourceResponse;
 import android.webkit.WebSettings;
 import android.webkit.WebView;
 import android.webkit.WebViewClient;
@@ -19,6 +19,7 @@ import android.widget.ProgressBar;
 import android.widget.TextView;
 
 import com.taiyi.tyusbsdk.R;
+import com.taiyi.tyusbsdk.pulse.ProxyManager;
 import com.taiyi.tyusbsdk.pulse.TaiyiManager;
 import com.taiyi.tyusbsdk.pulse.net.HttpUtil;
 import com.taiyi.tyusbsdk.pulse.net.TokenOverDueHttpImpl;
@@ -78,7 +79,6 @@ public class SuccessActivity extends BaseActivity {
 
         url += "report.html#/?mid=" + measureId + "&access_session=" + HttpUtil.AuthorizationValue + "&appId=" +
                 TaiyiManager.getInstance().getAppId();
-        Log.d("SuccessActivity", "url:" + url);
         mWeb.loadUrl(url);
     }
 
@@ -270,6 +270,12 @@ public class SuccessActivity extends BaseActivity {
                 super.onReceivedError(webView, webResourceRequest, webResourceError);
                 ProgressDialogUtil.close();
             }
+
+            @Override
+            public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
+                WebResourceResponse response = ProxyManager.getInstance().interceptWebViewRequest(request);
+                return response != null ? response : super.shouldInterceptRequest(view, request);
+            }
         });
     }
 

TEMPAT SAMPAH
TYUsbSDK/src/main/res/drawable/deflation.gif


TEMPAT SAMPAH
TYUsbSDK/src/main/res/drawable/device_3.png


TEMPAT SAMPAH
TYUsbSDK/src/main/res/drawable/device_7.png


TEMPAT SAMPAH
TYUsbSDK/src/main/res/drawable/img.png


TEMPAT SAMPAH
TYUsbSDK/src/main/res/drawable/img_1.png


TEMPAT SAMPAH
TYUsbSDK/src/main/res/drawable/inflatable.gif


+ 1 - 1
TYUsbSDK/src/main/res/layout/activity_success.xml

@@ -30,7 +30,7 @@
     </RelativeLayout>
 
     <ProgressBar
-        android:id="@id/progress"
+        android:id="@+id/progress"
         style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal"
         android:layout_width="match_parent"
         android:layout_height="2dp"

+ 7 - 0
TYUsbSDK/src/main/res/values/taiyi.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+  <!-- 太一App的ID,用于SDK初始化 -->
+  <string name="taiyi_app_id">nehijR6y</string>
+  <!-- 太一App的密钥,用于SDK初始化 -->
+  <string name="taiyi_app_secret">f740435d1b84b9944a52f064dd1ecf6e8a76f546</string>
+</resources>

+ 0 - 31
ble/src/main/java/com/taiyi/zhimai/common/util/DialogTipsUtil.java

@@ -39,35 +39,4 @@ public class DialogTipsUtil {
     public interface DeviceSelectCallback {
         void onSuccess(BleDevice bleDevice);
     }
-
-
-    public static Dialog showIKnowOtg(Context context, String message) {
-        final Dialog dialog = new Dialog(context, R.style.simpleDialogStyle);
-        View view = LayoutInflater.from(context).inflate(R.layout.dialog_i_know_otg, null);
-        TextView tv_content = (TextView) view.findViewById(R.id.tv_content);
-        tv_content.setGravity(Gravity.CENTER);
-        tv_content.setText(message);
-        ImageView iv_close = view.findViewById(R.id.iv_close);
-        iv_close.setOnClickListener(new OnClickNoDoubleListener() {
-            @Override
-            public void onNoDoubleClick(View view) {
-                dialog.dismiss();
-            }
-        });
-        TextView tv_i_know = (TextView) view.findViewById(R.id.tv_i_know);
-        tv_i_know.setOnClickListener(new OnClickNoDoubleListener() {
-            @Override
-            public void onNoDoubleClick(View view) {
-                dialog.dismiss();
-                Intent intent = new Intent(Settings.ACTION_SETTINGS);
-                context.startActivity(intent);
-            }
-        });
-        dialog.setContentView(view,
-                new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.MATCH_PARENT, ViewGroup.MarginLayoutParams.MATCH_PARENT));
-        dialog.setCancelable(false);
-        dialog.show();
-        sDialogs.add(dialog);
-        return dialog;
-    }
 }

+ 9 - 0
ble/src/main/java/com/taiyi/zhimai/ui/DeviceSAdapter.java

@@ -72,6 +72,7 @@ public class DeviceSAdapter extends RecyclerView.Adapter<DeviceSAdapter.ViewHold
                     mPosition = position;
                     viewHolder.ivChoose.setImageResource(R.drawable.ic_check);
                     BleDeviceD.selected = true;
+                    if (getItemCount() == 1 && onConnectClickListener != null) onConnectClickListener.onConnectClick();
                 }
             }
         });
@@ -96,6 +97,14 @@ public class DeviceSAdapter extends RecyclerView.Adapter<DeviceSAdapter.ViewHold
         return mDeviceS;
     }
 
+    public interface OnConnectClickListener {
+        void onConnectClick();
+    }
+    private OnConnectClickListener onConnectClickListener;
+
+    public void setOnConnectClickListener(OnConnectClickListener listener) {
+        this.onConnectClickListener = listener;
+    }
 
    public static class ViewHolder extends RecyclerView.ViewHolder {
         public ImageView ivChoose;

+ 15 - 130
ble/src/main/java/com/taiyi/zhimai/ui/activity/MeasureMainActivity.java

@@ -14,7 +14,6 @@ import android.os.Handler;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
-import android.view.animation.Animation;
 import android.view.animation.ScaleAnimation;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
@@ -27,8 +26,6 @@ import androidx.appcompat.app.AppCompatActivity;
 import androidx.constraintlayout.widget.ConstraintLayout;
 import androidx.core.app.ActivityCompat;
 import androidx.core.content.ContextCompat;
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentPagerAdapter;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 import androidx.viewpager.widget.ViewPager;
@@ -52,7 +49,6 @@ import com.taiyi.tyusbsdk.pulse.bean.PulseResult;
 import com.taiyi.tyusbsdk.pulse.net.HttpImpl;
 import com.taiyi.tyusbsdk.pulse.net.HttpUtil;
 import com.taiyi.tyusbsdk.pulse.net.TokenOverDueHttpImpl;
-import com.taiyi.tyusbsdk.pulse.ui.MeasureHandsActivity;
 import com.taiyi.tyusbsdk.pulse.ui.SuccessActivity;
 import com.taiyi.tyusbsdk.pulse.util.AppManager;
 import com.taiyi.tyusbsdk.pulse.util.DialogTipUtil;
@@ -61,17 +57,13 @@ import com.taiyi.tyusbsdk.pulse.util.ProgressDialogUtil;
 import com.taiyi.tyusbsdk.pulse.util.QTimeUtil;
 import com.taiyi.tyusbsdk.pulse.util.ToastUtil;
 import com.taiyi.zhimai.R;
-import com.taiyi.zhimai.common.util.AppSizeCalUtil;
 import com.taiyi.zhimai.common.util.DialogTipsUtil;
 import com.taiyi.zhimai.ui.DeviceSAdapter;
 import com.taiyi.zhimai.ui.activity.measure.BleMeasureFlowActivity;
 import com.taiyi.zhimai.ui.activity.measure.Measure3Activity;
-import com.taiyi.zhimai.ui.main.AlphaAndScalePageTransformer;
-import com.taiyi.zhimai.ui.main.FragmentFactory;
 
 import org.greenrobot.eventbus.EventBus;
 
-import java.lang.reflect.Field;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
@@ -95,7 +87,6 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
     private int connect_mode;
     private ImageView ivBack;
     private TextView mTvScan;
-    private TextView mTvOtg;
     private TabLayout mTl;
     private ViewPager mVp;
     private ConstraintLayout mClMain;
@@ -111,7 +102,6 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
     private RecyclerView mRecyclerView;
     private TextView mTvConnect;
     private Dialog mDialog;
-    private Dialog otgDialog;
     private DeviceSAdapter mDeviceSAdapter;
     private ScaleAnimation scaleAnimation;
     private List<String> mTabTitle;
@@ -128,30 +118,22 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
 
     @Override
     protected void init() {
+        connect_mode = CONNECT_MODE_BLE;
         initViews();
-        initTab();
-
-
-        getToken();
-
-        initDeviceDialog();
         setDeviceStatusListener();
-
         resetToMeasure();
+        getToken();
     }
 
 
     private void initViews() {
         ivBack = findViewById(R.id.iv_back);
-        mTl = findViewById(R.id.tl);
-        mVp = findViewById(R.id.vp);
         mIvDevice = findViewById(R.id.iv_device);
-        mTvOtg = findViewById(R.id.tv_otg);
         mTvScan = findViewById(R.id.tv_scan);
         mClMain = findViewById(R.id.cl_main);
         mClSecond = findViewById(R.id.cl_second);
         mIvBg = findViewById(R.id.iv_bg);
-        mTvSubmit = findViewById(com.taiyi.tyusbsdk.R.id.tv_submit);
+        mTvSubmit = findViewById(R.id.tv_submit);
         mLlBack = findViewById(R.id.ll_back);
         mTvLeft = findViewById(R.id.tv_left);
         mtvTypeLeft = findViewById(R.id.tv_type_left);
@@ -175,93 +157,6 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
         ivBack.setOnClickListener(v -> finish());
     }
 
-    private void initTab() {
-        mTabTitle = new ArrayList<>();
-        mTabTitle.add(getString(R.string.device_ble));
-        mTabTitle.add(getString(R.string.device_usb));
-        scaleAnimation = new ScaleAnimation(1f, 1.2f, 1f, 1.2f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
-        scaleAnimation.setDuration(200);//动画开始到结束的时间(毫秒)
-        scaleAnimation.setFillAfter(true);//缩放后保持状态
-        mTl.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
-
-            @Override
-            public void onTabSelected(TabLayout.Tab tab) {
-                if (tab.getPosition() == 0) {
-                    connect_mode = CONNECT_MODE_BLE;
-                    mTvScan.setText(R.string.pulse_connect2);
-                } else if (tab.getPosition() == 1) {
-                    connect_mode = CONNECT_MODE_USB;
-                    mTvScan.setText(R.string.pulse_connect2);
-                    if (mTvOtg == null) {
-                        mTvOtg = findViewById(R.id.tv_otg);
-
-                        mTvOtg.setOnClickListener(v -> {
-                            otgDialog = DialogTipsUtil.showIKnowOtg(MeasureMainActivity.this, getString(R.string.otg_tip_3));
-                        });
-
-
-                    }
-                }
-                View tabView = tab.view;
-                try {
-                    Field mTextViewField = tabView.getClass().getDeclaredField("textView");
-                    mTextViewField.setAccessible(true);
-                    TextView textView = (TextView) mTextViewField.get(tabView);
-                    textView.startAnimation(scaleAnimation);
-
-                } catch (NoSuchFieldException | IllegalAccessException e) {
-                    e.printStackTrace();
-                }
-
-            }
-
-            @Override
-            public void onTabUnselected(TabLayout.Tab tab) {
-                View tabView = tab.view;
-                try {
-                    Field mTextViewField = tabView.getClass().getDeclaredField("textView");
-                    mTextViewField.setAccessible(true);
-                    TextView textView = (TextView) mTextViewField.get(tabView);
-                    textView.clearAnimation();
-                } catch (NoSuchFieldException | IllegalAccessException e) {
-                    e.printStackTrace();
-                }
-            }
-
-            @Override
-            public void onTabReselected(TabLayout.Tab tab) {
-
-            }
-        });
-
-        mTl.setupWithViewPager(mVp);
-
-        mVp.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
-
-
-            @Override
-            public Fragment getItem(int i) {
-                return FragmentFactory.create(i);
-            }
-
-            @Override
-            public int getCount() {
-                return mTabTitle.size();
-            }
-
-            @Nullable
-            @Override
-            public CharSequence getPageTitle(int position) {
-                return mTabTitle.get(position);
-            }
-        });
-
-        mVp.setPageMargin((int) (AppSizeCalUtil.getWidth(this) * 0.03));
-        mVp.setOffscreenPageLimit(3);
-        mVp.setPageTransformer(true, new AlphaAndScalePageTransformer());
-
-    }
-
 
     private void getToken() {
         HttpUtil.getInstance().getRequestQueue(this).check(new HttpImpl<String>() {
@@ -300,8 +195,8 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
                         saveMai();
                         break;
                     default:
-
                         BleController.getInstance().init(getApplication());
+                        doConnect();
                 }
 
             }
@@ -350,12 +245,10 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
                     currentDeviceType = 7;
                     BleController.getInstance().setConnectedDeviceType(7);
                 } else {
-                    currentDeviceType = 3;
-                    BleController.getInstance().setConnectedDeviceType(3);
-                    mIvDevice.setImageResource(R.drawable.device_3);
+                    Toast.makeText(MeasureMainActivity.this, "设备硬件版本(" + hardware + ")过低不支持", Toast.LENGTH_SHORT).show();
+                    return;
                 }
                 mIvDevice.setVisibility(View.VISIBLE);
-
             }
 
             @Override
@@ -384,10 +277,8 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
 
     private void doConnect() {
         if (connect_mode == CONNECT_MODE_BLE) {
+            initDeviceDialog();
             setScanRule();
-        } else if (connect_mode == CONNECT_MODE_USB) {
-            Intent intent = new Intent(this, MeasureHandsActivity.class);
-            startActivity(intent);
         }
     }
 
@@ -494,7 +385,7 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
             });
 
 
-            setDialogData(mDeviceSAdapter, -1, new DialogTipsUtil.DeviceSelectCallback() {
+            setDialogData(mDeviceSAdapter, new DialogTipsUtil.DeviceSelectCallback() {
                 @Override
                 public void onSuccess(BleDevice bleDevice) {
                     BleManager.getInstance().cancelScan();
@@ -609,8 +500,7 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
 
                 if (AppManager.getAppManager().currentActivity() != null &&
                         AppManager.getAppManager().currentActivity() instanceof MeasureMainActivity && !isFinishing()) {
-                    DialogTipUtil.showIKnow(MeasureMainActivity.this, getString(R.string.device_disconnect));
-
+                    DialogTipUtil.showIKnow(MeasureMainActivity.this, getString(R.string.device_disconnect), msg -> doConnect());
                 } else {
                     EventBus.getDefault().post(new BleEvent(BleEvent.TYPE_DISCONNECT));
                 }
@@ -630,14 +520,18 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
     }
 
 
-    private void setDialogData(final DeviceSAdapter adapter, int selectPosition, final DialogTipsUtil.DeviceSelectCallback callbackI) {
+    private void setDialogData(final DeviceSAdapter adapter, final DialogTipsUtil.DeviceSelectCallback callbackI) {
         if (adapter == null) {
             return;
         }
 
         adapter.setRecycler(mRecyclerView);
 
-        adapter.setPosition(selectPosition);
+        adapter.setPosition(0);
+
+        adapter.setOnConnectClickListener(() -> {
+            if (mTvConnect != null) mTvConnect.performClick();
+        });
         mTvConnect.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -652,12 +546,6 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
                 }
                 callbackI.onSuccess(adapter.getData().get(posClick).mDevice);
                 mDialog.dismiss();
-                if (connect_mode == CONNECT_MODE_USB) {
-                    mClMain.setVisibility(View.GONE);
-                    mIvBg.setVisibility(View.GONE);
-                    mClSecond.setVisibility(View.VISIBLE);
-
-                }
             }
         });
         mRecyclerView.setAdapter(adapter);
@@ -1014,9 +902,6 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
         if (mDialog != null) {
             mDialog.dismiss();
         }
-        if (otgDialog != null) {
-            otgDialog.dismiss();
-        }
         super.onDestroy();
         if (BleController.getInstance().isConnected()) {
             BleController.getInstance().disconnect();

+ 0 - 33
ble/src/main/java/com/taiyi/zhimai/ui/main/FragmentFactory.java

@@ -1,33 +0,0 @@
-package com.taiyi.zhimai.ui.main;
-
-import android.util.SparseArray;
-
-import androidx.fragment.app.Fragment;
-
-
-/**
- * Created by zbh on 2017/12/25.
- * Version: 1.0
- */
-
-public class FragmentFactory {
-    private static SparseArray<Fragment> mFragments = new SparseArray<>();
-
-    public static Fragment create(int position) {
-        Fragment fragment = mFragments.get(position);
-        if (fragment == null) {
-            switch (position) {
-                case 0:
-                    fragment = new MainB();
-                    break;
-                case 1:
-                    fragment = new MainC();
-                    break;
-
-            }
-            mFragments.put(position, fragment);
-        }
-
-        return fragment;
-    }
-}

+ 0 - 22
ble/src/main/java/com/taiyi/zhimai/ui/main/MainB.java

@@ -1,22 +0,0 @@
-package com.taiyi.zhimai.ui.main;
-
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import com.taiyi.zhimai.R;
-
-import androidx.fragment.app.Fragment;
-
-
-public class MainB extends Fragment {
-
-
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
-        // Inflate the layout for this fragment
-        return inflater.inflate(R.layout.fragment_main_b, container, false);
-    }
-}

+ 0 - 22
ble/src/main/java/com/taiyi/zhimai/ui/main/MainC.java

@@ -1,22 +0,0 @@
-package com.taiyi.zhimai.ui.main;
-
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import com.taiyi.zhimai.R;
-
-import androidx.fragment.app.Fragment;
-
-
-public class MainC extends Fragment {
-
-
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
-        // Inflate the layout for this fragment
-        return inflater.inflate(R.layout.fragment_main_c, container, false);
-    }
-}

TEMPAT SAMPAH
ble/src/main/res/drawable-xxhdpi/bg_main.png


TEMPAT SAMPAH
ble/src/main/res/drawable-xxhdpi/device_logo_10.png


TEMPAT SAMPAH
ble/src/main/res/drawable-xxhdpi/device_logo_7.png


TEMPAT SAMPAH
ble/src/main/res/drawable-xxhdpi/dialog_bg_otg.png


TEMPAT SAMPAH
ble/src/main/res/drawable/deflation.gif


TEMPAT SAMPAH
ble/src/main/res/drawable/device_3.png


TEMPAT SAMPAH
ble/src/main/res/drawable/device_7.png


TEMPAT SAMPAH
ble/src/main/res/drawable/hand_left_10.png


TEMPAT SAMPAH
ble/src/main/res/drawable/hand_right_10.png


+ 2 - 2
ble/src/main/res/drawable/ic_home_bg.xml

@@ -3,8 +3,8 @@
     android:shape="rectangle">
     <corners android:radius="10dp" />
     <gradient
-        android:endColor="@color/violet_4"
-        android:startColor="@color/violet_3"
+        android:endColor="#1b290a"
+        android:startColor="#22883d"
         android:type="linear" />
 
 </shape>

TEMPAT SAMPAH
ble/src/main/res/drawable/img.png


TEMPAT SAMPAH
ble/src/main/res/drawable/img_1.png


TEMPAT SAMPAH
ble/src/main/res/drawable/screen.png


+ 4 - 95
ble/src/main/res/layout/activity_measure_main.xml

@@ -11,7 +11,7 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:scaleType="fitXY"
-        android:src="@drawable/bg_main" />
+        android:src="@drawable/screen" />
 
     <com.taiyi.zhimai.ui.widget.statusbar.StatusBarHeightView
         android:layout_width="match_parent"
@@ -31,7 +31,8 @@
                 <RelativeLayout
                     android:id="@+id/rl_title"
                     android:layout_width="match_parent"
-                    android:layout_height="50dp">
+                    android:layout_height="50dp"
+                    tools:ignore="MissingConstraints">
 
                     <ImageView
                         android:id="@+id/iv_back"
@@ -45,69 +46,6 @@
 
                 </RelativeLayout>
 
-                <com.google.android.material.tabs.TabLayout
-                    android:background="@color/trans_pure"
-                    android:id="@+id/tl"
-                    android:layout_width="match_parent"
-                    android:layout_height="32dp"
-                    android:layout_marginTop="50dp"
-                    app:layout_constraintLeft_toLeftOf="parent"
-                    app:layout_constraintRight_toRightOf="parent"
-                    app:layout_constraintTop_toTopOf="parent"
-                    app:tabGravity="fill"
-                    app:tabIndicator="@drawable/indicator_orange_round_corner"
-                    app:tabIndicatorColor="@color/orange"
-                    app:tabIndicatorFullWidth="true"
-                    app:tabMaxWidth="0dp"
-                    app:tabMode="fixed"
-                    app:tabPaddingBottom="1dp"
-                    app:tabPaddingEnd="-10dp"
-                    app:tabPaddingStart="-10dp"
-                    app:tabPaddingTop="1dp"
-                    app:tabSelectedTextColor="@color/white"
-                    app:tabTextAppearance="@style/TabLayoutTextStyle"
-                    app:tabTextColor="@color/gray_plus1">
-
-                    <com.google.android.material.tabs.TabItem
-                        android:id="@+id/tab_1"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:text="@string/device_ble" />
-
-                    <com.google.android.material.tabs.TabItem
-                        android:id="@+id/tab_2"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:text="@string/device_usb" />
-
-
-                </com.google.android.material.tabs.TabLayout>
-
-
-                <androidx.constraintlayout.widget.Guideline
-                    android:id="@+id/gd_vp_l"
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:orientation="vertical"
-                    app:layout_constraintGuide_percent="0.05" />
-
-                <androidx.constraintlayout.widget.Guideline
-                    android:id="@+id/gd_vp_r"
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:orientation="vertical"
-                    app:layout_constraintGuide_percent="0.95" />
-
-                <androidx.viewpager.widget.ViewPager
-                    android:id="@+id/vp"
-                    android:layout_width="0dp"
-                    android:layout_height="0dp"
-                    android:layout_marginTop="50dp"
-                    app:layout_constraintBottom_toTopOf="@+id/gd_vp"
-                    app:layout_constraintLeft_toLeftOf="@id/gd_vp_l"
-                    app:layout_constraintRight_toRightOf="@id/gd_vp_r"
-                    app:layout_constraintTop_toBottomOf="@id/tl" />
-
                 <TextView
                     android:id="@+id/tv_scan"
                     android:layout_width="wrap_content"
@@ -130,7 +68,7 @@
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:orientation="horizontal"
-                    app:layout_constraintGuide_percent="0.79" />
+                    app:layout_constraintGuide_percent="0.5" />
 
 
             </androidx.constraintlayout.widget.ConstraintLayout>
@@ -216,35 +154,6 @@
                     app:layout_constraintRight_toLeftOf="@id/guideline2"
                     app:layout_constraintTop_toBottomOf="@id/guideline3" />
 
-                <LinearLayout
-                    android:id="@+id/ll_device_10"
-                    android:layout_width="0dp"
-                    android:layout_height="0dp"
-                    android:gravity="center"
-                    android:orientation="horizontal"
-                    android:padding="10dp"
-                    android:visibility="gone"
-                    app:layout_constraintBottom_toTopOf="@id/guideline4"
-                    app:layout_constraintLeft_toLeftOf="parent"
-                    app:layout_constraintRight_toRightOf="parent"
-                    app:layout_constraintTop_toBottomOf="@id/guideline3">
-
-                    <ImageView
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        android:scaleType="centerCrop"
-                        android:src="@drawable/hand_left_10" />
-
-                    <ImageView
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_marginLeft="10dp"
-                        android:layout_weight="1"
-                        android:scaleType="centerCrop"
-                        android:src="@drawable/hand_right_10" />
-                </LinearLayout>
-
                 <androidx.constraintlayout.widget.ConstraintLayout
                     android:id="@+id/cl_hand"
                     android:layout_width="match_parent"

+ 0 - 57
ble/src/main/res/layout/dialog_i_know_otg.xml

@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content">
-
-    <ImageView
-        android:id="@+id/iv_dialog_otg_bg"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:src="@drawable/dialog_bg_otg" />
-
-    <ImageView
-        android:id="@+id/iv_close"
-        android:layout_width="50dp"
-        android:layout_height="50dp"
-        android:layout_alignEnd="@id/iv_dialog_otg_bg"
-        android:layout_marginTop="35dp"
-        android:padding="15dp"
-        android:src="@drawable/ic_close_violet" />
-
-    <LinearLayout
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_alignStart="@id/iv_dialog_otg_bg"
-        android:layout_alignEnd="@id/iv_dialog_otg_bg"
-        android:layout_alignBottom="@id/iv_dialog_otg_bg"
-        android:layout_marginBottom="10dp"
-        android:orientation="vertical">
-
-        <TextView
-            android:id="@+id/tv_content"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:minHeight="100dp"
-            android:padding="@dimen/dp_15"
-            android:text="@string/otg_tip_3"
-            android:textColor="@color/text_color_main"
-            android:textSize="@dimen/text_14sp" />
-
-        <TextView
-            android:id="@+id/tv_i_know"
-            android:layout_width="wrap_content"
-            android:layout_height="44.5dp"
-            android:layout_gravity="center_horizontal"
-            android:background="@drawable/bg_violet_1_5"
-            android:gravity="center"
-            android:paddingLeft="20dp"
-            android:paddingRight="20dp"
-            android:text="@string/otg_tip_4"
-            android:textColor="@color/white"
-            android:textSize="@dimen/text_16sp" />
-
-    </LinearLayout>
-
-</RelativeLayout>

+ 0 - 17
ble/src/main/res/layout/fragment_main_b.xml

@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    app:cardCornerRadius="15dp"
-    app:cardElevation="0dp"
-    app:cardBackgroundColor="@color/trans_pure">
-
-    <ImageView
-        android:scaleType="centerCrop"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:src="@drawable/device_logo_7" />
-
-</androidx.cardview.widget.CardView>

+ 0 - 27
ble/src/main/res/layout/fragment_main_c.xml

@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    app:cardBackgroundColor="@color/trans_pure"
-    app:cardCornerRadius="15dp"
-    app:cardElevation="0dp">
-
-
-    <ImageView
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:scaleType="centerCrop"
-        android:src="@drawable/device_logo_10" />
-
-    <TextView
-        android:id="@+id/tv_otg"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="bottom|center_horizontal"
-        android:layout_marginBottom="45dp"
-        android:text="@string/otg_tip"
-        android:textColor="@color/violet_4"
-        android:textSize="16sp" />
-</androidx.cardview.widget.CardView>