// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_UI_ANDROID_BLUETOOTH_CHOOSER_ANDROID_H_ #define CHROME_BROWSER_UI_ANDROID_BLUETOOTH_CHOOSER_ANDROID_H_ #include "base/android/scoped_java_ref.h" #include "content/public/browser/bluetooth_chooser.h" #include "content/public/browser/web_contents.h" namespace url { class Origin; } // Represents a way to ask the user to select a Bluetooth device from a list of // options. class BluetoothChooserAndroid : public content::BluetoothChooser { public: // Both frame and event_handler must outlive the BluetoothChooserAndroid. BluetoothChooserAndroid(content::RenderFrameHost* frame, const EventHandler& event_handler); ~BluetoothChooserAndroid() override; // content::BluetoothChooser: bool CanAskForScanningPermission() override; void SetAdapterPresence(AdapterPresence presence) override; void ShowDiscoveryState(DiscoveryState state) override; void AddDevice(const std::string& device_id, const base::string16& device_name) override; void RemoveDevice(const std::string& device_id) override; // Report the dialog's result. void OnDialogFinished(JNIEnv* env, const base::android::JavaParamRef& obj, jint event_type, const base::android::JavaParamRef& device_id); // Notify bluetooth stack that the search needs to be re-issued. void RestartSearch(); // Calls RestartSearch(). Unused JNI parameters enable calls from Java. void RestartSearch(JNIEnv*, const base::android::JavaParamRef&); void ShowBluetoothOverviewLink( JNIEnv* env, const base::android::JavaParamRef& obj); void ShowBluetoothAdapterOffLink( JNIEnv* env, const base::android::JavaParamRef& obj); void ShowNeedLocationPermissionLink( JNIEnv* env, const base::android::JavaParamRef& obj); static bool Register(JNIEnv* env); private: void OpenURL(const char* url); base::android::ScopedJavaGlobalRef java_dialog_; content::WebContents* web_contents_; BluetoothChooser::EventHandler event_handler_; }; #endif // CHROME_BROWSER_UI_ANDROID_BLUETOOTH_CHOOSER_ANDROID_H_