From 33f9876c332676b55f83a2db2cc606e1a0a3c5b9 Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期三, 29 四月 2020 18:04:43 +0800
Subject: [PATCH] 修改退出 提示框

---
 /dev/null                                                                      |   60 ------------
 app/src/main/res/layout/layout_dlg.xml                                         |   59 +++++++++++
 app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java         |   28 +++--
 app/src/main/java/safeluck/drive/evaluation/customview/QRCodeDialog.java       |   21 +++
 app/src/main/java/safeluck/drive/evaluation/customview/MyDialog.kt             |   98 +++++++++++++++++++
 app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java        |    2 
 app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java |    2 
 7 files changed, 190 insertions(+), 80 deletions(-)

diff --git a/app/src/main/java/safeluck/drive/evaluation/customview/MyDialog.kt b/app/src/main/java/safeluck/drive/evaluation/customview/MyDialog.kt
new file mode 100644
index 0000000..e800626
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/customview/MyDialog.kt
@@ -0,0 +1,98 @@
+package safeluck.drive.evaluation.customview
+
+import android.graphics.Color
+import android.graphics.drawable.ColorDrawable
+import android.os.Build
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.view.WindowManager
+import android.widget.Button
+import android.widget.TextView
+import androidx.fragment.app.DialogFragment
+import safeluck.drive.evaluation.R
+
+/**
+ *
+ * @ProjectName: DriveJudge
+ * @Package: safeluck.drive.evaluation.customview
+ * @ClassName: MyDialog
+ * @Description: java绫讳綔鐢ㄦ弿杩�
+ * @Author: 鏉庡崰浼�
+ * @CreateDate: 2020-04-29 16:46
+ * @UpdateUser: 鏇存柊鑰�
+ * @UpdateDate: 2020-04-29 16:46
+ * @UpdateRemark: 鏇存柊璇存槑
+ * @Version: 1.0
+ */
+
+class MyDialog : DialogFragment() {
+    lateinit var button: Button
+    lateinit var button_cancle: Button
+    lateinit var textview: TextView
+    var mess: String? = null
+    lateinit var onClick:MyOnClickListener
+    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
+        if(dialog!=null){
+            var windown = dialog.window;
+           windown.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
+            windown.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE)
+            dialog.setOnShowListener { windown.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE)
+            hideBottomUIMenu()}
+        }
+        var view = inflater.inflate(R.layout.layout_dlg,container,false)
+        initView(view)
+
+        return view
+    }
+
+    private fun initView(view: View?) {
+        mess = arguments?.getString("message")
+        button = view!!.findViewById(R.id.btn_sure_)
+        textview = view!!.findViewById(R.id.tv_message)
+        textview.text =mess
+        button_cancle = view!!.findViewById(R.id.btn_cancle_)
+        button.setOnClickListener { onClick.onSure()
+            dismiss() }
+        button_cancle.setOnClickListener {
+            onClick.onCancle()
+            dismiss()
+        }
+
+    }
+
+    /**
+     * 闅愯棌铏氭嫙鎸夐敭锛屽苟涓斿叏灞�
+     */
+    protected fun hideBottomUIMenu() { //闅愯棌铏氭嫙鎸夐敭锛屽苟涓斿叏灞�
+        if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api
+            val v = this.dialog.window.decorView
+            v.systemUiVisibility = View.GONE
+        } else if (Build.VERSION.SDK_INT >= 19) { //for new api versions.
+            val decorView = dialog.window.decorView
+            val uiOptions = (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
+                    or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY or View.SYSTEM_UI_FLAG_FULLSCREEN)
+            decorView.systemUiVisibility = uiOptions
+        }
+    }
+
+    companion object{
+        fun newInstance(message:String):MyDialog{
+            var myDialog= MyDialog()
+            var bundle = Bundle()
+            bundle.putString("message",message)
+            myDialog.arguments = bundle
+            return myDialog
+
+        }
+    }
+
+    interface MyOnClickListener{
+        fun onSure()
+        fun onCancle()
+    }
+
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/safeluck/drive/evaluation/customview/MyDialogFragment.java b/app/src/main/java/safeluck/drive/evaluation/customview/MyDialogFragment.java
deleted file mode 100644
index 5b0b0ba..0000000
--- a/app/src/main/java/safeluck/drive/evaluation/customview/MyDialogFragment.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package safeluck.drive.evaluation.customview;
-
-import android.app.Dialog;
-import android.content.DialogInterface;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.appcompat.app.AlertDialog;
-import androidx.fragment.app.DialogFragment;
-
-public class MyDialogFragment extends DialogFragment {
-    @Nullable
-    @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-
-        return super.onCreateView(inflater, container, savedInstanceState);
-    }
-
-    @NonNull
-    @Override
-    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
-        AlertDialog dialog =  new AlertDialog.Builder(getActivity())
-                .setTitle("璇烽�夋嫨鑰冭瘯椤�")
-                .setMessage("鏉ラ�夋嫨浣犺瀹炵幇鐨勪竴涓効鏈涙妸")
-                .setPositiveButton("鍦鸿��", new DialogInterface.OnClickListener() {
-                    @Override
-                    public void onClick(DialogInterface dialog, int which) {
-                        if (callback != null){
-                            callback.changKao();
-                        }
-                    }
-                })
-                .setNegativeButton("璺��", new DialogInterface.OnClickListener() {
-                    @Override
-                    public void onClick(DialogInterface dialog, int which) {
-                        if (callback!= null){
-                            callback.luKao();
-                        }
-                    }
-                }).create();
-        dialog.setCancelable(false);
-        return dialog;
-    }
-    private Callback callback;
-
-
-    public  interface Callback{
-        void changKao();
-        void luKao();
-    }
-
-
-    public void setCallback(Callback callback) {
-        this.callback = callback;
-    }
-}
diff --git a/app/src/main/java/safeluck/drive/evaluation/customview/QRCodeDialog.java b/app/src/main/java/safeluck/drive/evaluation/customview/QRCodeDialog.java
index c067595..3554241 100644
--- a/app/src/main/java/safeluck/drive/evaluation/customview/QRCodeDialog.java
+++ b/app/src/main/java/safeluck/drive/evaluation/customview/QRCodeDialog.java
@@ -4,6 +4,7 @@
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.Handler;
@@ -13,6 +14,8 @@
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.view.Window;
+import android.view.WindowManager;
 import android.widget.Button;
 import android.widget.ImageView;
 import android.widget.TextView;
