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

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

Issue 2819413003: Refactor extension app icon. (Closed)
Patch Set: nit Created 3 years, 7 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 3383d2fb4faf244693e48fb0f2bbd9e418ae01ec..3381125027ebebb6ee1a5ad4330f93de98764740 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
@@ -635,7 +635,7 @@ void ArcAppListPrefs::NotifyRegisteredApps() {
apps_restored_ = true;
}
-void ArcAppListPrefs::RemoveAllApps() {
+void ArcAppListPrefs::RemoveAllAppsAndPackages() {
std::vector<std::string> app_ids = GetAppIdsNoArcEnabledCheck();
for (const auto& app_id : app_ids) {
if (!default_apps_.HasApp(app_id)) {
@@ -648,6 +648,15 @@ void ArcAppListPrefs::RemoveAllApps() {
}
}
DCHECK(ready_apps_.empty());
+
+ const std::vector<std::string> package_names_to_remove =
+ GetPackagesFromPrefs(false /* check_arc_alive */, true /* installed */);
+ for (const auto& package_name : package_names_to_remove) {
+ if (!default_apps_.HasPackage(package_name))
+ RemovePackageFromPrefs(prefs_, package_name);
+ for (auto& observer : observer_list_)
+ observer.OnPackageRemoved(package_name, false);
+ }
}
void ArcAppListPrefs::OnArcPlayStoreEnabledChanged(bool enabled) {
@@ -660,7 +669,7 @@ void ArcAppListPrefs::OnArcPlayStoreEnabledChanged(bool enabled) {
if (enabled)
NotifyRegisteredApps();
else
- RemoveAllApps();
+ RemoveAllAppsAndPackages();
}
void ArcAppListPrefs::SetDefaultAppsFilterLevel() {
@@ -685,7 +694,7 @@ void ArcAppListPrefs::OnDefaultAppsReady() {
// Apply uninstalled packages now.
const std::vector<std::string> uninstalled_package_names =
- GetPackagesFromPrefs(false);
+ GetPackagesFromPrefs(false /* check_arc_alive */, false /* installed */);
for (const auto& uninstalled_package_name : uninstalled_package_names)
default_apps_.MaybeMarkPackageUninstalled(uninstalled_package_name, true);
@@ -919,6 +928,7 @@ void ArcAppListPrefs::AddOrUpdatePackagePrefs(
PrefService* prefs, const arc::mojom::ArcPackageInfo& package) {
DCHECK(IsArcAndroidEnabledForProfile(profile_));
const std::string& package_name = package.package_name;
+
default_apps_.MaybeMarkPackageUninstalled(package_name, false);
if (package_name.empty()) {
VLOG(2) << "Package name cannot be empty.";
@@ -940,7 +950,6 @@ void ArcAppListPrefs::AddOrUpdatePackagePrefs(
void ArcAppListPrefs::RemovePackageFromPrefs(PrefService* prefs,
const std::string& package_name) {
- DCHECK(IsArcAndroidEnabledForProfile(profile_));
default_apps_.MaybeMarkPackageUninstalled(package_name, true);
if (!default_apps_.HasPackage(package_name)) {
DictionaryPrefUpdate update(prefs, prefs::kArcPackages);
@@ -1163,6 +1172,7 @@ std::unordered_set<std::string> ArcAppListPrefs::GetAppsAndShortcutsForPackage(
}
void ArcAppListPrefs::HandlePackageRemoved(const std::string& package_name) {
+ DCHECK(IsArcAndroidEnabledForProfile(profile_));
const std::unordered_set<std::string> apps_to_remove =
GetAppsAndShortcutsForPackage(package_name, true /* include_shortcuts */);
for (const auto& app_id : apps_to_remove)
@@ -1175,7 +1185,7 @@ void ArcAppListPrefs::OnPackageRemoved(const std::string& package_name) {
HandlePackageRemoved(package_name);
for (auto& observer : observer_list_)
- observer.OnPackageRemoved(package_name);
+ observer.OnPackageRemoved(package_name, true);
}
void ArcAppListPrefs::OnAppIcon(const std::string& package_name,
@@ -1343,14 +1353,17 @@ void ArcAppListPrefs::OnPackageListRefreshed(
}
std::vector<std::string> ArcAppListPrefs::GetPackagesFromPrefs() const {
- return GetPackagesFromPrefs(true);
+ return GetPackagesFromPrefs(true /* check_arc_alive */, true /* installed */);
}
std::vector<std::string> ArcAppListPrefs::GetPackagesFromPrefs(
+ bool check_arc_alive,
bool installed) const {
std::vector<std::string> packages;
- if ((!IsArcAlive() || !IsArcAndroidEnabledForProfile(profile_)) && installed)
+ if (check_arc_alive &&
+ (!IsArcAlive() || !IsArcAndroidEnabledForProfile(profile_))) {
return packages;
+ }
const base::DictionaryValue* package_prefs =
prefs_->GetDictionary(prefs::kArcPackages);
« no previous file with comments | « chrome/browser/ui/app_list/arc/arc_app_list_prefs.h ('k') | chrome/browser/ui/app_list/arc/arc_package_syncable_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698