package cl.monsoon.s1next.view.fragment; import android.content.SharedPreferences; import android.os.Bundle; import cl.monsoon.s1next.App; import cl.monsoon.s1next.R; import cl.monsoon.s1next.data.pref.DownloadPreferencesManager; /** * An Activity includes download settings that allow users * to modify download features and behaviors such as cache * size and avatars/images download strategy. */ public final class DownloadPreferenceFragment extends BasePreferenceFragment { public static final String PREF_KEY_TOTAL_DOWNLOAD_CACHE_SIZE = "pref_key_download_total_cache_size"; public static final String PREF_KEY_DOWNLOAD_AVATARS_STRATEGY = "pref_key_download_avatars_strategy"; public static final String PREF_KEY_AVATAR_RESOLUTION_STRATEGY = "pref_key_avatar_resolution_strategy"; public static final String PREF_KEY_AVATAR_CACHE_INVALIDATION_INTERVAL = "pref_key_avatar_cache_invalidation_interval"; public static final String PREF_KEY_DOWNLOAD_IMAGES_STRATEGY = "pref_key_download_images_strategy"; private DownloadPreferencesManager mDownloadPreferencesManager; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preference_download); mDownloadPreferencesManager = App.getAppComponent(getActivity()) .getDownloadPreferencesManager(); } @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { switch (key) { case PREF_KEY_DOWNLOAD_AVATARS_STRATEGY: mDownloadPreferencesManager.invalidateAvatarsDownloadStrategy(); break; case PREF_KEY_AVATAR_RESOLUTION_STRATEGY: mDownloadPreferencesManager.invalidateAvatarsResolutionStrategy(); break; case PREF_KEY_AVATAR_CACHE_INVALIDATION_INTERVAL: mDownloadPreferencesManager.invalidateAvatarsCacheInvalidationInterval(); break; case PREF_KEY_DOWNLOAD_IMAGES_STRATEGY: mDownloadPreferencesManager.invalidateImagesDownloadStrategy(); break; default: // fall through } } }