Chromium Code Reviews| Index: chrome/browser/ui/app_list/extension_app_item.cc |
| diff --git a/chrome/browser/ui/app_list/extension_app_item.cc b/chrome/browser/ui/app_list/extension_app_item.cc |
| index 97912f148fd6ac4464f7929c45ba3711ae297106..44b6e5f0799844bb51358b72bb62e9bef0e35425 100644 |
| --- a/chrome/browser/ui/app_list/extension_app_item.cc |
| +++ b/chrome/browser/ui/app_list/extension_app_item.cc |
| @@ -5,9 +5,9 @@ |
| #include "chrome/browser/ui/app_list/extension_app_item.h" |
| #include "base/prefs/pref_service.h" |
| +#include "chrome/browser/extensions/app_list_extension_ordering.h" |
| #include "chrome/browser/extensions/extension_prefs.h" |
| #include "chrome/browser/extensions/extension_service.h" |
| -#include "chrome/browser/extensions/extension_sorting.h" |
| #include "chrome/browser/extensions/extension_system.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/ui/app_list/app_context_menu.h" |
| @@ -55,10 +55,10 @@ class ShortcutOverlayImageSource : public gfx::CanvasImageSource { |
| DISALLOW_COPY_AND_ASSIGN(ShortcutOverlayImageSource); |
| }; |
| -ExtensionSorting* GetExtensionSorting(Profile* profile) { |
| +AppListExtensionOrdering* GetExtensionOrdering(Profile* profile) { |
| ExtensionService* service = |
| extensions::ExtensionSystem::Get(profile)->extension_service(); |
| - return service->extension_prefs()->extension_sorting(); |
| + return service->extension_prefs()->app_list_extension_ordering(); |
| } |
| const color_utils::HSL shift = {-1, 0, 0.6}; |
| @@ -81,8 +81,9 @@ ExtensionAppItem::ExtensionAppItem(Profile* profile, |
| shift)), |
| is_platform_app_(is_platform_app) { |
| Reload(); |
| - GetExtensionSorting(profile_)->EnsureValidOrdinals(extension_id_, |
| - syncer::StringOrdinal()); |
| + AppListExtensionOrdering* ordering = GetExtensionOrdering(profile_); |
| + if (!ordering->GetAppListOrdinal(extension_id_).IsValid()) |
| + ordering->InsertAtNextAvailable(extension_id_); |
| } |
| ExtensionAppItem::~ExtensionAppItem() { |
| @@ -96,6 +97,11 @@ bool ExtensionAppItem::HasOverlay() const { |
| #endif |
| } |
| +bool ExtensionAppItem::Precedes(const ExtensionAppItem* item) const { |
| + return GetExtensionOrdering(profile_)->ExtensionPrecedes( |
| + extension_id(), item->extension_id()); |
| +} |
| + |
| void ExtensionAppItem::Reload() { |
| const Extension* extension = GetExtension(); |
| bool is_installing = !extension; |
| @@ -110,14 +116,6 @@ void ExtensionAppItem::Reload() { |
| LoadImage(extension); |
| } |
| -syncer::StringOrdinal ExtensionAppItem::GetPageOrdinal() const { |
| - return GetExtensionSorting(profile_)->GetPageOrdinal(extension_id_); |
| -} |
| - |
| -syncer::StringOrdinal ExtensionAppItem::GetAppLaunchOrdinal() const { |
| - return GetExtensionSorting(profile_)->GetAppLaunchOrdinal(extension_id_); |
| -} |
| - |
| void ExtensionAppItem::Move(const ExtensionAppItem* prev, |
| const ExtensionAppItem* next) { |
| // Does nothing if no predecessor nor successor. |
| @@ -127,36 +125,13 @@ void ExtensionAppItem::Move(const ExtensionAppItem* prev, |
| ExtensionService* service = |
| extensions::ExtensionSystem::Get(profile_)->extension_service(); |
| service->extension_prefs()->SetAppDraggedByUser(extension_id_); |
| + AppListExtensionOrdering* ordering = GetExtensionOrdering(profile_); |
| // Handles only predecessor or only successor case. |
|
koz (OOO until 15th September)
2013/06/18 07:41:36
This handles more than just that case - it also ha
|
| - if (!prev || !next) { |
| - syncer::StringOrdinal page = prev ? prev->GetPageOrdinal() : |
| - next->GetPageOrdinal(); |
| - GetExtensionSorting(profile_)->SetPageOrdinal(extension_id_, page); |
| - service->OnExtensionMoved(extension_id_, |
| - prev ? prev->extension_id() : std::string(), |
| - next ? next->extension_id() : std::string()); |
| - return; |
| - } |
| - |
| - // Handles both predecessor and successor are on the same page. |
| - syncer::StringOrdinal prev_page = prev->GetPageOrdinal(); |
| - syncer::StringOrdinal next_page = next->GetPageOrdinal(); |
| - if (prev_page.Equals(next_page)) { |
| - GetExtensionSorting(profile_)->SetPageOrdinal(extension_id_, prev_page); |
| - service->OnExtensionMoved(extension_id_, |
| - prev->extension_id(), |
| - next->extension_id()); |
| - return; |
| - } |
| - |
| - // Otherwise, go with |next|. This is okay because app list does not split |
| - // page based ntp page ordinal. |
| - // TODO(xiyuan): Revisit this when implementing paging support. |
| - GetExtensionSorting(profile_)->SetPageOrdinal(extension_id_, prev_page); |
| - service->OnExtensionMoved(extension_id_, |
| - prev->extension_id(), |
| - std::string()); |
| + GetExtensionOrdering(profile_)->OnExtensionMoved( |
| + extension_id_, |
| + prev ? prev->extension_id() : std::string(), |
| + next ? next->extension_id() : std::string()); |
| } |
| void ExtensionAppItem::UpdateIcon() { |