From 5325e22a184b53aadcc5e9552cb1ec54f9c8ad81 Mon Sep 17 00:00:00 2001
From: guoshen <3129367635@qq.com>
Date: 星期六, 29 六月 2024 16:33:11 +0800
Subject: [PATCH] 加入了直播、会议功能

---
 app_base/src/main/java/com/android/app_base/utils/Utils.java |  105 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 102 insertions(+), 3 deletions(-)

diff --git a/app_base/src/main/java/com/android/app_base/utils/Utils.java b/app_base/src/main/java/com/android/app_base/utils/Utils.java
index 18758a7..df7e5b7 100644
--- a/app_base/src/main/java/com/android/app_base/utils/Utils.java
+++ b/app_base/src/main/java/com/android/app_base/utils/Utils.java
@@ -1,8 +1,17 @@
 package com.android.app_base.utils;
 
 import android.animation.ValueAnimator;
+import android.app.ActionBar;
+import android.app.ActivityManager;
+import android.app.Application;
 import android.content.Context;
 import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Environment;
@@ -10,11 +19,20 @@
 import android.view.View;
 import android.widget.TextView;
 
+import androidx.core.content.ContextCompat;
 import androidx.core.content.FileProvider;
 
+import com.android.app_base.base.BaseApplication;
 import com.blankj.utilcode.util.LogUtils;
 
 import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.security.DigestInputStream;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -37,7 +55,7 @@
      */
     public static void dropExpand(View view,int initialHeight , int targetHeight) {
         ValueAnimator animator = ValueAnimator.ofInt(initialHeight,targetHeight);
-        animator.setDuration(500);
+        animator.setDuration(400);
         animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
             @Override
             public void onAnimationUpdate(ValueAnimator animation) {
@@ -56,7 +74,7 @@
      */
     public static void pullCollapse(View view,int initialHeight, int targetHeight) {
         ValueAnimator animator = ValueAnimator.ofInt(initialHeight, targetHeight);
-        animator.setDuration(500);
+        animator.setDuration(400);
         animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
             @Override
             public void onAnimationUpdate(ValueAnimator animation) {
@@ -214,7 +232,7 @@
         Intent intent = new Intent(Intent.ACTION_VIEW);
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
             intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
-            Uri contentUri = FileProvider.getUriForFile(context, context.getApplicationContext().getPackageName() + ".fileprovider", file);
+            Uri contentUri = FileProvider.getUriForFile(context, context.getApplicationContext().getPackageName() + ".file-provider", file);
             intent.setDataAndType(contentUri, "application/vnd.android.package-archive");
         } else {
 //            Uri uri = Uri.parse("file://" + file.toString());
@@ -225,4 +243,85 @@
         context.startActivity(intent);
     }
 
+    /**
+     * 鍒ゆ柇鏄惁鏈夌綉缁�
+     */
+    public static boolean checkNetwork() {
+//        if (context == null) {
+//            return false;
+//        }
+//        ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
+//        if (mConnectivityManager == null) {
+//            return false;
+//        }
+//        NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
+//        return mNetworkInfo != null && mNetworkInfo.isAvailable();
+
+        Application application = BaseApplication.getInstance();
+        if (application != null) {
+            ConnectivityManager manager = ContextCompat.getSystemService(application, ConnectivityManager.class);
+            if (manager != null) {
+                NetworkInfo info = manager.getActiveNetworkInfo();
+                // 鍒ゆ柇缃戠粶鏄惁杩炴帴
+                if (info == null || !info.isConnected()) {
+                    return false;
+                }
+            }
+        }
+        return true;
+    }
+
+    /**
+     * 鎶� view 杞崲鎴� drawable
+     */
+    public static Drawable convertViewToDrawable(View view) {
+        view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
+                View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
+        int width = view.getMeasuredWidth();
+        int height = view.getMeasuredHeight();
+
+        Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
+        Canvas canvas = new Canvas(bitmap);
+
+        view.layout(0, 0, width, height);
+        view.draw(canvas);
+
+        return new BitmapDrawable(view.getResources(), bitmap);
+    }
+
+
+    /**
+     * 璁$畻鏂囦欢鐨凪D5鍝堝笇鍊�
+     *
+     * @param file 鏂囦欢
+     * @return 鏂囦欢鐨凪D5鍝堝笇鍊硷紝濡傛灉璁$畻澶辫触鍒欒繑鍥瀗ull
+     */
+    public static String calculateMD5(File file) {
+        try {
+            // 鑾峰彇MD5娑堟伅鎽樿绠楁硶鐨勫疄渚�
+            MessageDigest md = MessageDigest.getInstance("MD5");
+            // 鍒涘缓鏂囦欢URL
+            // 鎵撳紑鏂囦欢杈撳叆娴侊紝骞朵娇鐢―igestInputStream鏇存柊娑堟伅鎽樿
+            try (FileInputStream is = new FileInputStream(file);
+                 DigestInputStream dis = new DigestInputStream(is, md)) {
+                // 璇诲彇杈撳叆娴佸苟鏇存柊娑堟伅鎽樿
+                byte[] buffer = new byte[1024*256];
+                while(true){
+                    if (!(dis.read(buffer) > 0)) break;
+                }
+                // 鑾峰彇MD5鍝堝笇鍊肩殑瀛楄妭鏁扮粍
+                md = dis.getMessageDigest();
+                byte[] mdBytes = md.digest();
+                // 灏嗗瓧鑺傛暟缁勮浆鎹负鍗佸叚杩涘埗瀛楃涓�
+                StringBuilder hexString = new StringBuilder();
+                for (byte mdByte : mdBytes) {
+                    hexString.append(Integer.toHexString(0xFF & mdByte));
+                }
+                return hexString.toString();
+            }
+        } catch (NoSuchAlgorithmException | IOException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
 }

--
Gitblit v1.9.1