Android Open Source - Keep-score Player List Activity






From Project

Back to project page Keep-score.

License

The source code is released under:

MIT License

If you think the Android project Keep-score listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package gr.sv1jsb.kratascore;
//w  w  w .j  a v  a  2s  .com
import android.app.ListActivity;
import android.app.LoaderManager;
import android.content.CursorLoader;
import android.content.Intent;
import android.content.Loader;
import android.database.Cursor;
import android.os.Build;
import android.os.Bundle;
import android.os.Parcelable;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import gr.sv1jsb.kratascore.adapters.PlayerListAdapter;
import gr.sv1jsb.kratascore.persistance.KrataScoreContract;
import gr.sv1jsb.kratascore.persistance.Player;


public class PlayerListActivity extends ListActivity implements LoaderManager.LoaderCallbacks<Cursor> {

    public static final String SELECTED_PLAYERS = "SELECTED_PLAYERS";
    public static final String LIST_FILTER = "LIST_FILTER";
    private PlayerListAdapter mAdapter;
    private Map<Long, Player> mPlayers = new HashMap<Long, Player>();
    private String[] mSelectionArgs= {"%"};
    private TextView mNoPlayers;
    private ProgressBar mProgress;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.playerlist);
        if(savedInstanceState != null) {
            mSelectionArgs = savedInstanceState.getStringArray(LIST_FILTER);
            if(savedInstanceState.getParcelableArrayList(SELECTED_PLAYERS) != null){
                for(Parcelable p: savedInstanceState.getParcelableArrayList(SELECTED_PLAYERS)){
                    Player pl = (Player) p;
                    mPlayers.put(pl._id, pl);
                }
            }
        }
        mAdapter = new PlayerListAdapter(this, null, 0,
                R.layout.playerlist_row, true, mPlayers.keySet());
        setListAdapter(mAdapter);
        getLoaderManager().initLoader(0, null, this);

        mNoPlayers = (TextView) findViewById(R.id.noplayers);
        mProgress = (ProgressBar) findViewById(android.R.id.empty);
        Button okBtn = (Button) findViewById(R.id.player_listview_create);
        okBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent resultIntent = new Intent();
                final ArrayList<Player> players = new ArrayList<Player>(mPlayers.values());
                final int res;
                if(players.size()>0){
                    resultIntent.putExtra(Constants.PLAYERS_CHOOSEN, players);
                    res = RESULT_OK;
                } else {
                    res = RESULT_CANCELED;
                }
                setResult(res, resultIntent);
                finish();
            }
        });

        EditText filterPlayers = (EditText) findViewById(R.id.filterPlayers);
        filterPlayers.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
                if(charSequence.length()>0) {
                    mSelectionArgs[0] = "%" + charSequence + "%";
                } else {
                    mSelectionArgs[0] = "%";
                }
                getLoaderManager().restartLoader(0, null, PlayerListActivity.this);
            }

            @Override
            public void afterTextChanged(Editable editable) {

            }
        });
        getListView().setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
                final Cursor c = (Cursor) mAdapter.getItem(i);
                final Player p = Player.newInstanceFromCursor(c);
                Intent playerIntent = new Intent(PlayerListActivity.this, PlayerActivity.class);
                playerIntent.putExtra(Constants.PLAYER, p);
                startActivityForResult(playerIntent, Constants.PLAYER_REQUEST_CODE);
                return true;
            }
        });
        try {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
                getActionBar().setDisplayHomeAsUpEnabled(true);
            getActionBar().setSubtitle(getString(R.string.choose_players));
        } catch (NullPointerException e){

        }
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        outState.putParcelableArrayList(SELECTED_PLAYERS, new ArrayList<Player>(mPlayers.values()));
        outState.putStringArray(LIST_FILTER, mSelectionArgs);
        super.onSaveInstanceState(outState);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode == RESULT_OK && requestCode == Constants.PLAYER_REQUEST_CODE) {
            if(data.getIntExtra(Constants.PLAYER_DELETED, 0) == Constants.PLAYER_DELETED_OK) {
                Toast.makeText(this, getString(R.string.player_deleted_ok), Toast.LENGTH_SHORT).show();
            } else if(data.getIntExtra(Constants.PLAYER_DELETED, 0) == Constants.PLAYER_DELETED_ERROR) {
                Toast.makeText(this, getString(R.string.player_deleted_error), Toast.LENGTH_SHORT).show();
            }
            getLoaderManager().restartLoader(0, null, PlayerListActivity.this);
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.player_list_menu, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.new_player_menu:
                Intent playerIntent = new Intent(PlayerListActivity.this, PlayerActivity.class);
                startActivityForResult(playerIntent, Constants.PLAYER_REQUEST_CODE);
                return true;
            default:
                return false;
        }
    }

    @Override
    public void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);

        Cursor item = (Cursor) mAdapter.getItem(position);
        if(!mPlayers.containsKey(id)) {
            mPlayers.put(id, Player.newInstanceFromCursor(item));
            ((TextView) v.findViewById(R.id.player_listview_name)).setTextColor(getResources().getColor(android.R.color.black));
            ((ImageView) v.findViewById(R.id.playerCheck)).setImageDrawable(getResources().getDrawable(android.R.drawable.checkbox_on_background));
        } else {
            mPlayers.remove(id);
            ((TextView) v.findViewById(R.id.player_listview_name)).setTextColor(getResources().getColor(android.R.color.white));
            ((ImageView) v.findViewById(R.id.playerCheck)).setImageDrawable(getResources().getDrawable(android.R.drawable.checkbox_off_background));
        }
    }

    @Override
    public Loader<Cursor> onCreateLoader(int i, Bundle bundle) {
        return new CursorLoader(this, KrataScoreContract.PlayerEntry.CONTENT_URI,
                KrataScoreContract.PlayerEntry.PROJECTION_ALL,
                KrataScoreContract.PlayerEntry.SELECTION_NAME,
                mSelectionArgs,
                null);
    }

    @Override
    public void onLoadFinished(Loader<Cursor> cursorLoader, Cursor cursor) {
        if(cursor.getCount() == 0) {
            mProgress.setVisibility(View.GONE);
            getListView().setEmptyView(mNoPlayers);
        }
        mAdapter.changeCursor(cursor);
    }

    @Override
    public void onLoaderReset(Loader<Cursor> cursorLoader) {
        mAdapter.changeCursor(null);
    }
}




