package edu.mit.media.funf.config; import android.util.Log; import com.google.gson.JsonObject; import edu.mit.media.funf.FunfManager; import edu.mit.media.funf.util.EqualsUtil; import edu.mit.media.funf.util.LogUtil; public abstract class ConfigUpdater { public void run(String name, FunfManager mgr) { JsonObject oldConfig = mgr.getPipelineConfig(name); try { JsonObject newConfig = getConfig(); if (!EqualsUtil.areEqual(oldConfig, newConfig)) { mgr.saveAndReload(name, newConfig); } } catch (ConfigUpdateException e) { Log.w(LogUtil.TAG, "Unable to get config", e); } } abstract protected JsonObject getConfig() throws ConfigUpdateException; public class ConfigUpdateException extends Exception { private static final long serialVersionUID = 7595505577357891121L; public ConfigUpdateException() { super(); } public ConfigUpdateException(String detailMessage, Throwable throwable) { super(detailMessage, throwable); } public ConfigUpdateException(String detailMessage) { super(detailMessage); } public ConfigUpdateException(Throwable throwable) { super(throwable); } } }