blob: f52ffe3653dfe3f726bd18c57a25a32f61807219 [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef IOS_CHROME_BROWSER_DISCOVER_FEED_MODEL_FEED_CONSTANTS_H_
#define IOS_CHROME_BROWSER_DISCOVER_FEED_MODEL_FEED_CONSTANTS_H_
#import <Foundation/Foundation.h>
// Enum representing the reasons why the feed would be started.
typedef NS_ENUM(NSUInteger, FeedStartReason) {
FeedStartReasonLaunch = 0,
FeedStartReasonAccountSwitch,
FeedStartReasonUserRequested,
FeedStartReasonOther,
};
// Enum representing the display strategy for reloads, indicating whether the
// content is served from the cache or the server.
typedef NS_ENUM(NSUInteger, FeedDisplayStrategy) {
FeedDisplayStrategyServer = 0,
FeedDisplayStrategyCache,
FeedDisplayStrategyOther,
};
// Enum representing the different types of feed updates.
typedef NS_ENUM(NSInteger, FeedUpdateType) {
FeedUpdateTypeDefault = 0,
FeedUpdateTypeItemReloaded,
FeedUpdateTypeBackgroundFetch,
FeedUpdateTypeResumeFromBackground,
};
// Enum representing the different types of updates to the feed layout.
typedef NS_ENUM(NSInteger, FeedLayoutUpdateType) {
FeedLayoutUpdateTypeUnknown = 0,
FeedLayoutUpdateTypeAdd,
FeedLayoutUpdateTypeDelete,
FeedLayoutUpdateTypeReload,
};
/// Enums representing whether the user is eligible to view the feed, and if
/// not, why.
enum class DiscoverFeedEligibility {
/// User is eligible for the Discover feed.
kEligible,
/// Feed is ineligible for an unknown reason.
kIneligibleReasonUnknown,
/// Feed is ineligible because a managed account is being used, and feed is
/// not allowed by enterprise settings.
kDisabledByEnterprisePolicy,
};
// The user defaults key indicating if the user has ever engaged with a feed.
extern NSString* const kEngagedWithFeedKey;
#endif // IOS_CHROME_BROWSER_DISCOVER_FEED_MODEL_FEED_CONSTANTS_H_