app_modal_dialog_view_android.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. // Copyright (c) 2012 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef COMPONENTS_JAVASCRIPT_DIALOGS_ANDROID_APP_MODAL_DIALOG_VIEW_ANDROID_H_
  5. #define COMPONENTS_JAVASCRIPT_DIALOGS_ANDROID_APP_MODAL_DIALOG_VIEW_ANDROID_H_
  6. #include <memory>
  7. #include "base/android/jni_weak_ref.h"
  8. #include "base/android/scoped_java_ref.h"
  9. #include "components/javascript_dialogs/app_modal_dialog_view.h"
  10. #include "ui/gfx/native_widget_types.h"
  11. namespace javascript_dialogs {
  12. class AppModalDialogController;
  13. class AppModalDialogViewAndroid : public AppModalDialogView {
  14. public:
  15. AppModalDialogViewAndroid(JNIEnv* env,
  16. AppModalDialogController* controller,
  17. gfx::NativeWindow parent);
  18. AppModalDialogViewAndroid(const AppModalDialogViewAndroid&) = delete;
  19. AppModalDialogViewAndroid& operator=(const AppModalDialogViewAndroid&) =
  20. delete;
  21. ~AppModalDialogViewAndroid() override;
  22. // AppModalDialogView:
  23. void ShowAppModalDialog() override;
  24. void ActivateAppModalDialog() override;
  25. void CloseAppModalDialog() override;
  26. void AcceptAppModalDialog() override;
  27. void CancelAppModalDialog() override;
  28. bool IsShowing() const override;
  29. // Called when java confirms or cancels the dialog.
  30. void DidAcceptAppModalDialog(
  31. JNIEnv* env,
  32. const base::android::JavaParamRef<jobject>& obj,
  33. const base::android::JavaParamRef<jstring>& prompt_text,
  34. bool suppress_js_dialogs);
  35. void DidCancelAppModalDialog(JNIEnv* env,
  36. const base::android::JavaParamRef<jobject>&,
  37. bool suppress_js_dialogs);
  38. const base::android::ScopedJavaGlobalRef<jobject>& GetDialogObject() const;
  39. private:
  40. std::unique_ptr<AppModalDialogController> controller_;
  41. base::android::ScopedJavaGlobalRef<jobject> dialog_jobject_;
  42. JavaObjectWeakGlobalRef parent_jobject_weak_ref_;
  43. };
  44. } // namespace javascript_dialogs
  45. #endif // COMPONENTS_JAVASCRIPT_DIALOGS_ANDROID_APP_MODAL_DIALOG_VIEW_ANDROID_H_