Advertisement
Guest User

Untitled

a guest
Nov 1st, 2012
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.86 KB | None | 0 0
  1.     @Override
  2.     public void bindView(View v, final Context context, Cursor cursor) {
  3.         GameViewHolder gvh = (GameViewHolder) v.getTag();
  4.         final Game g = WordGameProvider.gameCurToGame(cursor);
  5. //      Log.d("Game", "id="+g.getStrId()+", currPlayer="+g.getCurrPlayer()+", creator="+g.getGameCreator()+", picUrl="+g.getPicUrl()+", type="+g.getType());
  6.         gvh.icon.setBackgroundResource(R.drawable.blankimage);
  7.         gvh.currUserTurn.setText("");
  8.         gvh.gameName.setText("");
  9.         if (g.getCurrPlayer() != null) {
  10.             gvh.icon.setTag(g.getStrId());
  11.             gvh.gameName.setTag(g.getStrId());
  12.             gvh.currUserTurn.setTag(g.getStrId());
  13.             if (currUserId.equalsIgnoreCase(g.getCurrPlayer())) {
  14.                 v.setBackgroundColor(0xFFFFEC8B);
  15.             }
  16.             else {
  17.                 v.setBackgroundColor(Color.WHITE);
  18.             }
  19.             new GetOpponentId((String) gvh.icon.getTag(), context, gvh.icon, g).execute((Void) null);
  20.             new PopulateGameInfo((String) gvh.currUserTurn.getTag(), gvh, context, g).execute((Void) null);
  21.             v.setOnClickListener(new OnClickListener() {
  22.                
  23.                 @Override
  24.                 public void onClick(View v) {
  25.                     Intent i = new Intent(context, PlayGameActivity.class);
  26.                     i.putExtra("gameid", g.getStrId());
  27.                     ((GameListActivity) context).startActivityForResult(i, 0);
  28.                 }
  29.             });
  30.         }
  31.         else {
  32.             gvh.gameName.setText("Game of "+g.getType()+" versus Bot");
  33.             gvh.currUserTurn.setText("Your Turn!");
  34.             v.setBackgroundColor(0xFFFFEC8B);
  35.             v.setOnClickListener(new OnClickListener() {
  36.                
  37.                 @Override
  38.                 public void onClick(View v) {
  39.                     Intent i = new Intent(context, BotGameActivity.class);
  40.                     i.putExtra("gameid", g.getStrId());
  41.                     context.startActivity(i);
  42.                 }
  43.             });
  44.         }
  45.     }
  46.  
  47.  
  48.     class PopulateGameInfo extends AsyncTaskEx<Void, Void, String[]> {
  49.        
  50.         private GameViewHolder gvh;
  51.         private Context context;
  52.         private Game g;
  53.         private String tag;
  54.        
  55.         public PopulateGameInfo(String tag, GameViewHolder gvh, Context context, Game g) {
  56.             this.tag = tag;
  57.             this.context = context;
  58.             this.gvh = gvh;
  59.             this.g = g;
  60.         }
  61.  
  62.         protected void onPreExecute() {
  63.             gvh.gameName.setText("Loading...");
  64.             gvh.currUserTurn.setText("Loading...");
  65.         };
  66.        
  67.         @Override
  68.         protected String[] doInBackground(Void... arg0) {
  69.             String[] names = new String[2];
  70.             names[0] = WordGameProvider.getUserName(context, g.getGameCreator());
  71.             names[1] = WordGameProvider.getUserName(context, g.getCurrPlayer());
  72.             return names;
  73.         }
  74.        
  75.         protected void onPostExecute(String[] result) {
  76.             if (tag.equalsIgnoreCase((String) gvh.gameName.getTag()) && tag.equalsIgnoreCase((String) gvh.currUserTurn.getTag()) && g.getStrId().equalsIgnoreCase(tag)) {
  77.                 if (result[0] != null) {
  78.                     gvh.gameName.setText("Game of "+g.getType()+" created by "+result[0]);
  79.                 }
  80.                 if (result[1] != null) {
  81.                     gvh.currUserTurn.setText(result[1]+"'s Turn.");
  82.                 }
  83.             }
  84.         };
  85.     }
  86.    
  87.     class GetOpponentId extends AsyncTaskEx<Void, Void, String> {
  88.        
  89.         private Context c;
  90.         private WeakReference<ImageView> image;
  91.         private Game g;
  92.         private String tag;
  93.        
  94.         public GetOpponentId(String tag, Context c, ImageView image, Game g) {
  95.             this.tag = tag;
  96.             this.c = c;
  97.             this.image = new WeakReference<ImageView>(image);
  98.             this.g = g;
  99.         }
  100.        
  101.         @Override
  102.         protected String doInBackground(Void... arg0) {
  103.             Cursor cur = c.getContentResolver().query(WordGameProvider.USERS_URI,
  104.                     new String[]  {DBHelper.USERID},
  105.                     DBHelper.GAME_ID+"=? AND "+DBHelper.USERID+"!=?",
  106.                     new String[] {g.getStrId(), currUserId},
  107.                     null);
  108.             cur.moveToFirst();
  109.             String retStr = cur.getString(cur.getColumnIndex(DBHelper.USERID));
  110.             cur.close();
  111.             return retStr;
  112.         }
  113.        
  114.         @Override
  115.         protected void onPostExecute(String result) {
  116.             if (image != null && image.get() != null && tag.equalsIgnoreCase((String) image.get().getTag()) && g.getStrId().equalsIgnoreCase(tag)) {
  117.                 image.get().setImageBitmap(Util.model.getImage(result, g.getPicUrl(), c, image.get()));        
  118.             }
  119.         }
  120.     }
  121.  
  122.  
  123. private void refreshGamesList() {
  124.         allGamesCur = getContentResolver().query(WordGameProvider.GAMES_URI, null, null, null, null);
  125.         allGamesCur.moveToFirst();
  126.         while (!allGamesCur.isAfterLast()) {
  127.             Log.d("Cursor Row", "id="+allGamesCur.getString(allGamesCur.getColumnIndex(DBHelper.GAME_ID))+", type="+allGamesCur.getString(allGamesCur.getColumnIndex(DBHelper.TYPE))+", picurl="+allGamesCur.getString(allGamesCur.getColumnIndex(DBHelper.PIC_URL)));
  128.             allGamesCur.moveToNext();
  129.         }
  130.         if (allGamesCur.getCount() < 1) {
  131.             gameList.setVisibility(View.GONE);
  132.             noGames.setVisibility(View.VISIBLE);
  133.         }
  134.         else {
  135.             noGames.setVisibility(View.GONE);
  136.             gameList.setVisibility(View.VISIBLE);
  137.             if (gamesAdapter == null) {
  138.                 gamesAdapter = new GameListAdapter(this, allGamesCur, currUserId);
  139.                 gameList.setAdapter(gamesAdapter);
  140.             }
  141.             else {
  142.                 gamesAdapter.changeCursor(allGamesCur);
  143.                 gamesAdapter.notifyDataSetChanged();
  144.             }
  145.         }
  146.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement