package com.jdroid.android.debug;
import android.app.Activity;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceGroup;
import com.jdroid.android.R;
import com.jdroid.android.application.AbstractApplication;
import com.jdroid.android.log.DatabaseLog;
import com.jdroid.java.concurrent.ExecutorUtils;
import com.jdroid.java.repository.Repository;
import com.jdroid.java.utils.LoggerUtils;
import org.slf4j.Logger;
public class LogsDebugPrefsAppender extends PreferencesAppender {
private static final Logger LOGGER_UTILS = LoggerUtils.getLogger(LogsDebugPrefsAppender.class);
@Override
public int getNameResId() {
return R.string.jdroid_debugDatabase;
}
public static void clean() {
ExecutorUtils.execute(new Runnable() {
@Override
public void run() {
try {
Repository<DatabaseLog> repository = AbstractApplication.get().getRepositoryInstance(DatabaseLog.class);
repository.removeAll();
} catch (Exception e) {
AbstractApplication.get().getExceptionHandler().logHandledException(e);
}
}
});
}
@Override
public void initPreferences(final Activity activity, PreferenceGroup preferenceGroup) {
Preference preference = new Preference(activity);
preference.setTitle(R.string.jdroid_cleanDebugData);
preference.setSummary(R.string.jdroid_cleanDebugData);
preference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
LogsDebugPrefsAppender.clean();
return true;
}
});
preferenceGroup.addPreference(preference);
}
@Override
public Boolean isEnabled() {
return AbstractApplication.get().isDebugLogRepositoryEnabled();
}
}