Commit 3720027e authored by Finnur Thorarinsson's avatar Finnur Thorarinsson Committed by Chromium LUCI CQ

[Android] Modularize the new PWA install files.

Bug: 1146450
Change-Id: I946263d21ca851e78f67788737cfe812b148629c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2595296
Commit-Queue: Finnur Thorarinsson <finnur@chromium.org>
Auto-Submit: Finnur Thorarinsson <finnur@chromium.org>
Reviewed-by: default avatarMatthew Jones <mdjones@chromium.org>
Reviewed-by: default avatarEvan Stade <estade@chromium.org>
Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Reviewed-by: default avatarTed Choc <tedchoc@chromium.org>
Reviewed-by: default avatarDominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#840562}
parent ffa30b87
......@@ -363,6 +363,7 @@ android_library("chrome_java") {
"//chrome/browser/version:java",
"//chrome/browser/video_tutorials:factory_java",
"//chrome/browser/video_tutorials:java",
"//chrome/browser/webapps/android:java",
"//chrome/browser/webauthn/android:java",
"//chrome/browser/xsurface:java",
"//components/autofill/android:autofill_java",
......@@ -867,6 +868,7 @@ junit_binary("chrome_junit_tests") {
"//chrome/browser/video_tutorials:java",
"//chrome/browser/video_tutorials:test_support_java",
"//chrome/browser/video_tutorials/internal:junit",
"//chrome/browser/webapps/android:java",
"//chrome/browser/xsurface:java",
"//chrome/test/android:chrome_java_test_support",
"//components/background_task_scheduler:background_task_scheduler_java",
......@@ -1118,6 +1120,7 @@ android_library("chrome_test_java") {
"//chrome/browser/uid/android:javatests",
"//chrome/browser/util:java",
"//chrome/browser/version:java",
"//chrome/browser/webapps/android:java",
"//chrome/test:sync_integration_test_support_java",
"//chrome/test/android:chrome_java_test_pagecontroller",
"//chrome/test/android:chrome_java_test_support",
......@@ -3471,8 +3474,6 @@ generate_jni("chrome_jni_headers") {
"java/src/org/chromium/chrome/browser/webapps/addtohomescreen/AddToHomescreenCoordinator.java",
"java/src/org/chromium/chrome/browser/webapps/addtohomescreen/AddToHomescreenInstaller.java",
"java/src/org/chromium/chrome/browser/webapps/addtohomescreen/AddToHomescreenMediator.java",
"java/src/org/chromium/chrome/browser/webapps/addtohomescreen/PwaBottomSheetController.java",
"java/src/org/chromium/chrome/browser/webapps/addtohomescreen/PwaBottomSheetControllerProvider.java",
"java/src/org/chromium/chrome/browser/webauth/AuthenticatorImpl.java",
"java/src/org/chromium/chrome/browser/webauth/Fido2Helper.java",
]
......
......@@ -30,6 +30,7 @@ include_rules = [
"+chrome/browser/util/android/java",
"+chrome/browser/version",
"+chrome/browser/video_tutorials",
"+chrome/browser/webapps/android",
"+chrome/browser/webauthn/android",
"+components/browser_ui/android/bottomsheet",
"+components/browser_ui/banners/android",
......
......@@ -894,8 +894,6 @@ chrome_java_resources = [
"java/res/layout/passwords_progress_dialog.xml",
"java/res/layout/powered_by_chrome_footer.xml",
"java/res/layout/preference_text_scale.xml",
"java/res/layout/pwa_install_bottom_sheet_content.xml",
"java/res/layout/pwa_install_bottom_sheet_toolbar.xml",
"java/res/layout/radio_button_group_homepage_preference.xml",
"java/res/layout/radio_button_group_theme_preference.xml",
"java/res/layout/recent_tabs_group_item.xml",
......
......@@ -1513,19 +1513,11 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/webapps/WebappLauncherActivity.java",
"java/src/org/chromium/chrome/browser/webapps/WebappLocator.java",
"java/src/org/chromium/chrome/browser/webapps/WebappRegistry.java",
"java/src/org/chromium/chrome/browser/webapps/addtohomescreen/AddToHomescreenBottomSheetViewBinder.java",
"java/src/org/chromium/chrome/browser/webapps/addtohomescreen/AddToHomescreenCoordinator.java",
"java/src/org/chromium/chrome/browser/webapps/addtohomescreen/AddToHomescreenDialogView.java",
"java/src/org/chromium/chrome/browser/webapps/addtohomescreen/AddToHomescreenInstaller.java",
"java/src/org/chromium/chrome/browser/webapps/addtohomescreen/AddToHomescreenMediator.java",
"java/src/org/chromium/chrome/browser/webapps/addtohomescreen/AddToHomescreenProperties.java",
"java/src/org/chromium/chrome/browser/webapps/addtohomescreen/AddToHomescreenViewBinder.java",
"java/src/org/chromium/chrome/browser/webapps/addtohomescreen/AddToHomescreenViewDelegate.java",
"java/src/org/chromium/chrome/browser/webapps/addtohomescreen/PwaBottomSheetController.java",
"java/src/org/chromium/chrome/browser/webapps/addtohomescreen/PwaBottomSheetControllerFactory.java",
"java/src/org/chromium/chrome/browser/webapps/addtohomescreen/PwaBottomSheetControllerProvider.java",
"java/src/org/chromium/chrome/browser/webapps/addtohomescreen/PwaInstallBottomSheetContent.java",
"java/src/org/chromium/chrome/browser/webapps/addtohomescreen/PwaInstallBottomSheetView.java",
"java/src/org/chromium/chrome/browser/webauth/AuthenticatorFactory.java",
"java/src/org/chromium/chrome/browser/webauth/AuthenticatorImpl.java",
"java/src/org/chromium/chrome/browser/webauth/Fido2ApiHandler.java",
......
......@@ -189,8 +189,6 @@
<dimen name="find_in_page_popup_height">60dp</dimen>
<dimen name="find_in_page_popup_margin_end">62dp</dimen>
<dimen name="webapk_screenshot_margin">20dp</dimen>
<!-- Toolbar dimensions -->
<dimen name="toolbar_tab_count_text_size_1_digit">12dp</dimen>
<dimen name="toolbar_tab_count_text_size_2_digit">10dp</dimen>
......
......@@ -64,8 +64,8 @@ import org.chromium.chrome.browser.ui.appmenu.AppMenuHandler;
import org.chromium.chrome.browser.ui.default_browser_promo.DefaultBrowserPromoUtils;
import org.chromium.chrome.browser.ui.tablet.emptybackground.EmptyBackgroundViewWrapper;
import org.chromium.chrome.browser.vr.VrModuleProvider;
import org.chromium.chrome.browser.webapps.addtohomescreen.PwaBottomSheetController;
import org.chromium.chrome.browser.webapps.addtohomescreen.PwaBottomSheetControllerFactory;
import org.chromium.chrome.browser.webapps.PwaBottomSheetController;
import org.chromium.chrome.browser.webapps.PwaBottomSheetControllerFactory;
import org.chromium.chrome.features.start_surface.StartSurface;
import org.chromium.components.browser_ui.bottomsheet.EmptyBottomSheetObserver;
import org.chromium.components.browser_ui.util.ComposedBrowserControlsVisibilityDelegate;
......
......@@ -7,13 +7,19 @@ package org.chromium.chrome.browser.webapps.addtohomescreen;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import androidx.annotation.StringRes;
import androidx.annotation.VisibleForTesting;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.banners.AppBannerManager;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.webapps.AddToHomescreenProperties;
import org.chromium.chrome.browser.webapps.AddToHomescreenViewDelegate;
import org.chromium.chrome.browser.webapps.PwaBottomSheetController;
import org.chromium.chrome.browser.webapps.PwaBottomSheetControllerProvider;
import org.chromium.content_public.browser.WebContents;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.modaldialog.ModalDialogManager;
......
......@@ -26,6 +26,7 @@ import androidx.annotation.VisibleForTesting;
import org.chromium.base.ContextUtils;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.banners.AppBannerManager;
import org.chromium.chrome.browser.webapps.AddToHomescreenViewDelegate;
import org.chromium.ui.modaldialog.DialogDismissalCause;
import org.chromium.ui.modaldialog.ModalDialogManager;
import org.chromium.ui.modaldialog.ModalDialogProperties;
......
......@@ -12,6 +12,8 @@ import androidx.annotation.StringRes;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.NativeMethods;
import org.chromium.chrome.browser.banners.AppData;
import org.chromium.chrome.browser.webapps.AddToHomescreenProperties;
import org.chromium.chrome.browser.webapps.AddToHomescreenViewDelegate;
import org.chromium.components.webapps.WebappsIconUtils;
import org.chromium.content_public.browser.WebContents;
import org.chromium.ui.base.WindowAndroid;
......
......@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.webapps.addtohomescreen;
import android.graphics.Bitmap;
import android.util.Pair;
import org.chromium.chrome.browser.webapps.AddToHomescreenProperties;
import org.chromium.ui.modelutil.PropertyKey;
import org.chromium.ui.modelutil.PropertyModel;
......
......@@ -35,6 +35,7 @@ import org.chromium.chrome.browser.banners.AppMenuVerbiage;
import org.chromium.chrome.browser.flags.ChromeSwitches;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.TabModel;
import org.chromium.chrome.browser.webapps.AddToHomescreenViewDelegate;
import org.chromium.chrome.browser.webapps.WebappDataStorage;
import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
......
......@@ -20,6 +20,7 @@ import org.chromium.base.test.util.CallbackHelper;
import org.chromium.base.test.util.Feature;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.banners.AppBannerManager;
import org.chromium.chrome.browser.webapps.AddToHomescreenViewDelegate;
import org.chromium.ui.modaldialog.DialogDismissalCause;
import org.chromium.ui.modaldialog.ModalDialogManager;
import org.chromium.ui.modaldialog.ModalDialogProperties;
......
......@@ -22,6 +22,7 @@ import org.chromium.base.test.BaseRobolectricTestRunner;
import org.chromium.base.test.util.Feature;
import org.chromium.base.test.util.JniMocker;
import org.chromium.chrome.browser.banners.AppData;
import org.chromium.chrome.browser.webapps.AddToHomescreenProperties;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.modelutil.PropertyModel;
......
......@@ -12,6 +12,7 @@ import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.chromium.base.test.BaseRobolectricTestRunner;
import org.chromium.chrome.browser.webapps.AddToHomescreenProperties;
import org.chromium.ui.modelutil.PropertyModel;
import org.chromium.ui.modelutil.PropertyModelChangeProcessor;
......
......@@ -2961,8 +2961,6 @@ static_library("browser") {
"android/webapps/add_to_homescreen_mediator.h",
"android/webapps/add_to_homescreen_params.cc",
"android/webapps/add_to_homescreen_params.h",
"android/webapps/pwa_bottom_sheet_controller.cc",
"android/webapps/pwa_bottom_sheet_controller.h",
"android/webapps/webapp_registry.cc",
"android/webapps/webapp_registry.h",
"android/webauth/fido2helper_native_android.cc",
......@@ -3284,6 +3282,8 @@ static_library("browser") {
"//chrome/browser/updates:factory",
"//chrome/browser/video_tutorials/internal",
"//chrome/browser/video_tutorials/internal:jni_headers",
"//chrome/browser/webapps/android:android",
"//chrome/browser/webapps/android:jni_headers",
"//chrome/common:non_code_constants",
"//chrome/services/media_gallery_util/public/cpp",
"//components/assist_ranker/proto",
......@@ -3369,7 +3369,14 @@ static_library("browser") {
"//url:gurl_android",
"//url:origin_android",
]
allow_circular_includes_from += [ "//chrome/browser/share" ]
allow_circular_includes_from += [
# chrome/browser depends on webapps, but that module needs
# app_banner_manager_android.h from chrome. However, the .h file will soon
# be moved to a component (when WebLayer starts relying on it). Allow the
# circular dependency until then.
"//chrome/browser/webapps/android:android",
"//chrome/browser/share",
]
deps += [ "//chrome/browser/engagement/android:jni_headers" ]
deps -= [ "//components/storage_monitor" ]
......
......@@ -65,6 +65,7 @@ android_library("javatests") {
"//chrome/browser/profiles/android:java",
"//chrome/browser/tab:java",
"//chrome/browser/ui/android/appmenu/test:test_support_java",
"//chrome/browser/webapps/android:java",
"//chrome/test/android:chrome_java_test_support",
"//components/browser_ui/android/bottomsheet:java",
"//components/feature_engagement/public:public_java",
......
......@@ -74,6 +74,7 @@ import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabUtils;
import org.chromium.chrome.browser.ui.appmenu.AppMenuCoordinator;
import org.chromium.chrome.browser.ui.appmenu.AppMenuTestSupport;
import org.chromium.chrome.browser.webapps.PwaInstallBottomSheetView;
import org.chromium.chrome.browser.webapps.WebappDataStorage;
import org.chromium.chrome.test.ChromeActivityTestRule;
import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
......@@ -757,10 +758,14 @@ public class AppBannerManagerTest {
waitUntilBottomSheetStatus(mTabbedActivityTestRule, BottomSheetController.SheetState.HALF);
TextView appName = toolbar.findViewById(R.id.app_name);
TextView appOrigin = toolbar.findViewById(R.id.app_origin);
TextView description = content.findViewById(R.id.description);
TextView categories = content.findViewById(R.id.categories);
TextView appName =
toolbar.findViewById(PwaInstallBottomSheetView.getAppNameViewIdForTesting());
TextView appOrigin =
toolbar.findViewById(PwaInstallBottomSheetView.getAppOriginViewIdForTesting());
TextView description =
content.findViewById(PwaInstallBottomSheetView.getDescViewIdForTesting());
TextView categories =
content.findViewById(PwaInstallBottomSheetView.getCategoriesViewIdForTesting());
Assert.assertEquals("PWA Bottom Sheet", appName.getText());
Assert.assertTrue(appOrigin.getText().toString().startsWith("http://127.0.0.1:"));
......
......@@ -20,13 +20,14 @@
#include "chrome/browser/android/webapk/webapk_ukm_recorder.h"
#include "chrome/browser/android/webapps/add_to_homescreen_coordinator.h"
#include "chrome/browser/android/webapps/add_to_homescreen_params.h"
#include "chrome/browser/android/webapps/pwa_bottom_sheet_controller.h"
#include "chrome/browser/banners/android/jni_headers/AppBannerInProductHelpControllerProvider_jni.h"
#include "chrome/browser/banners/android/jni_headers/AppBannerManager_jni.h"
#include "chrome/browser/banners/app_banner_metrics.h"
#include "chrome/browser/banners/app_banner_settings_helper.h"
#include "chrome/browser/flags/android/chrome_feature_list.h"
#include "chrome/browser/infobars/infobar_service.h"
#include "chrome/browser/webapps/android/features.h"
#include "chrome/browser/webapps/android/pwa_bottom_sheet_controller.h"
#include "chrome/common/channel_info.h"
#include "chrome/common/chrome_features.h"
#include "components/feature_engagement/public/feature_constants.h"
......@@ -169,7 +170,8 @@ AppBannerManagerAndroid::ParamsToPerformInstallableWebAppCheck() {
AppBannerManager::ParamsToPerformInstallableWebAppCheck();
params.prefer_maskable_icon =
WebappsIconUtils::DoesAndroidSupportMaskableIcons();
if (base::FeatureList::IsEnabled(chrome::android::kPwaInstallUseBottomSheet))
if (base::FeatureList::IsEnabled(
webapps::features::kPwaInstallUseBottomSheet))
params.fetch_screenshots = true;
return params;
......@@ -509,7 +511,8 @@ void AppBannerManagerAndroid::MaybeShowAmbientBadge() {
return;
}
if (!base::FeatureList::IsEnabled(features::kInstallableAmbientBadgeInfoBar))
if (!base::FeatureList::IsEnabled(
::features::kInstallableAmbientBadgeInfoBar))
return;
// Do not show the ambient badge if it was recently dismissed.
......
......@@ -19,6 +19,7 @@
#include "chrome/browser/share/features.h"
#include "chrome/browser/sharing/shared_clipboard/feature_flags.h"
#include "chrome/browser/video_tutorials/switches.h"
#include "chrome/browser/webapps/android/features.h"
#include "chrome/common/chrome_features.h"
#include "components/autofill/core/common/autofill_features.h"
#include "components/autofill/core/common/autofill_payments_features.h"
......@@ -198,7 +199,6 @@ const base::Feature* kFeaturesExposedToJava[] = {
&kPhotoPickerVideoSupport,
&kPhotoPickerZoom,
&kProbabilisticCryptidRenderer,
&kPwaInstallUseBottomSheet,
&kReachedCodeProfiler,
&kReaderModeInCCT,
&kReengagementNotification,
......@@ -299,6 +299,7 @@ const base::Feature* kFeaturesExposedToJava[] = {
&switches::kSyncUseSessionsUnregisterDelay,
&subresource_filter::kSafeBrowsingSubresourceFilter,
&video_tutorials::features::kVideoTutorials,
&webapps::features::kPwaInstallUseBottomSheet,
};
const base::Feature* FindFeatureExposedToJava(const std::string& feature_name) {
......@@ -570,9 +571,6 @@ const base::Feature kPhotoPickerZoom{"PhotoPickerZoom",
const base::Feature kProbabilisticCryptidRenderer{
"ProbabilisticCryptidRenderer", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kPwaInstallUseBottomSheet{
"PwaInstallUseBottomSheet", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kReachedCodeProfiler{"ReachedCodeProfiler",
base::FEATURE_DISABLED_BY_DEFAULT};
......
......@@ -98,7 +98,6 @@ extern const base::Feature kOmniboxSpareRenderer;
extern const base::Feature kPhotoPickerVideoSupport;
extern const base::Feature kPhotoPickerZoom;
extern const base::Feature kProbabilisticCryptidRenderer;
extern const base::Feature kPwaInstallUseBottomSheet;
extern const base::Feature kReachedCodeProfiler;
extern const base::Feature kReengagementNotification;
extern const base::Feature kReaderModeInCCT;
......
# Copyright 2020 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.
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
source_set("android") {
sources = [
"features.cc",
"features.h",
"pwa_bottom_sheet_controller.cc",
"pwa_bottom_sheet_controller.h",
]
deps = [
"//base",
"//chrome/browser/webapps/android:jni_headers",
"//components/url_formatter:url_formatter",
"//components/webapps:webapps",
"//content/public/browser:browser",
"//services/device/public/mojom",
"//skia",
"//third_party/blink/public/common:common",
]
}
android_library("java") {
resources_package = "org.chromium.chrome.browser.webapps"
sources = [
"java/src/org/chromium/chrome/browser/webapps/AddToHomescreenBottomSheetViewBinder.java",
"java/src/org/chromium/chrome/browser/webapps/AddToHomescreenProperties.java",
"java/src/org/chromium/chrome/browser/webapps/AddToHomescreenViewDelegate.java",
"java/src/org/chromium/chrome/browser/webapps/PwaBottomSheetController.java",
"java/src/org/chromium/chrome/browser/webapps/PwaBottomSheetControllerFactory.java",
"java/src/org/chromium/chrome/browser/webapps/PwaBottomSheetControllerProvider.java",
"java/src/org/chromium/chrome/browser/webapps/PwaInstallBottomSheetContent.java",
"java/src/org/chromium/chrome/browser/webapps/PwaInstallBottomSheetView.java",
]
deps = [
":java_resources",
":jni_headers",
"//base:base_java",
"//base:jni_java",
"//components/browser_ui/android/bottomsheet:java",
"//content/public/android:content_java",
"//third_party/android_deps:androidx_annotation_annotation_java",
"//third_party/android_deps:androidx_recyclerview_recyclerview_java",
"//ui/android:ui_no_recycler_view_java",
]
annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
}
generate_jni("jni_headers") {
sources = [
"java/src/org/chromium/chrome/browser/webapps/PwaBottomSheetController.java",
"java/src/org/chromium/chrome/browser/webapps/PwaBottomSheetControllerProvider.java",
]
}
android_resources("java_resources") {
sources = [
"java/res/layout/pwa_install_bottom_sheet_content.xml",
"java/res/layout/pwa_install_bottom_sheet_toolbar.xml",
"java/res/values/dimens.xml",
]
deps = [
"//chrome/browser/ui/android/strings:ui_strings_grd",
"//components/webapk/android/libs/common:splash_resources",
]
}
# External directories and/or files that can be included from this module:
include_rules = [
"+components/browser_ui/android/bottomsheet",
"+content/public/android/java/src/org/chromium/content_public/browser",
]
// Copyright 2020 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.
#include "chrome/browser/webapps/android/features.h"
namespace webapps {
namespace features {
const base::Feature kPwaInstallUseBottomSheet{
"PwaInstallUseBottomSheet", base::FEATURE_DISABLED_BY_DEFAULT};
} // namespace features
} // namespace webapps
// Copyright 2020 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_WEBAPPS_ANDROID_FEATURES_H_
#define CHROME_BROWSER_WEBAPPS_ANDROID_FEATURES_H_
#include "base/feature_list.h"
namespace webapps {
namespace features {
extern const base::Feature kPwaInstallUseBottomSheet;
} // namespace features
} // namespace webapps
#endif // CHROME_BROWSER_WEBAPPS_ANDROID_FEATURES_H_
<!-- Copyright 2020 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. -->
<resources xmlns:tools="http://schemas.android.com/tools">
<dimen name="webapk_screenshot_margin">20dp</dimen>
</resources>
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.webapps.addtohomescreen;
package org.chromium.chrome.browser.webapps;
import android.graphics.Bitmap;
import android.util.Pair;
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.webapps.addtohomescreen;
package org.chromium.chrome.browser.webapps;
import android.graphics.Bitmap;
import android.util.Pair;
......@@ -14,28 +14,28 @@ import org.chromium.ui.modelutil.PropertyModel;
/**
* Contains the properties that an add-to-homescreen {@link PropertyModel} can have.
*/
class AddToHomescreenProperties {
static final PropertyModel.WritableObjectPropertyKey<String> TITLE =
public class AddToHomescreenProperties {
public static final PropertyModel.WritableObjectPropertyKey<String> TITLE =
new PropertyModel.WritableObjectPropertyKey<>();
static final PropertyModel.WritableObjectPropertyKey<String> URL =
public static final PropertyModel.WritableObjectPropertyKey<String> URL =
new PropertyModel.WritableObjectPropertyKey<>();
static final PropertyModel.WritableObjectPropertyKey<String> CATEGORIES =
public static final PropertyModel.WritableObjectPropertyKey<String> CATEGORIES =
new PropertyModel.WritableObjectPropertyKey<>();
static final PropertyModel.WritableObjectPropertyKey<String> DESCRIPTION =
public static final PropertyModel.WritableObjectPropertyKey<String> DESCRIPTION =
new PropertyModel.WritableObjectPropertyKey<>();
static final PropertyModel.WritableObjectPropertyKey<Pair<Bitmap, Boolean>> ICON =
public static final PropertyModel.WritableObjectPropertyKey<Pair<Bitmap, Boolean>> ICON =
new PropertyModel.WritableObjectPropertyKey<>();
static final PropertyModel.WritableIntPropertyKey TYPE =
public static final PropertyModel.WritableIntPropertyKey TYPE =
new PropertyModel.WritableIntPropertyKey();
static final PropertyModel.WritableBooleanPropertyKey CAN_SUBMIT =
public static final PropertyModel.WritableBooleanPropertyKey CAN_SUBMIT =
new PropertyModel.WritableBooleanPropertyKey();
static final PropertyModel.WritableObjectPropertyKey<OnClickListener> CLICK_LISTENER =
public static final PropertyModel.WritableObjectPropertyKey<OnClickListener> CLICK_LISTENER =
new PropertyModel.WritableObjectPropertyKey<>();
static final PropertyModel.WritableObjectPropertyKey<String> NATIVE_INSTALL_BUTTON_TEXT =
public static final PropertyModel.WritableObjectPropertyKey<String> NATIVE_INSTALL_BUTTON_TEXT =
new PropertyModel.WritableObjectPropertyKey<>();
static final PropertyModel.WritableFloatPropertyKey NATIVE_APP_RATING =
public static final PropertyModel.WritableFloatPropertyKey NATIVE_APP_RATING =
new PropertyModel.WritableFloatPropertyKey();
static final PropertyKey[] ALL_KEYS = {TITLE, URL, CATEGORIES, DESCRIPTION, ICON, TYPE,
public static final PropertyKey[] ALL_KEYS = {TITLE, URL, CATEGORIES, DESCRIPTION, ICON, TYPE,
CAN_SUBMIT, CLICK_LISTENER, NATIVE_INSTALL_BUTTON_TEXT, NATIVE_APP_RATING};
}
......@@ -2,13 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.webapps.addtohomescreen;
package org.chromium.chrome.browser.webapps;
/**
* Used by {@link AddToHomescreenDialogView} to propagate view events to {@link
* AddToHomescreenMediator}.
*/
interface AddToHomescreenViewDelegate {
public interface AddToHomescreenViewDelegate {
/**
* Called when the user accepts adding the item to home screen with the provided title.
*/
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.webapps.addtohomescreen;
package org.chromium.chrome.browser.webapps;
import android.app.Activity;
import android.content.Context;
......@@ -18,7 +18,6 @@ import org.chromium.base.UnownedUserData;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace;
import org.chromium.base.annotations.NativeMethods;
import org.chromium.chrome.R;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerProvider;
import org.chromium.content_public.browser.NavigationHandle;
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.webapps.addtohomescreen;
package org.chromium.chrome.browser.webapps;
import android.app.Activity;
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.webapps.addtohomescreen;
package org.chromium.chrome.browser.webapps;
import android.graphics.Bitmap;
......@@ -26,7 +26,7 @@ public class PwaBottomSheetControllerProvider {
* @param windowAndroid The window to pull the controller from.
* @return A shared instance of a {@link PwaBottomSheetController}.
*/
static PwaBottomSheetController from(WindowAndroid windowAndroid) {
public static PwaBottomSheetController from(WindowAndroid windowAndroid) {
return KEY.retrieveDataFromHost(windowAndroid.getUnownedUserDataHost());
}
......
......@@ -2,14 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.webapps.addtohomescreen;
package org.chromium.chrome.browser.webapps;
import android.view.View;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import org.chromium.chrome.R;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetContent;
/**
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.webapps.addtohomescreen;
package org.chromium.chrome.browser.webapps;
import android.annotation.TargetApi;
import android.content.Context;
......@@ -17,8 +17,6 @@ import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
import org.chromium.chrome.R;
/**
* The view portion of the PWA Install bottom sheet.
*/
......@@ -117,4 +115,19 @@ public class PwaInstallBottomSheetView {
mToolbarView.findViewById(R.id.button_install).setOnClickListener(listener);
mToolbarView.findViewById(R.id.drag_handlebar).setOnClickListener(listener);
}
// Testing functions:
public static int getAppNameViewIdForTesting() {
return R.id.app_name;
}
public static int getAppOriginViewIdForTesting() {
return R.id.app_origin;
}
public static int getDescViewIdForTesting() {
return R.id.description;
}
public static int getCategoriesViewIdForTesting() {
return R.id.categories;
}
}
......@@ -2,16 +2,16 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/android/webapps/pwa_bottom_sheet_controller.h"
#include "chrome/browser/webapps/android/pwa_bottom_sheet_controller.h"
#include "base/android/jni_android.h"
#include "base/android/jni_string.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/android/chrome_jni_headers/PwaBottomSheetControllerProvider_jni.h"
#include "chrome/android/chrome_jni_headers/PwaBottomSheetController_jni.h"
#include "chrome/browser/banners/app_banner_manager_android.h"
#include "chrome/browser/flags/android/chrome_feature_list.h"
#include "chrome/browser/webapps/android/features.h"
#include "chrome/browser/webapps/android/jni_headers/PwaBottomSheetControllerProvider_jni.h"
#include "chrome/browser/webapps/android/jni_headers/PwaBottomSheetController_jni.h"
#include "components/url_formatter/elide_url.h"
#include "content/public/browser/web_contents.h"
#include "ui/gfx/android/java_bitmap.h"
......@@ -27,7 +27,8 @@ bool CanShowBottomSheet(content::WebContents* web_contents,
const base::string16& description,
const std::vector<base::string16>& categories,
const std::map<GURL, SkBitmap>& screenshots) {
if (!base::FeatureList::IsEnabled(chrome::android::kPwaInstallUseBottomSheet))
if (!base::FeatureList::IsEnabled(
webapps::features::kPwaInstallUseBottomSheet))
return false;
if (description.size() == 0 || categories.size() == 0 ||
......
......@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_ANDROID_WEBAPPS_PWA_BOTTOM_SHEET_CONTROLLER_H_
#define CHROME_BROWSER_ANDROID_WEBAPPS_PWA_BOTTOM_SHEET_CONTROLLER_H_
#ifndef CHROME_BROWSER_WEBAPPS_ANDROID_PWA_BOTTOM_SHEET_CONTROLLER_H_
#define CHROME_BROWSER_WEBAPPS_ANDROID_PWA_BOTTOM_SHEET_CONTROLLER_H_
#include <map>
......@@ -85,4 +85,4 @@ class PwaBottomSheetController {
} // namespace webapps
#endif // CHROME_BROWSER_ANDROID_WEBAPPS_PWA_BOTTOM_SHEET_CONTROLLER_H_
#endif // CHROME_BROWSER_WEBAPPS_ANDROID_PWA_BOTTOM_SHEET_CONTROLLER_H_
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment