Class POBCacheManager

  • All Implemented Interfaces:

    
    public class POBCacheManager
    
                        

    Implementation of the cache manager class, responsible for caching Profile Config, requesting service script for OM SDK, etc.

    • Constructor Detail

      • POBCacheManager

        POBCacheManager(Context context, POBNetworkHandler networkHandler)
        Constructor
        Parameters:
        context - Context
    • Method Detail

      • loadAssets

         void loadAssets()

        Loads assets required by OW SDK

      • verifyCrashAnalyticsStatus

         boolean verifyCrashAnalyticsStatus()

        Check CrashAnalytics status for all the profiles.

        Returns:

        true if CrashAnalytics is enabled for all the profiles, false otherwise.

      • getAppInstallStatus

         boolean getAppInstallStatus()

        Check app install status for all the profiles. If any profile disables the feature, we disable it for all the profiles. Uses cached value when profiles have been fetched/updated; otherwise computes from current profile map (e.g. before first profile fetch, or in tests).

        Returns:

        true if app install status is enabled for all profiles, false otherwise.

      • loadMraidJs

         void loadMraidJs()

        To read mraid.js content from the assets folder and store it into mraidJsContent

      • loadOpenWrapJs

         void loadOpenWrapJs()

        To read openwrap.js content from the assets folder and store it into openWrapJsContent

      • getAppStatusSchemes

        @Nullable() JSONObject getAppStatusSchemes()

        Returns the last successfully loaded appInstallStatus.android for MRAID app status usage (e.g. bid imp.ext.owsdk and app-install status checks in the web rendering module). Does not trigger a network request; refreshes are driven by loadSDKConfig from fetchSdkConfigs entry points on SDK init or ad load.

      • generateUserAgent

         void generateUserAgent(@NonNull() POBCacheManager.UserAgentListener listener)

        This method fetch the user agent from WebSettings and save it for future reference. And return the callback. If not found then just return user-agent using System.getProperty("http.agent"). It will return empty string in case unable to fetch the user-agent at all.

      • fetchSdkConfigs

         void fetchSdkConfigs(@NonNull() Context context, @NonNull() OpenWrapSDKConfig sdkConfig)

        Loads Publisher and Profile configuration for given OpenWrapSDKConfig.

        Parameters:
        context - Application context.
        sdkConfig - Publisher and profile ids from the SDK configuration.
      • fetchSdkConfigs

         void fetchSdkConfigs(@NonNull() Context context, @NonNull() String publisherId, int profileId)

        Fetches profile, publisher, and remote SDK (sdkconfig.json) configurations.

        This method is intended to use from no ad server flow when publisherId and profileId is available in the POBRequest.

        Parameters:
        context - Context
        publisherId - Publisher Id
        profileId - Profile Id
      • fetchSdkConfigsUsingCache

         void fetchSdkConfigsUsingCache(@NonNull() Context context)

        Fetches profile, publisher, and remote SDK configurations using ids cached during SDK initialization. Used by external bidding loadAd(bidResponse, …) flows.

        Profile and publisher refreshes require cached init ids; sdkconfig.json is refreshed whenever this method runs (it does not depend on publisher/profile ids).

      • getProfileConfig

        @Nullable() POBProfileConfig getProfileConfig(@NonNull() String profileConfigKey)

        Function is used to return the cached profileConfig associated with the profileConfigKey

        Parameters:
        profileConfigKey - The profileConfig key associated with the profile and the version
        Returns:

        The POBProfileConfig associated with the profileConfigKey

      • saveReceivedBid

         void saveReceivedBid(@NonNull() JSONObject rawBidJson)

        Save the raw bid json in received bids queue. Remove the oldest one if size of queue is 3.

        Parameters:
        rawBidJson - of ad response.
      • saveRenderedBid

         void saveRenderedBid(@NonNull() JSONObject rawBidJson)

        Save the raw bid json in rendered bids queue. Remove the oldest one if size of queue is 3.

        Parameters:
        rawBidJson - of ad response.
      • getSDKFirstLaunchTimeMillis

         static long getSDKFirstLaunchTimeMillis(@NonNull() Context context)

        Returns the persisted OpenWrap SDK first-initialization timestamp for this install (ms since Unix epoch), or records currentTimeMillis once if missing. Values are stored in app-private SharedPreferences keyed by POB_FIRST_LAUNCH_STORAGE. Used for OpenRTB app.ext.first_launch_time (e.g. on first successful init or first ORTB merge).

        The resolved value is cached for the process after the first load (thread-safe lazy init via double-checked locking). getApplicationContext is used for storage scope.

        Parameters:
        context - any context; getApplicationContext is used for storage scope
        Returns:

        epoch milliseconds, or 0L if a value could not be established