/***
 * Wyciąg z książki "Hello, Android!",
 * opublikowanej przez wydawnictwo Helion S.A.
 * Niniejszy kod jest chroniony prawami autorskimi. Nie może zostać wykorzystany do utworzenia 
 * materiałów treningowych, kursów, książek, artykułów, itp. Prosimy o kontakt w razie
 * pojawienia się wątpliwości.
 * Nie gwarantujemy, że niniejszy kod będzie się nadawał do jakiegokolwiek celu. 
 * Więcej informacji można znaleźć na stronie http://www.pragmaticprogrammer.com/titles/eband.
***/
package org.przyklad.zdarzenia;

import static android.provider.BaseColumns._ID;
import static org.przyklad.zdarzenia.Stale.CZAS;
import static org.przyklad.zdarzenia.Stale.TYTUL;
import android.content.ContentValues;
import android.database.Cursor;
import android.os.Bundle;
import android.app.ListActivity;
import android.widget.SimpleCursorAdapter;

import static org.przyklad.zdarzenia.Stale.TRESC_URI;

public class Zdarzenia extends ListActivity {
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        dodajZdarzenie("Witaj, Androidzie!" );
        Cursor kursor = wezZdarzenia();
        pokazZdarzenia(kursor);
    }

                 
    private void dodajZdarzenie(String string) {
        // Wstawia nowy rekord do źródła danych Zdarzenia.
        // Podobnie wygląda proces usuwania i aktualizowania rekordów.
        ContentValues wartosci = new ContentValues();
        wartosci.put(CZAS, System.currentTimeMillis());
        wartosci.put(TYTUL, string);
        getContentResolver().insert(TRESC_URI, wartosci);
    }


    private static String[] FROM = { _ID, CZAS, TYTUL, };
    private static String ORDER_BY = CZAS + " DESC" ;
    private static int[] DO = { R.id.idwiersza, R.id.czas, R.id.tytul, };

    
    private Cursor wezZdarzenia() {
        // Przeprowadza zarządzaną kwerendę. W razie potrzeby Aktywność zajmie się
        // zamykaniem kursora i wysłaniem do niego ponownego zapytania.
        return managedQuery(TRESC_URI, FROM, null, null, ORDER_BY);
    }
                                  
    private void pokazZdarzenia(Cursor kursor) {
        // Konfiguruje wiązanie danych
        SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
            R.layout.element, kursor, FROM, DO);
        setListAdapter(adapter);
    }

}