@@ -43,7 +46,7 @@
 public class QRCodeDialog extends DialogFragment {
     private static final String TAG = "QRCodeDialog";
     private String message="姝e湪鍔犺浇...";
-    private boolean canCancel= true;
+    private boolean canCancel= false;
     private ImageView iv_qrCode;
     private Button btn;
     private Bitmap qrBitmap;
@@ -61,14 +64,26 @@
     @Nullable
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-        hideBottomUIMenu();
+        if (getDialog() != null) {
+            Window window = getDialog().getWindow();
+
+            if (window != null) {
+                window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
+                window.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
+
+                getDialog().setOnShowListener(dialog ->  {
+                    window.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
+                    hideBottomUIMenu();
+                });
+            }
+        }
         View view = inflater.inflate(R.layout.layout_dialog_qrcode,container,false);
         initView(view);
         setCancelable(canCancel);
 
         Message message = Message.obtain();
         message.what = 1;
-        handler.sendMessageDelayed(message,15*1000);
+        handler.sendMessageDelayed(message,25*1000);
         return view;
     }
 
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java
index 6b8483b..7a2a4d5 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java
@@ -1,11 +1,9 @@
 package safeluck.drive.evaluation.fragment;
 
 
-import android.content.DialogInterface;
 import android.os.Bundle;
 
 import android.util.Log;
-import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -15,11 +13,8 @@
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
-import androidx.appcompat.app.AlertDialog;
-import androidx.fragment.app.DialogFragment;
 
 
-import com.anyun.exam.lib.AYSdk;
 
 import me.yokeyword.fragmentation.ISupportFragment;
 import me.yokeyword.fragmentation.SupportFragment;
@@ -27,7 +22,7 @@
 import safeluck.drive.evaluation.MainActivity;
 import safeluck.drive.evaluation.R;
 import safeluck.drive.evaluation.bean.ExamPlatformData;
