OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/android/bluetooth_chooser_android.h" | 5 #include "chrome/browser/ui/android/bluetooth_chooser_android.h" |
6 | 6 |
7 #include "base/android/jni_android.h" | 7 #include "base/android/jni_android.h" |
8 #include "base/android/jni_string.h" | 8 #include "base/android/jni_string.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "chrome/browser/ssl/chrome_security_state_model_client.h" | 10 #include "chrome/browser/ssl/chrome_security_state_model_client.h" |
(...skipping 29 matching lines...) Expand all Loading... |
40 ChromeSecurityStateModelClient::FromWebContents(web_contents_); | 40 ChromeSecurityStateModelClient::FromWebContents(web_contents_); |
41 DCHECK(security_model_client); | 41 DCHECK(security_model_client); |
42 | 42 |
43 // Create (and show) the BluetoothChooser dialog. | 43 // Create (and show) the BluetoothChooser dialog. |
44 JNIEnv* env = AttachCurrentThread(); | 44 JNIEnv* env = AttachCurrentThread(); |
45 base::android::ScopedJavaLocalRef<jstring> origin_string = | 45 base::android::ScopedJavaLocalRef<jstring> origin_string = |
46 base::android::ConvertUTF16ToJavaString( | 46 base::android::ConvertUTF16ToJavaString( |
47 env, | 47 env, |
48 url_formatter::FormatUrlForSecurityDisplay(GURL(origin.Serialize()))); | 48 url_formatter::FormatUrlForSecurityDisplay(GURL(origin.Serialize()))); |
49 java_dialog_.Reset(Java_BluetoothChooserDialog_create( | 49 java_dialog_.Reset(Java_BluetoothChooserDialog_create( |
50 env, window_android.obj(), origin_string.obj(), | 50 env, window_android, origin_string, |
51 security_model_client->GetSecurityInfo().security_level, | 51 security_model_client->GetSecurityInfo().security_level, |
52 reinterpret_cast<intptr_t>(this))); | 52 reinterpret_cast<intptr_t>(this))); |
53 } | 53 } |
54 | 54 |
55 BluetoothChooserAndroid::~BluetoothChooserAndroid() { | 55 BluetoothChooserAndroid::~BluetoothChooserAndroid() { |
56 if (!java_dialog_.is_null()) { | 56 if (!java_dialog_.is_null()) { |
57 Java_BluetoothChooserDialog_closeDialog(AttachCurrentThread(), | 57 Java_BluetoothChooserDialog_closeDialog(AttachCurrentThread(), |
58 java_dialog_.obj()); | 58 java_dialog_); |
59 } | 59 } |
60 } | 60 } |
61 | 61 |
62 bool BluetoothChooserAndroid::CanAskForScanningPermission() { | 62 bool BluetoothChooserAndroid::CanAskForScanningPermission() { |
63 // Creating the dialog returns null if Chromium can't ask for permission to | 63 // Creating the dialog returns null if Chromium can't ask for permission to |
64 // scan for BT devices. | 64 // scan for BT devices. |
65 return !java_dialog_.is_null(); | 65 return !java_dialog_.is_null(); |
66 } | 66 } |
67 | 67 |
68 void BluetoothChooserAndroid::SetAdapterPresence(AdapterPresence presence) { | 68 void BluetoothChooserAndroid::SetAdapterPresence(AdapterPresence presence) { |
69 JNIEnv* env = AttachCurrentThread(); | 69 JNIEnv* env = AttachCurrentThread(); |
70 if (presence != AdapterPresence::POWERED_ON) { | 70 if (presence != AdapterPresence::POWERED_ON) { |
71 Java_BluetoothChooserDialog_notifyAdapterTurnedOff(env, java_dialog_.obj()); | 71 Java_BluetoothChooserDialog_notifyAdapterTurnedOff(env, java_dialog_); |
72 } else { | 72 } else { |
73 Java_BluetoothChooserDialog_notifyAdapterTurnedOn(env, java_dialog_.obj()); | 73 Java_BluetoothChooserDialog_notifyAdapterTurnedOn(env, java_dialog_); |
74 } | 74 } |
75 } | 75 } |
76 | 76 |
77 void BluetoothChooserAndroid::ShowDiscoveryState(DiscoveryState state) { | 77 void BluetoothChooserAndroid::ShowDiscoveryState(DiscoveryState state) { |
78 // These constants are used in BluetoothChooserDialog.notifyDiscoveryState. | 78 // These constants are used in BluetoothChooserDialog.notifyDiscoveryState. |
79 int java_state = -1; | 79 int java_state = -1; |
80 switch (state) { | 80 switch (state) { |
81 case DiscoveryState::FAILED_TO_START: | 81 case DiscoveryState::FAILED_TO_START: |
82 java_state = 0; | 82 java_state = 0; |
83 break; | 83 break; |
84 case DiscoveryState::DISCOVERING: | 84 case DiscoveryState::DISCOVERING: |
85 java_state = 1; | 85 java_state = 1; |
86 break; | 86 break; |
87 case DiscoveryState::IDLE: | 87 case DiscoveryState::IDLE: |
88 java_state = 2; | 88 java_state = 2; |
89 break; | 89 break; |
90 } | 90 } |
91 Java_BluetoothChooserDialog_notifyDiscoveryState( | 91 Java_BluetoothChooserDialog_notifyDiscoveryState(AttachCurrentThread(), |
92 AttachCurrentThread(), java_dialog_.obj(), java_state); | 92 java_dialog_, java_state); |
93 } | 93 } |
94 | 94 |
95 void BluetoothChooserAndroid::AddOrUpdateDevice( | 95 void BluetoothChooserAndroid::AddOrUpdateDevice( |
96 const std::string& device_id, | 96 const std::string& device_id, |
97 bool should_update_name, | 97 bool should_update_name, |
98 const base::string16& device_name, | 98 const base::string16& device_name, |
99 bool is_gatt_connected, | 99 bool is_gatt_connected, |
100 bool is_paired, | 100 bool is_paired, |
101 const int8_t* rssi) { | 101 const int8_t* rssi) { |
102 JNIEnv* env = AttachCurrentThread(); | 102 JNIEnv* env = AttachCurrentThread(); |
103 ScopedJavaLocalRef<jstring> java_device_id = | 103 ScopedJavaLocalRef<jstring> java_device_id = |
104 ConvertUTF8ToJavaString(env, device_id); | 104 ConvertUTF8ToJavaString(env, device_id); |
105 ScopedJavaLocalRef<jstring> java_device_name = | 105 ScopedJavaLocalRef<jstring> java_device_name = |
106 ConvertUTF16ToJavaString(env, device_name); | 106 ConvertUTF16ToJavaString(env, device_name); |
107 Java_BluetoothChooserDialog_addOrUpdateDevice( | 107 Java_BluetoothChooserDialog_addOrUpdateDevice( |
108 env, java_dialog_.obj(), java_device_id.obj(), java_device_name.obj()); | 108 env, java_dialog_, java_device_id, java_device_name); |
109 } | 109 } |
110 | 110 |
111 void BluetoothChooserAndroid::RemoveDevice(const std::string& device_id) { | 111 void BluetoothChooserAndroid::RemoveDevice(const std::string& device_id) { |
112 JNIEnv* env = AttachCurrentThread(); | 112 JNIEnv* env = AttachCurrentThread(); |
113 ScopedJavaLocalRef<jstring> java_device_id = | 113 ScopedJavaLocalRef<jstring> java_device_id = |
114 ConvertUTF16ToJavaString(env, base::UTF8ToUTF16(device_id)); | 114 ConvertUTF16ToJavaString(env, base::UTF8ToUTF16(device_id)); |
115 Java_BluetoothChooserDialog_removeDevice(env, java_dialog_.obj(), | 115 Java_BluetoothChooserDialog_removeDevice(env, java_dialog_, java_device_id); |
116 java_device_id.obj()); | |
117 } | 116 } |
118 | 117 |
119 void BluetoothChooserAndroid::OnDialogFinished( | 118 void BluetoothChooserAndroid::OnDialogFinished( |
120 JNIEnv* env, | 119 JNIEnv* env, |
121 const JavaParamRef<jobject>& obj, | 120 const JavaParamRef<jobject>& obj, |
122 jint event_type, | 121 jint event_type, |
123 const JavaParamRef<jstring>& device_id) { | 122 const JavaParamRef<jstring>& device_id) { |
124 // Values are defined in BluetoothChooserDialog as DIALOG_FINISHED constants. | 123 // Values are defined in BluetoothChooserDialog as DIALOG_FINISHED constants. |
125 switch (event_type) { | 124 switch (event_type) { |
126 case 0: | 125 case 0: |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
171 // static | 170 // static |
172 bool BluetoothChooserAndroid::Register(JNIEnv* env) { | 171 bool BluetoothChooserAndroid::Register(JNIEnv* env) { |
173 return RegisterNativesImpl(env); | 172 return RegisterNativesImpl(env); |
174 } | 173 } |
175 | 174 |
176 void BluetoothChooserAndroid::OpenURL(const char* url) { | 175 void BluetoothChooserAndroid::OpenURL(const char* url) { |
177 web_contents_->OpenURL(content::OpenURLParams( | 176 web_contents_->OpenURL(content::OpenURLParams( |
178 GURL(url), content::Referrer(), NEW_FOREGROUND_TAB, | 177 GURL(url), content::Referrer(), NEW_FOREGROUND_TAB, |
179 ui::PAGE_TRANSITION_AUTO_TOPLEVEL, false /* is_renderer_initiated */)); | 178 ui::PAGE_TRANSITION_AUTO_TOPLEVEL, false /* is_renderer_initiated */)); |
180 } | 179 } |
OLD | NEW |