Java Source Code List

gr.sv1jsb.cropimage.ApplicationTest.java
gr.sv1jsb.cropimage.BitmapManager.java
gr.sv1jsb.cropimage.CropImageView.java
gr.sv1jsb.cropimage.CropImage.java
gr.sv1jsb.cropimage.HighlightView.java
gr.sv1jsb.cropimage.ImageViewTouchBase.java
gr.sv1jsb.cropimage.MonitoredActivity.java
gr.sv1jsb.cropimage.RotateBitmap.java
gr.sv1jsb.cropimage.Util.java
gr.sv1jsb.kratascore.AboutFragment.java
gr.sv1jsb.kratascore.AddScoreDialog.java
gr.sv1jsb.kratascore.ApplicationTest.java
gr.sv1jsb.kratascore.Constants.java
gr.sv1jsb.kratascore.DateFragment.java
gr.sv1jsb.kratascore.DeleteConfirmDialog.java
gr.sv1jsb.kratascore.EndConfirmDialog.java
gr.sv1jsb.kratascore.GameFragment.java
gr.sv1jsb.kratascore.GameListFragment.java
gr.sv1jsb.kratascore.GenericAlertDialog.java
gr.sv1jsb.kratascore.HelpFragment.java
gr.sv1jsb.kratascore.KrataScoreActivity.java
gr.sv1jsb.kratascore.NewGameActivity.java
gr.sv1jsb.kratascore.PhotoPickDialog.java
gr.sv1jsb.kratascore.PlayerActivity.java
gr.sv1jsb.kratascore.PlayerListActivity.java
gr.sv1jsb.kratascore.SearchActivity.java
gr.sv1jsb.kratascore.SortDialog.java
gr.sv1jsb.kratascore.adapters.BaseCursorAdapter.java
gr.sv1jsb.kratascore.adapters.GameAdapter.java
gr.sv1jsb.kratascore.adapters.GameListAdapter.java
gr.sv1jsb.kratascore.adapters.PlayerListAdapter.java
gr.sv1jsb.kratascore.persistance.KrataScoreContract.java
gr.sv1jsb.kratascore.persistance.KrataScoreDB.java
gr.sv1jsb.kratascore.persistance.Player.java
gr.sv1jsb.kratascore.provider.KrataScoreProvider.java
gr.sv1jsb.utils.ImageCache.java
gr.sv1jsb.utils.ImageUtils.java
gr.sv1jsb.utils.RandomStringUtils.java