-import safeluck.drive.evaluation.customview.LoadProgressDialog;
+import safeluck.drive.evaluation.customview.MyDialog;
 
 
 /**
@@ -113,16 +108,23 @@
 
                 break;
             case R.id.exit_sys:
-                //閫�鍑虹郴缁�
-                AlertDialog.Builder builder = new AlertDialog.Builder(_mActivity);
-                builder.setMessage("鎮ㄥ皢閫�鍑虹郴缁�,璇风‘璁ゆ暟鎹凡淇濆瓨").setPositiveButton("纭畾", new DialogInterface.OnClickListener() {
+
+                MyDialog myDialog = MyDialog.Companion.newInstance("鎮ㄥ皢閫�鍑虹郴缁�,璇风‘璁ゆ暟鎹凡淇濆瓨");
+
+                myDialog.setOnClick(new MyDialog.MyOnClickListener() {
                     @Override
-                    public void onClick(DialogInterface dialog, int which) {
+                    public void onSure() {
                         _mActivity.finish();
+
                     }
-                }).setNegativeButton("鍙栨秷", (DialogInterface dialog, int which)-> {
-                        dialog.dismiss();
-                }).show();
+
+                    @Override
+                    public void onCancle() {
+
+                    }
+                });
+
+                myDialog.show(getFragmentManager(),"mydialog");
 
                 break;
             case R.id.system_setting:
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
index fdf4e1b..9d5667e 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
@@ -66,7 +66,6 @@
 import safeluck.drive.evaluation.customview.ArrowView;
 import safeluck.drive.evaluation.customview.HouseView;
 import safeluck.drive.evaluation.customview.LoadProgressDialog;
-import safeluck.drive.evaluation.customview.MyDialogFragment;
 import safeluck.drive.evaluation.customview.QRCodeDialog;
 import safeluck.drive.evaluation.customview.SelectDialog;
 import safeluck.drive.evaluation.httpmodule.RetrofitCreator;
@@ -582,7 +581,6 @@
     }
 
 private LoadProgressDialog loadProgressDialog;
-MyDialogFragment myDialogFragment;
     @Override
     public void onClick(View v) {
         switch (v.getId()) {
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
index 67f0524..b48e1f5 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -68,7 +68,6 @@
 import safeluck.drive.evaluation.customview.ArrowView;
 import safeluck.drive.evaluation.customview.HouseView;
 import safeluck.drive.evaluation.customview.LoadProgressDialog;
-import safeluck.drive.evaluation.customview.MyDialogFragment;
 import safeluck.drive.evaluation.customview.SelectDialog;
 import safeluck.drive.evaluation.im.MessageProcessor;
 import safeluck.drive.evaluation.platformMessage.JKMessage0201;
@@ -566,7 +565,6 @@
     }
 
 
-    MyDialogFragment myDialogFragment;
     @Override
     public void onClick(View v) {
         switch (v.getId()) {
diff --git a/app/src/main/res/layout/layout_dlg.xml b/app/src/main/res/layout/layout_dlg.xml
new file mode 100644
index 0000000..9856c7f
--- /dev/null
+++ b/app/src/main/res/layout/layout_dlg.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="210dp"
+
+    android:layout_height="180dp"
+    android:gravity="center"
+
+    android:background="@drawable/bg_select_dlg"
+    android:orientation="vertical" >
+<TextView
+    android:layout_width="match_parent"
+    android:layout_height="0dp"
+    android:layout_weight="1"
+    android:textSize="@dimen/network_train_textsize20px"
+    android:textColor="@android:color/white"
+    android:layout_margin="@dimen/ui_margin_10dp"
+    android:text="鎻愮ず锛�"/>
+    <TextView
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="2"
+        android:id="@+id/tv_message"
+        android:textColor="@android:color/white"
+        android:padding="@dimen/ui_margin_5dp"
+        android:textSize="@dimen/network_train_textsize24px"
+        android:textAlignment="textStart"
+        android:text="鍊惧惉鏀惧亣鍟﹂檮杩戝ぇ鍔涘紑鍙戞斁鍋囨垜鍑忚偉I"/>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="2"
+        android:orientation="horizontal"
+        >
+        <Button
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:layout_marginTop="@dimen/ui_margin_10dp"
+            android:text="纭畾"
+            android:padding="@dimen/ui_margin_5dp"
+            android:textSize="@dimen/network_train_textsize22px"
+            android:background="@drawable/bg_rgb_dlg"
+            android:textColor="@android:color/white"
+            android:id="@+id/btn_sure_"/>
+        <Button
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:padding="@dimen/ui_margin_5dp"
+            android:layout_marginTop="@dimen/ui_margin_10dp"
+            android:text="鍙栨秷"
+            android:textSize="@dimen/network_train_textsize22px"
+            android:background="@drawable/bg_rgb_dlg"
+            android:textColor="@android:color/white"
+            android:id="@+id/btn_cancle_"/>
+    </LinearLayout>
+
+</LinearLayout>
\ No newline at end of file

--
Gitblit v1.8.0