Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6697)

Unified Diff: chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc

Issue 2781623005: [Merge M58] arg: Enable Play Store item in App Launcher for managed case. (Closed)
Patch Set: fix merge conflicts / unit tests passed / manually tested on device Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc
diff --git a/chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc b/chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc
index 5b8f7a19e415c22766201f9b52c2e959553c3ab2..77f2a4f46ad566cae862079e7bd3ee994eec19b3 100644
--- a/chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc
+++ b/chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc
@@ -632,7 +632,7 @@ void ArcAppListPrefs::RemoveAllApps() {
}
void ArcAppListPrefs::OnArcPlayStoreEnabledChanged(bool enabled) {
- UpdateDefaultAppsHiddenState();
+ SetDefaultAppsFilterLevel();
if (enabled)
NotifyRegisteredApps();
@@ -640,16 +640,22 @@ void ArcAppListPrefs::OnArcPlayStoreEnabledChanged(bool enabled) {
RemoveAllApps();
}
-void ArcAppListPrefs::UpdateDefaultAppsHiddenState() {
- const bool was_hidden = default_apps_.is_hidden();
+void ArcAppListPrefs::SetDefaultAppsFilterLevel() {
// There is no a blacklisting mechanism for Android apps. Until there is
// one, we have no option but to ban all pre-installed apps on Android side.
// Match this requirement and don't show pre-installed apps for managed users
// in app list.
- const bool now_hidden = arc::policy_util::IsAccountManaged(profile_);
- default_apps_.set_hidden(now_hidden);
- if (was_hidden && !default_apps_.is_hidden())
- RegisterDefaultApps();
+ if (arc::policy_util::IsAccountManaged(profile_)) {
+ default_apps_.set_filter_level(
+ arc::IsArcPlayStoreEnabledForProfile(profile_)
+ ? ArcDefaultAppList::FilterLevel::OPTIONAL_APPS
+ : ArcDefaultAppList::FilterLevel::ALL);
+ } else {
+ default_apps_.set_filter_level(ArcDefaultAppList::FilterLevel::NOTHING);
+ }
+
+ // Register default apps if it was not registered before.
+ RegisterDefaultApps();
}
void ArcAppListPrefs::OnDefaultAppsReady() {
@@ -660,7 +666,7 @@ void ArcAppListPrefs::OnDefaultAppsReady() {
for (const auto& uninstalled_package_name : uninstalled_package_names)
default_apps_.MaybeMarkPackageUninstalled(uninstalled_package_name, true);
- UpdateDefaultAppsHiddenState();
+ SetDefaultAppsFilterLevel();
default_apps_ready_ = true;
if (!default_apps_ready_callback_.is_null())
@@ -670,11 +676,15 @@ void ArcAppListPrefs::OnDefaultAppsReady() {
}
void ArcAppListPrefs::RegisterDefaultApps() {
- // Report default apps first, note, app_map includes uninstalled apps as well.
+ // Report default apps first, note, app_map includes uninstalled and filtered
+ // out apps as well.
for (const auto& default_app : default_apps_.app_map()) {
const std::string& app_id = default_app.first;
if (!default_apps_.HasApp(app_id))
continue;
+ // Skip already tracked app.
+ if (tracked_apps_.count(app_id))
+ continue;
const ArcDefaultAppList::AppInfo& app_info = *default_app.second.get();
AddAppAndShortcut(false /* app_ready */,
app_info.name,
« no previous file with comments | « chrome/browser/ui/app_list/arc/arc_app_list_prefs.h ('k') | chrome/browser/ui/app_list/arc/arc_app_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698