| 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 |