// Path: app/src/mx/udlap/is522/tedroid/data/dao/ScoreDAO.java
// public interface ScoreDAO extends GenericDAO<Integer, Score> {
// 
//     /** @return todos los objetos Score de fuente datos ordenados puntos en orden descendente. */
//     List<Score> readAllOrderedByPointsDesc();
// 
//     /**
//      * @return la suma de lineas con la llave "lines_sum" y la suma de puntos con la llave
//      *         "points_sum".
//      */
//     Map<String, Integer> readSumOfLinesAndPoints();
// 
//     /**
//      * Guarda el objeto Score proporcionado en la fuente datos.
//      * 
//      * @param score el objeto a guardar.
//      */
//     void save(Score score);
// 
//     /** Borra todos los objetos de la fuente datos. */
//     void deleteAll();
// }
// 
// Path: app/src/mx/udlap/is522/tedroid/data/dao/impl/DAOFactory.java
// public class DAOFactory {
// 
//     private final Context context;
// 
//     /**
//      * Crea una nueva fabrica.
//      * 
//      * @param context el contexto de la aplicación.
//      */
//     public DAOFactory(Context context) {
//         this.context = context;
//     }
// 
//     /** @return el ScoreSQLiteDAO correspondiente al juego clasico. */
//     public ScoreSQLiteDAO getScoreClassicDAO() {
//         return getScoreDAO(ScoreSQLiteDAO.Table.CLASSIC);
//     }
// 
//     /** @return el ScoreSQLiteDAO correspondiente al reto especial. */
//     public ScoreSQLiteDAO getScoreSpecialDAO() {
//         return getScoreDAO(ScoreSQLiteDAO.Table.SPECIAL);
//     }
// 
//     /** @return un ScoreSQLiteDAO. */
//     private ScoreSQLiteDAO getScoreDAO(ScoreSQLiteDAO.Table which) {
//         ScoreSQLiteDAO scoreSQLiteDAO = new ScoreSQLiteDAO(which);
//         scoreSQLiteDAO.setContext(context);
//         scoreSQLiteDAO.setSQLiteOpenHelper(new TedroidSQLiteOpenHelper(context));
//         return scoreSQLiteDAO;
//     }
// }


import mx.udlap.is522.tedroid.data.dao.ScoreDAO;
import mx.udlap.is522.tedroid.data.dao.impl.DAOFactory;
import android.annotation.TargetApi;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.util.Log;
import android.view.MenuItem;
import android.webkit.WebView;
import android.widget.Toast;
import mx.udlap.is522.tedroid.R;
    private void setUpVersionPreference() {
        try {
            String versionName = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
            versionPreference.setSummary(versionName);
        } catch (NameNotFoundException ex) {
            Log.e(TAG, "Couldn't find version name", ex);
        }
    }

    /**
     * Muestra el icóno de la actividad como atajo para regresar a la actividad anterior (Solo en
     * API 11+).
     */
    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    private void displayHomeAsUp() {
        getActionBar().setDisplayHomeAsUpEnabled(true);
    }

    /**
     * Tarea asyncrona para borrar todos los puntajes locales.
     * 
     * @author Daniel Pedraza-Arcega
     * @since 1.0
     */
    private class ScoreDeleter extends AsyncTask<Void, Void, Void> {

        private ScoreDAO scoreClassicDAO;
        private ScoreDAO scoreSpecialDAO;

        private ScoreDeleter() {
// Path: app/src/mx/udlap/is522/tedroid/data/dao/ScoreDAO.java
// public interface ScoreDAO extends GenericDAO<Integer, Score> {
// 
//     /** @return todos los objetos Score de fuente datos ordenados puntos en orden descendente. */
//     List<Score> readAllOrderedByPointsDesc();
// 
//     /**
//      * @return la suma de lineas con la llave "lines_sum" y la suma de puntos con la llave
//      *         "points_sum".
//      */
//     Map<String, Integer> readSumOfLinesAndPoints();
// 
//     /**
//      * Guarda el objeto Score proporcionado en la fuente datos.
//      * 
//      * @param score el objeto a guardar.
//      */
//     void save(Score score);
// 
//     /** Borra todos los objetos de la fuente datos. */
//     void deleteAll();
// }
// 
// Path: app/src/mx/udlap/is522/tedroid/data/dao/impl/DAOFactory.java
// public class DAOFactory {
// 
//     private final Context context;
// 
//     /**
//      * Crea una nueva fabrica.
//      * 
//      * @param context el contexto de la aplicación.
//      */
//     public DAOFactory(Context context) {
//         this.context = context;
//     }
// 
//     /** @return el ScoreSQLiteDAO correspondiente al juego clasico. */
//     public ScoreSQLiteDAO getScoreClassicDAO() {
//         return getScoreDAO(ScoreSQLiteDAO.Table.CLASSIC);
//     }
// 
//     /** @return el ScoreSQLiteDAO correspondiente al reto especial. */
//     public ScoreSQLiteDAO getScoreSpecialDAO() {
//         return getScoreDAO(ScoreSQLiteDAO.Table.SPECIAL);
//     }
// 
//     /** @return un ScoreSQLiteDAO. */
//     private ScoreSQLiteDAO getScoreDAO(ScoreSQLiteDAO.Table which) {
//         ScoreSQLiteDAO scoreSQLiteDAO = new ScoreSQLiteDAO(which);
//         scoreSQLiteDAO.setContext(context);
//         scoreSQLiteDAO.setSQLiteOpenHelper(new TedroidSQLiteOpenHelper(context));
//         return scoreSQLiteDAO;
//     }
// }


// Path: app/src/mx/udlap/is522/tedroid/activity/SettingsActivity.java
import mx.udlap.is522.tedroid.data.dao.ScoreDAO;
import mx.udlap.is522.tedroid.data.dao.impl.DAOFactory;
import android.annotation.TargetApi;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.util.Log;
import android.view.MenuItem;
import android.webkit.WebView;
import android.widget.Toast;
import mx.udlap.is522.tedroid.R;

    private void setUpVersionPreference() {
        try {
            String versionName = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
            versionPreference.setSummary(versionName);
        } catch (NameNotFoundException ex) {
            Log.e(TAG, "Couldn't find version name", ex);
        }
    }

    /**
     * Muestra el icóno de la actividad como atajo para regresar a la actividad anterior (Solo en
     * API 11+).
     */
    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    private void displayHomeAsUp() {
        getActionBar().setDisplayHomeAsUpEnabled(true);
    }

    /**
     * Tarea asyncrona para borrar todos los puntajes locales.
     * 
     * @author Daniel Pedraza-Arcega
     * @since 1.0
     */
    private class ScoreDeleter extends AsyncTask<Void, Void, Void> {

        private ScoreDAO scoreClassicDAO;
        private ScoreDAO scoreSpecialDAO;

        private ScoreDeleter() {
            scoreClassicDAO = new DAOFactory(getApplicationContext()).getScoreClassicDAO();