Class CampaignManager


  • public class CampaignManager
    extends java.lang.Object
    Handles many local campaigns related features: - Remembers campaigns got from the backend - Saves/Restores campaigns from disk - Checks campaign condition satisfaction and triggers them - Automatically if in auto mode (if dev didn't ask Batch to delay campaigns) - Broadcasts an event/callback to the developer if in manual mode - TODO: update once decided
    • Method Detail

      • updateCampaignList

        public void updateCampaignList​(@NonNull
                                       java.util.List<LocalCampaign> updatedCampaignList)
        Update the currently stored campaign list. Clear the previous list. Calling this will triggers campaigns that have seen their conditions met.
        Parameters:
        updatedCampaignList - Updated campaign list. Can't be null
      • getCampaignToDisplay

        public LocalCampaign getCampaignToDisplay​(@NonNull
                                                  Signal signal)
        Get the higher priority campaign between all of those that are satisfied by the latest application event This is the campaign that you'll want to display
      • isEventWatched

        public boolean isEventWatched​(@NonNull
                                      java.lang.String name)
        Checks if an event name will triggers at least one campaign, allowing for a fast pre-filter to check if it is worth checking other conditions for campaigns with an event triggers
      • getCampaignList

        public java.util.List<LocalCampaign> getCampaignList()
        Returns a copy of the loaded campaigns
      • cleanCampaignList

        public java.util.List<LocalCampaign> cleanCampaignList​(@NonNull
                                                               java.util.List<LocalCampaign> campaignsToClean)
        Removes campaign that will never be ok, even in the future: - Expired campaigns - Campaigns that hit their capping - Campaigns that have a max api level too low (min api level doesn't not mean that it is busted forever)
      • isCampaignDisplayable

        protected boolean isCampaignDisplayable​(LocalCampaign campaign)
        Checks if the campaign is displayable according to general conditions: - Capping checks - Current date over start date - Minimum API level - etc...
      • saveCampaigns

        public void saveCampaigns​(@NonNull
                                  android.content.Context context,
                                  @NonNull
                                  java.util.List<LocalCampaign> campaigns)
      • saveCampaignsAsync

        public void saveCampaignsAsync​(@NonNull
                                       android.content.Context context,
                                       @NonNull
                                       java.util.List<LocalCampaign> campaigns)
      • deleteSavedCampaigns

        public void deleteSavedCampaigns​(@NonNull
                                         android.content.Context context)
      • deleteSavedCampaignsAsync

        public void deleteSavedCampaignsAsync​(@NonNull
                                              android.content.Context context)
      • hasSavedCampaigns

        public boolean hasSavedCampaigns​(android.content.Context context)
      • loadSavedCampaignResponse

        public boolean loadSavedCampaignResponse​(@NonNull
                                                 android.content.Context context)
      • areCampaignsLoaded

        public boolean areCampaignsLoaded()
      • openViewTracker

        public void openViewTracker()
      • closeViewTracker

        public void closeViewTracker()