| Index: chrome/browser/chromeos/arc/arc_migration_guide_notification.cc
|
| diff --git a/chrome/browser/chromeos/arc/arc_migration_guide_notification.cc b/chrome/browser/chromeos/arc/arc_migration_guide_notification.cc
|
| index 2715606ea194bcd6c20dc2e6598504e9b43de55a..e0d3ab794f4553439a8376b9f1423a6de7a389cc 100644
|
| --- a/chrome/browser/chromeos/arc/arc_migration_guide_notification.cc
|
| +++ b/chrome/browser/chromeos/arc/arc_migration_guide_notification.cc
|
| @@ -11,8 +11,10 @@
|
| #include "chrome/browser/lifetime/application_lifetime.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/ui/ash/multi_user/multi_user_util.h"
|
| +#include "chrome/common/pref_names.h"
|
| #include "chrome/grit/generated_resources.h"
|
| #include "components/signin/core/account_id/account_id.h"
|
| +#include "components/user_manager/known_user.h"
|
| #include "ui/base/l10n/l10n_util.h"
|
| #include "ui/gfx/color_palette.h"
|
| #include "ui/gfx/paint_vector_icon.h"
|
| @@ -25,7 +27,8 @@ namespace arc {
|
| namespace {
|
|
|
| constexpr char kNotifierId[] = "arc_fs_migration";
|
| -constexpr char kNotificationId[] = "arc_fs_migration/migrate";
|
| +constexpr char kSuggestNotificationId[] = "arc_fs_migration/suggest";
|
| +constexpr char kSuccessNotificationId[] = "arc_fs_migration/success";
|
|
|
| class ArcMigrationGuideNotificationDelegate
|
| : public message_center::NotificationDelegate {
|
| @@ -47,8 +50,8 @@ class ArcMigrationGuideNotificationDelegate
|
| void ShowArcMigrationGuideNotification(Profile* profile) {
|
| // Always remove the notification to make sure the notification appears
|
| // as a popup in any situation.
|
| - message_center::MessageCenter::Get()->RemoveNotification(kNotificationId,
|
| - false /* by_user */);
|
| + message_center::MessageCenter::Get()->RemoveNotification(
|
| + kSuggestNotificationId, false /* by_user */);
|
|
|
| message_center::NotifierId notifier_id(
|
| message_center::NotifierId::SYSTEM_COMPONENT, kNotifierId);
|
| @@ -60,7 +63,7 @@ void ShowArcMigrationGuideNotification(Profile* profile) {
|
| IDS_ARC_MIGRATE_ENCRYPTION_NOTIFICATION_RESTART_BUTTON)));
|
| message_center::MessageCenter::Get()->AddNotification(
|
| base::MakeUnique<message_center::Notification>(
|
| - message_center::NOTIFICATION_TYPE_SIMPLE, kNotificationId,
|
| + message_center::NOTIFICATION_TYPE_SIMPLE, kSuggestNotificationId,
|
| l10n_util::GetStringUTF16(
|
| IDS_ARC_MIGRATE_ENCRYPTION_NOTIFICATION_TITLE),
|
| // TODO(kinaba): crbug/710289 Change message for low-battery case.
|
| @@ -72,4 +75,43 @@ void ShowArcMigrationGuideNotification(Profile* profile) {
|
| new ArcMigrationGuideNotificationDelegate()));
|
| }
|
|
|
| +void ShowArcMigrationSuccessNotificationIfNeeded(Profile* profile) {
|
| + const AccountId account_id =
|
| + multi_user_util::GetAccountIdFromProfile(profile);
|
| +
|
| + int pref_value = kFileSystemIncompatible;
|
| + user_manager::known_user::GetIntegerPref(
|
| + account_id, prefs::kArcCompatibleFilesystemChosen, &pref_value);
|
| +
|
| + // Show notification only when the pref value indicates the file system is
|
| + // compatible, but not yet notified.
|
| + if (pref_value != kFileSystemCompatible)
|
| + return;
|
| +
|
| + // If this is a newly created profile, the filesystem was compatible from
|
| + // the beginning, not because of migration. Skip showing the notification.
|
| + if (!profile->IsNewProfile()) {
|
| + message_center::NotifierId notifier_id(
|
| + message_center::NotifierId::SYSTEM_COMPONENT, kNotifierId);
|
| + notifier_id.profile_id = account_id.GetUserEmail();
|
| +
|
| + message_center::MessageCenter::Get()->AddNotification(
|
| + base::MakeUnique<message_center::Notification>(
|
| + message_center::NOTIFICATION_TYPE_SIMPLE, kSuccessNotificationId,
|
| + base::string16(), // title
|
| + l10n_util::GetStringUTF16(
|
| + IDS_ARC_MIGRATE_ENCRYPTION_SUCCESS_MESSAGE),
|
| + gfx::Image(gfx::CreateVectorIcon(
|
| + kArcMigrateEncryptionNotificationIcon, gfx::kPlaceholderColor)),
|
| + base::string16(), GURL(), notifier_id,
|
| + message_center::RichNotificationData(),
|
| + new message_center::NotificationDelegate()));
|
| + }
|
| +
|
| + // Mark as notified.
|
| + user_manager::known_user::SetIntegerPref(
|
| + account_id, prefs::kArcCompatibleFilesystemChosen,
|
| + arc::kFileSystemCompatibleAndNotified);
|
| +}
|
| +
|
| } // namespace arc
|
|
|