瀏覽代碼

请求增援增加提示

weizhengliang 2 年之前
父節點
當前提交
90fb9dbc52

+ 12 - 10
android_bed/src/main/h7_3128/java/com/wdkl/app/ncs/callingbed/activity/CallingbedActivity.kt

@@ -480,19 +480,21 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, Callingbed2M
             resetSleepTime()
 
             //增援
-            val time = System.currentTimeMillis()
-            if (time - clickTime > 3000) {
-                if (Constant.TCP_CONNECTED) {
-                    if (Constant.DEVICE_ID != null) {
-                        showMessage(R.string.support_sent)
-                        OtherUtil.sendReinforce(Constant.DEVICE_ID)
-                    } else {
-                        showMessage("null device id!")
+            if (Constant.TCP_CONNECTED) {
+                if (Constant.DEVICE_ID != null) {
+                    OtherUtil.sendReinforce(Constant.DEVICE_ID)
+                    WidgetsUtil.showToastWithImage(getString(R.string.support_sent), 200f)
+                    SoundPoolManager.getInstance().playSound(5, 1.0f, 1.0f, 0)
+                    tv_btn_support.isEnabled = false
+                    AppTool.Time.delay(6000) {
+                        //10s后才能再按
+                        tv_btn_support.isEnabled = true
                     }
                 } else {
-                    showMessage(R.string.net_error)
+                    showMessage("null device id!")
                 }
-                clickTime = time
+            } else {
+                showMessage(R.string.net_error)
             }
         }
 

+ 3 - 2
android_bed/src/main/h7_3128/java/com/wdkl/app/ncs/callingbed/helper/SoundPoolManager.java

@@ -33,7 +33,7 @@ public class SoundPoolManager {
         if(Build.VERSION.SDK_INT > 21){
             SoundPool.Builder builder = new SoundPool.Builder();
             //传入音频数量
-            builder.setMaxStreams(4);
+            builder.setMaxStreams(5);
             //AudioAttributes是一个封装音频各种属性的方法
             AudioAttributes.Builder attrBuilder = new AudioAttributes.Builder();
             //设置音频流的合适的属性
@@ -42,7 +42,7 @@ public class SoundPoolManager {
             builder.setAudioAttributes(attrBuilder.build());
             soundPool = builder.build();
         }else{
-            soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 0);
+            soundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
         }
 
         //来电
@@ -52,6 +52,7 @@ public class SoundPoolManager {
         //测试
         soundID.put(3, soundPool.load(BaseApplication.appContext, R.raw.mic_test, 1));
         soundID.put(4, soundPool.load(BaseApplication.appContext, R.raw.test_start, 1));
+        soundID.put(5, soundPool.load(BaseApplication.appContext, R.raw.reinforce_notify,  1));
         soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
             @Override
             public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {

+ 1 - 0
android_bed/src/main/h7_3128/res/drawable/selector_bottom_btn_text_color.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:color="@color/text_name_color" android:state_pressed="true"/>
+    <item android:color="@color/text_name_color" android:state_enabled="false"/>
     <item android:color="@color/white"/>
 </selector>

+ 25 - 0
common/src/main/code/com/wdkl/ncs/android/lib/utils/DisplayUtils.java

@@ -0,0 +1,25 @@
+package com.wdkl.ncs.android.lib.utils;
+
+import android.content.Context;
+
+public class DisplayUtils {
+    public static float px2dp(final Context context, final float px) {
+        return px / context.getResources().getDisplayMetrics().density; }
+    public static float dp2px(final Context context, final float dp) {
+        return dp * context.getResources().getDisplayMetrics().density; }
+    /**
+     * 将px值转换为sp值,保证文字大小不变
+     * @param pxValue
+     * @return
+     */
+    public static int px2sp(Context context, float pxValue) {
+        final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
+        return (int) (pxValue / fontScale + 0.5f); }
+    /**
+     * 将sp值转换为px值,保证文字大小不变
+     * @param spValue
+     * @return
+     */
+    public static int sp2px(Context context, float spValue) {
+        final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
+        return (int) (spValue * fontScale + 0.5f); }}

+ 32 - 0
common/src/main/code/com/wdkl/ncs/android/lib/utils/WidgetsUtil.java

@@ -0,0 +1,32 @@
+package com.wdkl.ncs.android.lib.utils;
+
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.wdkl.ncs.android.lib.R;
+import com.wdkl.ncs.android.lib.base.BaseApplication;
+
+public class WidgetsUtil {
+
+    //带图片的toast
+    public static void showToastWithImage(String message, float dp) {
+        View toastView = LayoutInflater.from(BaseApplication.appContext).inflate(R.layout.view_toast_image, null);
+        LinearLayout layout = (LinearLayout) toastView.findViewById(R.id.toast_linear);
+        //动态设置toast控件的宽高度
+        //这里用了一个将dp转换为px的工具类PxUtil
+        RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams((int) DisplayUtils.dp2px(BaseApplication.appContext, dp), (int)DisplayUtils.dp2px(BaseApplication.appContext, dp));
+        layout.setLayoutParams(layoutParams);
+        TextView textView = toastView.findViewById(R.id.tv_toast_clear);
+        textView.setText(message);
+        Toast mToast = new Toast(BaseApplication.appContext);
+        mToast.setDuration(Toast.LENGTH_LONG);
+        mToast.setGravity(Gravity.CENTER, 0, 0);
+        mToast.setView(toastView);
+        mToast.show();
+    }
+}

+ 103 - 0
common/src/main/code/com/wdkl/ncs/android/lib/widget/DrawHookMarkView.java

@@ -0,0 +1,103 @@
+package com.wdkl.ncs.android.lib.widget;
+
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Paint;
+import android.util.AttributeSet;
+import android.view.View;
+
+import com.wdkl.ncs.android.lib.R;
+import com.wdkl.ncs.android.lib.utils.DisplayUtils;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class DrawHookMarkView extends View {
+    //打勾的起点
+    int checkStartX;
+    //线1的x轴增量
+    private int line1X = 0;
+    //线1的y轴增量
+    private int line1Y = 0;
+    //线2的x轴增量
+    private int line2X = 0;
+    //线2的y轴增量
+    private int line2Y = 0;
+    //增量值
+    int step = 3;
+    //线的宽度
+    private int lineThick = 6;
+    //获取圆心的x坐标
+    int center;
+    //圆弧半径
+    int radius;
+    Paint paint;
+    //控件大小
+    float totalWidth;
+    boolean secLineInited = false;
+    public DrawHookMarkView(Context context) {
+        super(context);
+        init();
+    }
+
+    public DrawHookMarkView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        Pattern p = Pattern.compile("\\d*");
+        Matcher m = p.matcher(attrs.getAttributeValue("http://schemas.android.com/apk/res/android", "layout_width"));
+        if (m.find()) {
+            totalWidth = Float.parseFloat(m.group());
+        }
+        totalWidth = DisplayUtils.dp2px(context, (int) totalWidth);
+        init();
+    }
+
+    public DrawHookMarkView(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+        init();
+    }
+
+    void init() {
+        paint = new Paint();
+        //设置画笔颜色
+        paint.setColor(getResources().getColor(R.color.color_main));
+        //设置宽度
+        paint.setStrokeWidth(lineThick);
+        //设置空心
+        paint.setStyle(Paint.Style.STROKE);
+        //消除锯齿
+        paint.setAntiAlias(true);
+        //获取圆心的x坐标
+        center = (int) (totalWidth / 2);
+        //圆弧半径
+        radius = (int) (totalWidth / 2) - lineThick;
+        checkStartX = (int) (center - totalWidth / 5);
+    }
+
+    //绘制
+    @Override
+    protected void onDraw(Canvas canvas) {
+        super.onDraw(canvas);
+        if (line1X < radius / 3) {
+            line1X += step;
+            line1Y += step; }
+        //画第一根线
+        canvas.drawLine(checkStartX, center, checkStartX + line1X, center + line1Y, paint);
+        if (line1X >= radius / 3) {
+            if (!secLineInited) {
+                line2X = line1X;
+                line2Y = line1Y;
+                secLineInited = true; }
+            line2X += step;
+            line2Y -= step;
+            //画第二根线
+            canvas.drawLine(checkStartX + line1X - lineThick / 2,
+                    center + line1Y, checkStartX + line2X, center + line2Y, paint);
+        }
+
+        //每隔6毫秒界面刷新
+        if (line2X <= radius) {
+            postInvalidateDelayed(6);
+        }
+    }
+}

+ 31 - 0
common/src/main/res/layout/view_toast_image.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/toast_relative"
+    android:background="#7A2B2929"
+    android:layout_width="200dp"
+    android:layout_height="200dp">
+
+    <LinearLayout
+        android:id="@+id/toast_linear"
+        android:padding="10dp"
+        android:orientation="vertical"
+        android:layout_width="200dp"
+        android:layout_height="200dp"
+        android:gravity="center">
+
+        <com.wdkl.ncs.android.lib.widget.DrawHookMarkView
+            android:layout_width="160dp"
+            android:layout_height="140dp" />
+
+        <TextView
+            android:id="@+id/tv_toast_clear"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="-10dp"
+            android:gravity="center"
+            android:textSize="24sp"
+            android:textColor="#FFA5A5"
+            android:text="" />
+    </LinearLayout>
+</RelativeLayout>
+

+ 2 - 0
common/src/main/res/values/colors.xml

@@ -10,4 +10,6 @@
     <color name="color_red">#ea3a3d</color>
     <color name="color_pop_header">#878a8a</color>
 
+    <color name="color_main">#2F9DF1</color>
+
 </resources>

+ 1 - 1
middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/channel/DeviceChannel.java

@@ -23,7 +23,7 @@ public class DeviceChannel {
     public static TcpModel handleTcpReceived(TcpModel tcpModel){
         TcpModel responseTcpModel = null;
 
-        Log.d("tcpModle", "received tcp model: " + tcpModel.toJson() + ", call state: " + Constant.CALL_STATE);
+        Log.d("tcpModel", "received tcp model: " + tcpModel.toJson() + ", call state: " + Constant.CALL_STATE);
         switch (tcpModel.getType()){
             case CALLBACK:
                 if(tcpModel.getAction()== TcpAction.CallbackAction.SUCCESS){

+ 4 - 1
middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/dto/TcpModel.java

@@ -137,7 +137,10 @@ public class TcpModel implements Serializable {
                 tcpAction = TcpAction.SideAction.fromString(action);
                 break;
             case ENTRACEGUARD:
-                tcpAction =TcpAction.EntraceGuardAction.fromString(action);
+                tcpAction = TcpAction.EntraceGuardAction.fromString(action);
+                break;
+            case REINFORCE:
+                tcpAction = TcpAction.ReinforceAction.fromString(action);
                 break;
         }