update find dev animation.
authorTrillGates <williamtrillgates@gmail.com>
Sat, 28 Aug 2021 09:18:27 +0000 (17:18 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Sat, 28 Aug 2021 09:18:27 +0000 (17:18 +0800)
14 files changed:
app/src/main/java/com/ic/protocolSrv/utils/ProcessReceiver.java
app/src/main/java/com/ic/view/FindDeviceView.java [new file with mode: 0644]
app/src/main/res/drawable/selector_w100_find_btn.xml [new file with mode: 0644]
app/src/main/res/drawable/w100_back_ground.png [new file with mode: 0644]
app/src/main/res/drawable/w100_flash.xml [new file with mode: 0644]
app/src/main/res/layout/find_device_layout.xml [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/w100_1.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/w100_2.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/w100_3.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/w100_4.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/w100_5.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/w100_6.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/w100_find_normal.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/w100_find_press.png [new file with mode: 0644]

index 26d002d..854fe21 100644 (file)
@@ -23,6 +23,7 @@ import com.ic.protocolSrv.service.AudioService;
 import com.ic.protocolSrv.service.Deliver;
 import com.ic.protocolSrv.service.HeartRateManager;
 import com.ic.protocols.protocolAPIHelper;
+import com.ic.view.FindDeviceView;
 import com.ic.view.webmsgresponse.WebMsgView;
 
 import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
@@ -111,31 +112,31 @@ public class ProcessReceiver extends BroadcastReceiver {
             contentBuilder.append(context.getString(R.string.voiceMessageEnd));
             mCustomDialog = tmpDialog.setMessage(contentBuilder.toString())
                     .setPositiveButton(context.getString(R.string.ok), new DialogInterface.OnClickListener() {
-                public void onClick(DialogInterface var1x, int var2x) {
-                    var1x.dismiss();
-                    ComponentName var3 = new ComponentName("com.ic.icwetalk",
-                            "com.ic.icwetalk.MainActivity");
-                    Intent intent = new Intent("android.intent.action.MAIN");
-                    intent.putExtra("ACTIVITY_TYPE", 2);
-                    intent.putExtra("contact", contact);
-                    intent.addCategory("android.intent.category.DEFAULT");
-                    intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
-                    intent.setComponent(var3);
-                    VibrateUtil.getInstance(context).vibrateOn(false);
-                    try {
-                        context.startActivity(intent);
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        ICLogger.e(e.getMessage(), e);
-                    }
+                        public void onClick(DialogInterface var1x, int var2x) {
+                            var1x.dismiss();
+                            ComponentName var3 = new ComponentName("com.ic.icwetalk",
+                                    "com.ic.icwetalk.MainActivity");
+                            Intent intent = new Intent("android.intent.action.MAIN");
+                            intent.putExtra("ACTIVITY_TYPE", 2);
+                            intent.putExtra("contact", contact);
+                            intent.addCategory("android.intent.category.DEFAULT");
+                            intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
+                            intent.setComponent(var3);
+                            VibrateUtil.getInstance(context).vibrateOn(false);
+                            try {
+                                context.startActivity(intent);
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                                ICLogger.e(e.getMessage(), e);
+                            }
 
-                }
-            }).setNegativeButton(context.getString(R.string.cancel), new DialogInterface.OnClickListener() {
-                public void onClick(DialogInterface var1, int var2) {
-                    var1.dismiss();
-                    VibrateUtil.getInstance(context).vibrateOn(false);
-                }
-            }).create();
+                        }
+                    }).setNegativeButton(context.getString(R.string.cancel), new DialogInterface.OnClickListener() {
+                        public void onClick(DialogInterface var1, int var2) {
+                            var1.dismiss();
+                            VibrateUtil.getInstance(context).vibrateOn(false);
+                        }
+                    }).create();
             mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
             mCustomDialog.show();
         } else if (app_id == 2) {
@@ -217,8 +218,8 @@ public class ProcessReceiver extends BroadcastReceiver {
             StringBuilder var7 = new StringBuilder();
             var7.append(msg);
             mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton(context.getString(R.string.ok), new DialogInterface.OnClickListener() {
-                public void onClick(DialogInterface var1, int var2) {
-                    var1.dismiss();
+                public void onClick(DialogInterface dialog, int var2) {
+                    dialog.dismiss();
                     VibrateUtil.getInstance(context).vibrateOn(false);
                     stopmediaplayer();
                 }
@@ -467,6 +468,7 @@ public class ProcessReceiver extends BroadcastReceiver {
                     this.screenOn(paramContext);
                 }
             } else if (paramIntent.hasExtra("findDev")) {
+
                 ICLogger.d("hasExtra(findDev)");
                 String findDevTxt = paramIntent.getStringExtra("findDev");
                 SharePreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);
@@ -474,10 +476,11 @@ public class ProcessReceiver extends BroadcastReceiver {
                 ICLogger.d("isSilence ==> " + isSilence);
                 ICLogger.d("findDevTxt ==> " + findDevTxt);
                 if (findDevTxt != null && !isSilence) {
-                    this.initMyDialog(paramContext, null, 5, findDevTxt, false);
+                    //this.initMyDialog(paramContext, null, 5, findDevTxt, false);
                     this.playFindDevVoice(paramContext);
                     VibrateUtil.getInstance(paramContext).vibrateOn(true);
                     this.screenOn(paramContext);
+                    FindDeviceView.getInstance().showMsgDialog();
                 }
             } else if (paramIntent.hasExtra("takephoto")) {
                 String takephoto = paramIntent.getStringExtra("takephoto");
diff --git a/app/src/main/java/com/ic/view/FindDeviceView.java b/app/src/main/java/com/ic/view/FindDeviceView.java
new file mode 100644 (file)
index 0000000..34faa24
--- /dev/null
@@ -0,0 +1,87 @@
+package com.ic.view;
+
+import android.content.Context;
+import android.graphics.drawable.AnimationDrawable;
+import android.media.AudioManager;
+import android.view.Gravity;
+import android.view.View;
+import android.view.WindowManager;
+import android.widget.ImageView;
+
+import com.ic.protocolSrv.ICApplication;
+import com.ic.protocolSrv.R;
+import com.ic.protocolSrv.service.AudioService;
+import com.ic.protocolSrv.utils.ICLogger;
+import com.ic.protocolSrv.utils.VibrateUtil;
+
+public class FindDeviceView {
+
+    private WindowManager windowManager;
+
+    private static FindDeviceView sInstance;
+    private boolean isShow;
+    private View view;
+    private AnimationDrawable animationDrawable;
+    private AudioManager audioManager;
+    private int oldVolume;
+
+    public static FindDeviceView getInstance() {
+        if (sInstance == null) {
+            sInstance = new FindDeviceView();
+        }
+        return sInstance;
+    }
+
+    public void showMsgDialog() {
+        ICLogger.d("showMsgDialog..." + isShow);
+        if (isShow) {
+            return;
+        }
+        isShow = true;
+        Context context = ICApplication.sContext;
+        windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
+        //设置属性
+        WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
+        layoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
+        //这个是针对S123的屏幕,如果要适配其他,可以动态获取屏幕宽度,高度,再以百分比的形式计算即可。
+        layoutParams.height = WindowManager.LayoutParams.MATCH_PARENT;
+        layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
+        layoutParams.packageName = context.getPackageName();
+        layoutParams.gravity = Gravity.CENTER;
+        //加载布局
+        view = View.inflate(context, R.layout.find_device_layout, null);
+        //设置适配器
+        initView(view);
+        windowManager.addView(view, layoutParams);
+        //音量最大,消失的时候重置音量
+        audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
+        oldVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
+        audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
+                audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC), 0);
+    }
+
+    private void initView(View view) {
+        View btn = view.findViewById(R.id.w100_press_btn);
+        ImageView animView = view.findViewById(R.id.anim_view);
+        animationDrawable = (AnimationDrawable) animView.getBackground();
+        if (animationDrawable != null) {
+            animationDrawable.start();
+        }
+        btn.setOnClickListener(v -> {
+            VibrateUtil.getInstance(v.getContext()).vibrateOn(false);
+            AudioService.getInstance().stop();
+            dismiss();
+        });
+    }
+
+    public void dismiss() {
+        audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
+                oldVolume, 0);
+        if (animationDrawable != null) {
+            animationDrawable.stop();
+        }
+        windowManager.removeView(view);
+        sInstance = null;
+        windowManager = null;
+    }
+}
diff --git a/app/src/main/res/drawable/selector_w100_find_btn.xml b/app/src/main/res/drawable/selector_w100_find_btn.xml
new file mode 100644 (file)
index 0000000..ccc33d3
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@mipmap/w100_find_press" android:state_pressed="true" />
+    <item android:drawable="@mipmap/w100_find_normal" />
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/w100_back_ground.png b/app/src/main/res/drawable/w100_back_ground.png
new file mode 100644 (file)
index 0000000..45f440a
Binary files /dev/null and b/app/src/main/res/drawable/w100_back_ground.png differ
diff --git a/app/src/main/res/drawable/w100_flash.xml b/app/src/main/res/drawable/w100_flash.xml
new file mode 100644 (file)
index 0000000..43ee567
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
+    android:oneshot="false">
+    <item
+        android:drawable="@mipmap/w100_1"
+        android:duration="100" />
+    <item
+        android:drawable="@mipmap/w100_2"
+        android:duration="100" />
+    <item
+        android:drawable="@mipmap/w100_3"
+        android:duration="100" />
+
+    <item
+        android:drawable="@mipmap/w100_4"
+        android:duration="100" />
+
+    <item
+        android:drawable="@mipmap/w100_5"
+        android:duration="100" />
+
+    <item
+        android:drawable="@mipmap/w100_6"
+        android:duration="100" />
+
+</animation-list>
\ No newline at end of file
diff --git a/app/src/main/res/layout/find_device_layout.xml b/app/src/main/res/layout/find_device_layout.xml
new file mode 100644 (file)
index 0000000..9545358
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@drawable/w100_back_ground">
+
+
+    <ImageView
+        android:layout_width="match_parent"
+        android:id="@+id/anim_view"
+        android:layout_height="match_parent"
+        android:background="@drawable/w100_flash" />
+
+    <ImageView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:id="@+id/w100_press_btn"
+        android:src="@drawable/selector_w100_find_btn"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent" />
+
+
+</android.support.constraint.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-mdpi/w100_1.png b/app/src/main/res/mipmap-mdpi/w100_1.png
new file mode 100644 (file)
index 0000000..9c1ce26
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/w100_1.png differ
diff --git a/app/src/main/res/mipmap-mdpi/w100_2.png b/app/src/main/res/mipmap-mdpi/w100_2.png
new file mode 100644 (file)
index 0000000..ed5b09e
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/w100_2.png differ
diff --git a/app/src/main/res/mipmap-mdpi/w100_3.png b/app/src/main/res/mipmap-mdpi/w100_3.png
new file mode 100644 (file)
index 0000000..48d2626
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/w100_3.png differ
diff --git a/app/src/main/res/mipmap-mdpi/w100_4.png b/app/src/main/res/mipmap-mdpi/w100_4.png
new file mode 100644 (file)
index 0000000..65eabfd
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/w100_4.png differ
diff --git a/app/src/main/res/mipmap-mdpi/w100_5.png b/app/src/main/res/mipmap-mdpi/w100_5.png
new file mode 100644 (file)
index 0000000..c78ed19
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/w100_5.png differ
diff --git a/app/src/main/res/mipmap-mdpi/w100_6.png b/app/src/main/res/mipmap-mdpi/w100_6.png
new file mode 100644 (file)
index 0000000..751ad93
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/w100_6.png differ
diff --git a/app/src/main/res/mipmap-mdpi/w100_find_normal.png b/app/src/main/res/mipmap-mdpi/w100_find_normal.png
new file mode 100644 (file)
index 0000000..febb4c4
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/w100_find_normal.png differ
diff --git a/app/src/main/res/mipmap-mdpi/w100_find_press.png b/app/src/main/res/mipmap-mdpi/w100_find_press.png
new file mode 100644 (file)
index 0000000..bb04de1
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/w100_find_press.png differ