StatsScreen.java :  » UnTagged » pocketiq » com » inzynieria » pocketIQ » Android Open Source

Android Open Source » UnTagged » pocketiq 
pocketiq » com » inzynieria » pocketIQ » StatsScreen.java
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();
    }
    
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.