// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.kpdus.com/jad.html // Decompiler options: packimports(3) // Source File Name: SightingViewAdapter.java package com.bocai.widget; import android.content.Context; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.*; import android.widget.*; import com.bocai.R; import com.bocai.model.*; import com.bocai.net.ImageDownloadRequest; import java.util.Iterator; import java.util.List; import java.util.concurrent.ConcurrentHashMap; @SuppressWarnings("rawtypes") public class SightingViewAdapter extends ArrayAdapter implements com.bocai.net.ImageDownloadRequest.OnDownloadCompleteListener, com.bocai.model.Sighting.OnDecodeCompleteListener { class CallbackRec { Bitmap bitmap; ProgressBar progress; ImageView thumb; CallbackRec() { super(); } } public SightingViewAdapter(Context context, int i, List list) { super(context, i, list); adapterView = null; android.os.Handler.Callback callback = new android.os.Handler.Callback() { public boolean handleMessage(Message message) { if(message.obj != null) { CallbackRec callbackrec = (CallbackRec)message.obj; if(callbackrec.thumb != null && callbackrec.bitmap != null) { ImageView imageview = callbackrec.thumb; Bitmap bitmap = callbackrec.bitmap; imageview.setImageBitmap(bitmap); } callbackrec.progress.setVisibility(View.GONE); callbackrec.thumb = null; callbackrec.bitmap = null; callbackrec.progress = null; } return true; } }; handlerCallback = callback; _objects = list; _itemParentId = i; LayoutInflater layoutinflater = LayoutInflater.from(context); _inflater = layoutinflater; activeRequests = new ConcurrentHashMap(); } public long getItemId(int i) { Sighting sighting = (Sighting)_objects.get(i); long l1; if(sighting instanceof Promo) { long l = i; l1 = 0x8000000000000000L + l; } else { String s = sighting.sightingID; if(s != null) { l1 = Integer.parseInt(s); } else { StringBuilder stringbuilder = (new StringBuilder()).append("getItemId(").append(i).append("): Sighting ID is NULL! "); Object obj = _objects.get(i); String s1 = stringbuilder.append(obj).toString(); Log.d("SightingViewAdapter", s1); for(Iterator iterator = _objects.iterator(); iterator.hasNext();) { Sighting sighting1 = (Sighting)iterator.next(); String s2 = (new StringBuilder()).append("\t\t\t").append(sighting1).toString(); Log.d("SightingViewAdapter", s2); } l1 = 0L; } } return l1; } public View getView(int i, View view, ViewGroup viewgroup) { TextView textview2; ImageView imageview1; ProgressBar progressbar; TextView textview; TextView textview1; ImageView imageview; Sighting sighting; TextView textview4; String s3; Bitmap bitmap; //Log.i("SightingViewAdapter", "***************** " + count); count++; /* if (count < 1000000000) { return view; }*/ if(view == null) { view = _inflater.inflate(_itemParentId, null); view.setWillNotCacheDrawing(true); Object aobj[] = new Object[6]; textview = (TextView)view.findViewById(R.id.title); textview1 = (TextView)view.findViewById(R.id.detail); textview2 = (TextView)view.findViewById(R.id.ribbon_count); imageview = (ImageView)view.findViewById(R.id.thumb); imageview1 = (ImageView)view.findViewById(R.id.ribbon); progressbar = (ProgressBar)view.findViewById(R.id.progress); aobj[0] = textview; aobj[1] = textview1; aobj[2] = imageview; aobj[3] = textview2; aobj[4] = imageview1; aobj[5] = progressbar; view.setTag(R.id.key_objects, ((Object) (aobj))); } else { Object aobj2[] = (Object[])view.getTag(R.id.key_objects); textview = (TextView)aobj2[0]; textview1 = (TextView)aobj2[1]; imageview = (ImageView)aobj2[2]; textview2 = (TextView)aobj2[3]; imageview1 = (ImageView)aobj2[4]; progressbar = (ProgressBar)aobj2[5]; Drawable drawable = imageview.getDrawable(); if(drawable != null && (drawable instanceof BitmapDrawable)) { Bitmap bitmap1 = ((BitmapDrawable)drawable).getBitmap(); if(bitmap1 != null) bitmap1.recycle(); } if(drawable != null) { android.graphics.drawable.Drawable.Callback callback = null; drawable.setCallback(callback); } imageview.setImageBitmap(null); } sighting = (Sighting)_objects.get(i); if(sighting instanceof Promo) { String s = ((Promo)sighting).text; textview.setText(s); } else { StringBuilder stringbuilder = new StringBuilder(); String s6 = sighting.item.name; StringBuilder stringbuilder1 = stringbuilder.append(s6).append(" @ "); String s7 = sighting.place.name; String s8 = stringbuilder1.append(s7).toString(); textview.setText(s8); } s3 = sighting.detailInfo; textview4 = textview1; textview4.setText(s3); bitmap = sighting.getThumb280(); if(bitmap != null) { imageview.setImageBitmap(bitmap); // progressbar.setVisibility(View.VISIBLE); progressbar.setVisibility(View.GONE); } else { //label0: { imageview.setImageBitmap(null); /* if(sighting.decodeThumb280(this, Integer.valueOf(i))) { // break MISSING_BLOCK_LABEL_815; return view; }*/ String s10 = sighting.thumb280URL; if(s10 == null) { //break label0; return view; } if(activeRequests.containsKey(s10)) { //break label0; return view; } //Log.i("SightingViewAdapter", "----- sighting.thumb280URL:" + s10); progressbar.setVisibility(0); ImageDownloadRequest imagedownloadrequest = new ImageDownloadRequest(s10); imagedownloadrequest.downloadListener = this; imagedownloadrequest.userData = i; imagedownloadrequest.execute(); activeRequests.put(s10, imagedownloadrequest); } } //_L1: if(sighting.ribbonsCount > 0) { imageview1.setVisibility(0); textview2.setText(Integer.toString(sighting.ribbonsCount)); textview2.setVisibility(0); } else { imageview1.setVisibility(8); textview2.setVisibility(8); } view.setTag(R.id.key_position, i); //return view; // progressbar.setVisibility(8); //goto _L1 //progressbar.setVisibility(View.GONE); // goto _L1 //Log.i("SightingViewAdapter", "!!!!!!!!!!!!!!!! view.getId() " + view.getId()); //Log.i("SightingViewAdapter", "!!!!!!!!!!!!!!!! view.getTag(R.id.key_objects) " + view.getTag(R.id.key_objects)); return view; } public void notifyDataSetChanged() { activeRequests.clear(); super.notifyDataSetChanged(); } public void onDecodeComplete(Sighting sighting, Bitmap bitmap, Object obj) { int i = ((Integer)obj).intValue(); setImageViewBitmap(i, bitmap); } public void onDownloadComplete(ImageDownloadRequest imagedownloadrequest, Bitmap bitmap) { int i = ((Integer)imagedownloadrequest.userData).intValue(); setImageViewBitmap(i, bitmap); activeRequests.remove(imagedownloadrequest.url); } public void onDownloadError(ImageDownloadRequest imagedownloadrequest, String s) { StringBuilder stringbuilder = (new StringBuilder()).append("Error downloading thumbnail for Sighting: "); String s1 = imagedownloadrequest.url; String s2 = stringbuilder.append(s1).append(": ").append(s).toString(); Log.e("SightingViewAdapter", s2); } public void setAdapterView(AdapterView adapterview) { adapterView = adapterview; } void setImageViewBitmap(int i, Bitmap bitmap) { int j = adapterView.getFirstVisiblePosition(); int k = i - j; //Log.i("SightingViewAdapter", "&&&&&&&&&&&&&& i,j " + i + "," + j); if(k < 0) return; int l = adapterView.getChildCount(); //Log.i("SightingViewAdapter", "&&&&&&&&&&&&&& l " + l); if(k >= l) return; // TODO temprorily set k=1 // k = 1; //Log.i("SightingViewAdapter", "&&&&&&&&&&&&&& testview(0).getTag(R.id.key_objects); " + adapterView.getChildAt(0).getTag(R.id.key_objects)); //Log.i("SightingViewAdapter", "&&&&&&&&&&&&&& testview(1).getTag(R.id.key_objects); " + adapterView.getChildAt(1).getTag(R.id.key_objects)); View view = adapterView.getChildAt(k); if(view == null) return; Object obj = view.getTag(R.id.key_objects); //Log.i("SightingViewAdapter", "&&&&&&&&&&&&&& obj" + obj ); Object aobj[] = (Object[])obj; if(aobj == null) return; ImageView imageview = (ImageView)aobj[2]; ProgressBar progressbar = (ProgressBar)aobj[5]; Message message = uiHandler.obtainMessage(); CallbackRec callbackrec = (CallbackRec)message.obj; if(callbackrec == null) { callbackrec = new CallbackRec(); message.obj = callbackrec; } callbackrec.thumb = imageview; callbackrec.bitmap = bitmap; callbackrec.progress = progressbar; uiHandler.sendMessage(message); } public void setUIHandler(Handler handler) { android.os.Looper looper = handler.getLooper(); android.os.Handler.Callback callback = handlerCallback; uiHandler = new Handler(looper, callback); } private static final String LOG_TAG = "SightingViewAdapter"; private final LayoutInflater _inflater; private final int _itemParentId; private final List _objects; private final ConcurrentHashMap activeRequests; private AdapterView adapterView; final android.os.Handler.Callback handlerCallback; private Handler uiHandler; private int count = 0; }