1 package com.android.systemui.sensorprivacy
2 
3 import android.content.Context
4 import android.content.DialogInterface
5 import android.content.res.Resources
6 import android.text.Html
7 import android.view.LayoutInflater
8 import android.view.View
9 import android.view.WindowManager
10 import android.widget.ImageView
11 import com.android.internal.widget.DialogTitle
12 import com.android.systemui.res.R
13 import com.android.systemui.statusbar.phone.SystemUIDialog
14 
15 class SensorUseDialog(
16     context: Context,
17     val sensor: Int,
18     val clickListener: DialogInterface.OnClickListener,
19     val dismissListener: DialogInterface.OnDismissListener
20 ) : SystemUIDialog(context) {
21 
22     // TODO move to onCreate (b/200815309)
23     init {
24         window!!.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED)
25         window!!.addSystemFlags(
26                 WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS)
27 
28         val layoutInflater = LayoutInflater.from(context)
29         val customTitleView = layoutInflater.inflate(R.layout.sensor_use_started_title, null)
30         customTitleView.requireViewById<DialogTitle>(R.id.sensor_use_started_title_message)
31                 .setText(when (sensor) {
32                     SensorUseStartedActivity.MICROPHONE ->
33                         R.string.sensor_privacy_start_use_mic_dialog_title
34                     SensorUseStartedActivity.CAMERA ->
35                         R.string.sensor_privacy_start_use_camera_dialog_title
36                     SensorUseStartedActivity.ALL_SENSORS ->
37                         R.string.sensor_privacy_start_use_mic_camera_dialog_title
38                     else -> Resources.ID_NULL
39                 })
40         customTitleView.requireViewById<ImageView>(R.id.sensor_use_microphone_icon).visibility =
41                 if (sensor == SensorUseStartedActivity.MICROPHONE ||
42                         sensor == SensorUseStartedActivity.ALL_SENSORS) {
43                     View.VISIBLE
44                 } else {
45                     View.GONE
46                 }
47         customTitleView.requireViewById<ImageView>(R.id.sensor_use_camera_icon).visibility =
48                 if (sensor == SensorUseStartedActivity.CAMERA ||
49                         sensor == SensorUseStartedActivity.ALL_SENSORS) {
50                     View.VISIBLE
51                 } else {
52                     View.GONE
53                 }
54 
55         setCustomTitle(customTitleView)
56         setMessage(Html.fromHtml(context.getString(when (sensor) {
57             SensorUseStartedActivity.MICROPHONE ->
58                 R.string.sensor_privacy_start_use_mic_dialog_content
59             SensorUseStartedActivity.CAMERA ->
60                 R.string.sensor_privacy_start_use_camera_dialog_content
61             SensorUseStartedActivity.ALL_SENSORS ->
62                 R.string.sensor_privacy_start_use_mic_camera_dialog_content
63             else -> Resources.ID_NULL
64         }), 0))
65 
66         setButton(BUTTON_POSITIVE,
67                 context.getString(com.android.internal.R.string
68                         .sensor_privacy_start_use_dialog_turn_on_button), clickListener)
69         setButton(BUTTON_NEGATIVE,
70                 context.getString(com.android.internal.R.string
71                         .cancel), clickListener)
72 
73         setOnDismissListener(dismissListener)
74 
75         setCancelable(false)
76     }
77 }
78