|
|
@@ -0,0 +1,112 @@
|
|
|
+package com.xzjmyk.pm.activity.util;
|
|
|
+
|
|
|
+import android.app.Activity;
|
|
|
+import android.util.DisplayMetrics;
|
|
|
+import android.util.Log;
|
|
|
+import android.view.Gravity;
|
|
|
+import android.view.LayoutInflater;
|
|
|
+import android.view.View;
|
|
|
+import android.view.WindowManager;
|
|
|
+import android.widget.PopupWindow;
|
|
|
+import android.widget.Toast;
|
|
|
+
|
|
|
+import com.iflytek.cloud.RecognizerResult;
|
|
|
+import com.iflytek.cloud.SpeechError;
|
|
|
+import com.iflytek.cloud.ui.RecognizerDialogListener;
|
|
|
+import com.xzjmyk.pm.activity.MyApplication;
|
|
|
+import com.xzjmyk.pm.activity.R;
|
|
|
+import com.xzjmyk.pm.activity.audio.voicerecognition.JsonParser;
|
|
|
+import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
|
|
|
+import com.xzjmyk.pm.activity.ui.erp.util.oa.RecognizerDialogUtil;
|
|
|
+
|
|
|
+/**
|
|
|
+ * Created by FANGlh on 2017/8/4.
|
|
|
+ * function:
|
|
|
+ */
|
|
|
+
|
|
|
+public class QSearchPpwindowUtils{
|
|
|
+
|
|
|
+ public QSearchPpwindowUtils() {
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void qSearchWindows(final Activity activity){
|
|
|
+ final boolean[] isqSearch = {true};
|
|
|
+ View contentView = LayoutInflater.from(activity).inflate(R.layout.judge_qsearch_window, null);
|
|
|
+ DisplayMetrics dm = MyApplication.getInstance().getResources().getDisplayMetrics();
|
|
|
+ int w_screen = dm.widthPixels;
|
|
|
+ int h_screen = dm.heightPixels;
|
|
|
+ w_screen = DisplayUtil.dip2px(activity, 250);
|
|
|
+ h_screen = DisplayUtil.dip2px(activity, 100);
|
|
|
+ final PopupWindow popupWindow = new PopupWindow(contentView, w_screen, h_screen, true);
|
|
|
+ popupWindow.setTouchable(true);
|
|
|
+ popupWindow.setOutsideTouchable(false);
|
|
|
+ // 如果不设置PopupWindow的背景,无论是点击外部区域还是Back键都无法dismiss弹框
|
|
|
+ popupWindow.setBackgroundDrawable( MyApplication.getInstance().getResources().getDrawable(R.drawable.pop_round_bg));
|
|
|
+ // 设置好参数之后再show
|
|
|
+ popupWindow.showAtLocation(contentView, Gravity.CENTER, 0, 0);
|
|
|
+ setbg(activity,popupWindow,0.4f);
|
|
|
+ contentView.findViewById(R.id.no_tv).setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ popupWindow.dismiss(); //不进行快速搜索
|
|
|
+ isqSearch[0] = false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ new android.os.Handler().postDelayed(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ if (isqSearch[0]){
|
|
|
+ RecognizerDialogUtil.showRecognizerDialog(activity,new RecognizerDialogListener() {
|
|
|
+ @Override
|
|
|
+ public void onResult(RecognizerResult recognizerResult, boolean b) {
|
|
|
+ String text = JsonParser.parseIatResult(recognizerResult.getResultString());
|
|
|
+ if (!StringUtils.isEmpty(text)){
|
|
|
+ handlerQSearch(activity,CommonUtil.getPlaintext(text)); //处理好的语音进行刷选判断逻辑
|
|
|
+ }
|
|
|
+ }
|
|
|
+ @Override
|
|
|
+ public void onError(SpeechError speechError) {}
|
|
|
+ });
|
|
|
+ popupWindow.dismiss();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },6000);
|
|
|
+ }
|
|
|
+
|
|
|
+ private static void handlerQSearch(Activity activity,String text) {
|
|
|
+ Toast.makeText(activity,text,Toast.LENGTH_LONG).show();
|
|
|
+ Log.i("handlerQSearch",text+"");
|
|
|
+
|
|
|
+ if (text.contains("预约")){
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private static void setbg(final Activity activity , PopupWindow popupWindow, float alpha) {
|
|
|
+ setBackgroundAlpha(activity, alpha);
|
|
|
+ if (popupWindow == null) return;
|
|
|
+ popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
|
|
|
+ @Override
|
|
|
+ public void onDismiss() {
|
|
|
+ setBackgroundAlpha(activity, 1f);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设置页面的透明度
|
|
|
+ * 兼容华为手机(在个别华为手机上 设置透明度会不成功)
|
|
|
+ *
|
|
|
+ * @param bgAlpha 透明度 1表示不透明
|
|
|
+ */
|
|
|
+ public static void setBackgroundAlpha(Activity activity, float bgAlpha) {
|
|
|
+ WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
|
|
|
+ lp.alpha = bgAlpha;
|
|
|
+ if (bgAlpha == 1) {
|
|
|
+ activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//不移除该Flag的话,在有视频的页面上的视频会出现黑屏的bug
|
|
|
+ } else {
|
|
|
+ activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//此行代码主要是解决在华为手机上半透明效果无效的bug
|
|
|
+ }
|
|
|
+ activity.getWindow().setAttributes(lp);
|
|
|
+ }
|
|
|
+}
|