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

Unified Diff: chrome/browser/ui/app_list/extension_app_item.cc

Issue 17038002: Separate the NTP app ordering from the app list app ordering (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add sync test Created 7 years, 6 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/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..ecfba902b91f289052032442ca29f3e98509582e 100644
--- a/chrome/browser/ui/app_list/extension_app_item.cc
+++ b/chrome/browser/ui/app_list/extension_app_item.cc
@@ -7,11 +7,11 @@
#include "base/prefs/pref_service.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"
#include "chrome/browser/ui/app_list/app_list_controller_delegate.h"
+#include "chrome/browser/ui/app_list/app_list_extension_ordering.h"
#include "chrome/browser/ui/extensions/extension_enable_flow.h"
#include "chrome/browser/ui/webui/ntp/app_launcher_handler.h"
#include "chrome/common/extensions/extension.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->Contains(extension_id_))
+ 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.
- 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() {

Powered by Google App Engine
This is Rietveld 408576698