package com.inzynieria.pocketIQ;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
/** Aktywno ekranu statystyk */
public class StatsScreen extends Activity {
private static final int DIALOG_SET_DEL = 0;
/** adapter bazy profili */
public static DatabaseProfileAdapter profileDatabase;
/** kursor statystyk */
private Cursor statsCursor;
/** adapter bazy statystyk */
private DatabaseStatsAdapter statsDatabase;
/** kolekcja statystyk */
private List<Stats> stats = new ArrayList<Stats>();
/** id domylnego profilu */
private long setProfile;
/** zmienna logiczna suca do przeczania widoku statystyk jednej i wszystkich profili */
private boolean compare=true;
/** zmienna okrelajca wybran pozycj w listview*/
int checkedPosition;
/** metoda suca do tworzenia dialoglisty z opcjami do wyboru */
protected Dialog onCreateDialog(int id) {
/** obiekt Dialog */
Dialog dialog;
/** inicjalizacja Buildera dialogu */
AlertDialog.Builder builder = new AlertDialog.Builder(this);
switch(id) {
case DIALOG_SET_DEL:
builder.setTitle("Porwnaj wynik");
builder.setMessage("Czy chcesz porwna swj wynik z innymi graczami?");
builder.setCancelable(false);
builder.setPositiveButton("Wylij wynik", new Dialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int arg1) {
float resultS = (stats.get(checkedPosition).getResult());
int resultSS = (int) (-0.375*(resultS-20)*(resultS-20)+150);
String dataS = stats.get(checkedPosition).getData();
long profileId = stats.get(checkedPosition).getProfile_id();
StatsScreen.profileDatabase.open();
Cursor tempcursor = StatsScreen.profileDatabase.getEntry(profileId);
String nickS = tempcursor.getString(DatabaseProfileAdapter.PROFILE_COLUMN);
String nameS = tempcursor.getString(DatabaseProfileAdapter.NAME_COLUMN);
String surnameS = tempcursor.getString(DatabaseProfileAdapter.SURNAME_COLUMN);
StatsScreen.profileDatabase.close();
//?nick=nick&name=name&surname=surname&data=data&iq=100
String URL = "http://stemar.com.pl/io/index.php?nick=" + nickS + "&name=" + nameS + "&surname=" + surnameS + "&data=" + dataS + "&iq=" + resultSS;
Intent browse = new Intent( Intent.ACTION_VIEW , Uri.parse( URL ) );
startActivity(browse);
}
});
builder.setNegativeButton("Nie wysyaj", new Dialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int arg1) {
}
});
break;
default:
dialog = null;
}
dialog = builder.create();
return dialog;
}
/** metoda wypeniajca niestandardow list statystyk wszystkich profili */
private void fillListViewAllProfile() {
statsDatabase = new DatabaseStatsAdapter(getApplicationContext());
statsDatabase.open();
statsCursor = statsDatabase.getAllEntries();
startManagingCursor(statsCursor);
updateListView();
ListView listView = (ListView)findViewById(R.id.statslist);
ArrayStatsAdapter arrayStatsAdapter = new ArrayStatsAdapter(this, R.layout.statsitem, stats);
listView.setAdapter(arrayStatsAdapter);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View view, int position,
long id) {
checkedPosition = position;
showDialog(DIALOG_SET_DEL);
}
});
}
/** metoda wypeniajca niestandardow list statystyk */
private void fillListView() {
statsDatabase = new DatabaseStatsAdapter(getApplicationContext());
statsDatabase.open();
statsCursor = statsDatabase.getAllEntriesForOneProfile(setProfile);
startManagingCursor(statsCursor);
updateListView();
ListView listView = (ListView)findViewById(R.id.statslist);
ArrayStatsAdapter arrayStatsAdapter = new ArrayStatsAdapter(this, R.layout.statsitem, stats);
listView.setAdapter(arrayStatsAdapter);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View view, int position,
long id) {
checkedPosition = position;
showDialog(DIALOG_SET_DEL);
}
});
}
/** pobieranie wartoci do kolekcji statystyk */
private void updateListView() {
statsCursor.requery();
stats.clear();
statsCursor.moveToFirst();
while (statsCursor.isAfterLast() == false) {
long id = statsCursor.getLong(DatabaseStatsAdapter.ID_COLUMN);
long profileId = statsCursor.getLong(DatabaseStatsAdapter.PROFILE_COLUMN);
int result = statsCursor.getInt(DatabaseStatsAdapter.RESULT_COLUMN);
String data = statsCursor.getString(DatabaseStatsAdapter.DATA_COLUMN);
Stats newProfile = new Stats(id, profileId, result, data);
stats.add(newProfile);
statsCursor.moveToNext();
}
}
/** metoda wywoywana podczas tworzenia aktywnoci */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.stats);
Button mainActivity = (Button) findViewById(R.id.ButtonReturnToMain);
mainActivity.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();
}
});
profileDatabase = new DatabaseProfileAdapter(getApplicationContext());
Settings.selectedprofile = getSharedPreferences(Settings.SELECTED_PROFILE, Activity.MODE_PRIVATE);
setProfile = Settings.selectedprofile.getLong("profile", 0);
TextView title = (TextView) findViewById(R.id.StatsProfileSelected);
title.setText(Settings.profileName);
fillListView();
final Button compareStats = (Button) findViewById(R.id.CompareAllIQ);
compareStats.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
if(compare){
fillListViewAllProfile();
compareStats.setText(R.string.ShowYourStats);
compare=false;
} else {
fillListView();
compareStats.setText(R.string.CompareAllIQ);
compare=true;
}
}
});
}
/** metoda zachowania podczas niszczenia aktywnoci */
@Override
protected void onDestroy() {
statsDatabase.close();
super.onDestroy();
}
/** metoda zachowania podczas wznawiania aktywnoci */
@Override
public void onResume(){
super.onResume();
fillListView();
statsDatabase.close();
}
}
|