package com.smaato.sdk.demoapp.banner;

import android.content.Context;
import android.content.SharedPreferences;
import android.support.annotation.NonNull;

import com.smaato.sdk.demoapp.utils.SharedPrefsStorage;

import java.util.List;

class BannerAdConfigStorage {

    private static final String PREFS_NAME = "banner_ad_config_storage";
    private static final String DATA_KEY = "data";

    @NonNull
    private final SharedPrefsStorage<BannerAdConfig> storage;

    BannerAdConfigStorage(@NonNull Context context) {
        Context appContext = context.getApplicationContext();
        SharedPreferences preferences = appContext.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
        storage = new SharedPrefsStorage<>(preferences, DATA_KEY, new BannerAdConfigSerializerDeserializer());
    }

    void updateItem(@NonNull BannerAdConfig oldConfig, @NonNull BannerAdConfig newConfig) {
        List<BannerAdConfig> configs = get();
        configs.set(configs.indexOf(oldConfig), newConfig);
        storage.put(configs);
    }

    void remove(@NonNull BannerAdConfig adConfig) {
        List<BannerAdConfig> configs = get();
        configs.remove(adConfig);
        storage.put(configs);
    }

    void add(@NonNull BannerAdConfig adConfig) {
        List<BannerAdConfig> configs = get();
        configs.add(adConfig);
        storage.put(configs);
    }

    @NonNull
    List<BannerAdConfig> get() {
        return storage.get();
    }
}
