From: TrillGates Date: Sat, 28 Aug 2021 09:18:27 +0000 (+0800) Subject: update find dev animation. X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=352c3f69118e6cc93544bdeb80e61081c39bb073;p=icsupport.git update find dev animation. --- diff --git a/app/src/main/java/com/ic/protocolSrv/utils/ProcessReceiver.java b/app/src/main/java/com/ic/protocolSrv/utils/ProcessReceiver.java index 26d002d6..854fe217 100644 --- a/app/src/main/java/com/ic/protocolSrv/utils/ProcessReceiver.java +++ b/app/src/main/java/com/ic/protocolSrv/utils/ProcessReceiver.java @@ -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 index 00000000..34faa241 --- /dev/null +++ b/app/src/main/java/com/ic/view/FindDeviceView.java @@ -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 index 00000000..ccc33d39 --- /dev/null +++ b/app/src/main/res/drawable/selector_w100_find_btn.xml @@ -0,0 +1,5 @@ + + + + + \ 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 index 00000000..45f440a1 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 index 00000000..43ee5676 --- /dev/null +++ b/app/src/main/res/drawable/w100_flash.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + \ 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 index 00000000..9545358d --- /dev/null +++ b/app/src/main/res/layout/find_device_layout.xml @@ -0,0 +1,26 @@ + + + + + + + + + + \ 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 index 00000000..9c1ce264 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 index 00000000..ed5b09e2 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 index 00000000..48d26267 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 index 00000000..65eabfd4 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 index 00000000..c78ed19e 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 index 00000000..751ad931 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 index 00000000..febb4c4b 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 index 00000000..bb04de1a Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/w100_find_press.png differ