Chromium Code Reviews| 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 e2e59da6a19e65862a30eb76f81be6b0ae94da29..d77cf96fa2cb91a955b1f6afe6341744f8facfbe 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 |
| @@ -859,6 +859,7 @@ void ArcAppListPrefs::AddOrUpdatePackagePrefs( |
| package_dict->SetString(kLastBackupAndroidId, id_str); |
| package_dict->SetString(kLastBackupTime, time_str); |
| package_dict->SetBoolean(kSystem, package.system); |
| + package_dict->SetBoolean(kUninstalled, false); |
| } |
| void ArcAppListPrefs::RemovePackageFromPrefs(PrefService* prefs, |
| @@ -962,6 +963,7 @@ void ArcAppListPrefs::OnPackageAppListRefreshed( |
| std::unordered_set<std::string> apps_to_remove = |
| GetAppsForPackage(package_name); |
| + default_apps_.MaybeMarkPackageUninstalled(package_name, false); |
|
khmel
2016/12/01 19:01:02
Need to mark it once app is reported because as Is
|
| for (const auto& app : apps) { |
| apps_to_remove.erase(GetAppId(app->package_name, app->activity)); |
| AddApp(*app); |
| @@ -1193,8 +1195,14 @@ std::vector<std::string> ArcAppListPrefs::GetPackagesFromPrefs( |
| prefs_->GetDictionary(prefs::kArcPackages); |
| for (base::DictionaryValue::Iterator package(*package_prefs); |
| !package.IsAtEnd(); package.Advance()) { |
| + const base::DictionaryValue* package_info; |
| + if (!package.value().GetAsDictionary(&package_info)) { |
| + NOTREACHED(); |
| + continue; |
| + } |
| + |
| bool uninstalled = false; |
| - package_prefs->GetBoolean(kSystem, &uninstalled); |
| + package_info->GetBoolean(kUninstalled, &uninstalled); |
|
khmel
2016/12/01 19:01:02
Hmm, Cannot explain how I wrote this code before..
|
| if (installed != !uninstalled) |
| continue; |