In my app i have a processDialog (using AsyncTask) and at doInbackground it fetches data from server. all are working perfectly. But I want if Internet is slow then it gives an warning alert that "problem with ur internet connection" so for that i want to know how much time the progressDialog takes upto dismiss. so that i can put a condition that if time > 5imns then that alert will come.
How can i get how much time it takes or how to set time for dialog.
plz anybody answer me. thank you in advance
below my code is there,
public class InfoActivity extends Activity {
private TextView tvRestroName, tvRestroAddr, tvRestroArea, tvRestroCity,
tvRestroPhone, tvRestroRating, tvRestroCuisines, tvRestroAttr;
private ImageView imgRestro;
private ImageAdapter coverImageAdapter = new ImageAdapter(this);
private ScrollView sv;
static Bitmap restroBitmap, selectedImage;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
// This activity has two different views so to bind two views
// LinearLayout is used here
// from two views one is xml and another is coverflow class
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
LayoutInflater inflater = (LayoutInflater) this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.info, null);
// adding one view as xml
ll.addView(view);
CoverFlow coverFlow;
coverFlow = new CoverFlow(this);
coverFlow.setAdapter(new ImageAdapter(this));
// set Imageadapter which is define within InfoActivity class
coverFlow.setAdapter(coverImageAdapter);
coverFlow.setSpacing(-25);
coverFlow.setSelection(4, true);
coverFlow.setAnimationDuration(1000);
// and another view as class
ll.addView(coverFlow);
sv = new ScrollView(this);
sv.addView(ll);
// To add all views to InfoActivity
setContentView(sv);
// to initialize all variables like textview and imageview
setupViews();
// for progress dialog
new DownloadTask().execute(this);
// click event of images within imageadapter
coverFlow.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
Toast.makeText(InfoActivity.this, "" + (position + 1),
Toast.LENGTH_SHORT).show();
// imageView.setImageResource(mImageIds[arg2]);
String slImg = TabHostActivity.galleryArray[position];
selectedImage = loadBitmap(slImg);
Intent i = new Intent(InfoActivity.this,
PostCommentActivity.class);
startActivity(i);
}
});
}
// to initialize all variables like textview and imageview
private void setupViews() {
imgRestro = (ImageView) findViewById(R.id.imageResturant);
tvRestroName = (TextView) findViewById(R.id.tvRestroName);
tvRestroAddr = (TextView) findViewById(R.id.tvRestroAddr);
tvRestroArea = (TextView) findViewById(R.id.tvRestroArea);
tvRestroCity = (TextView) findViewById(R.id.tvRestroCity);
tvRestroPhone = (TextView) findViewById(R.id.tvRestroPhone);
tvRestroRating = (TextView) findViewById(R.id.tvRestroRating);
tvRestroCuisines = (TextView) findViewById(R.id.tvRestroCuisines);
tvRestroAttr = (TextView) findViewById(R.id.tvRestroAttributes);
}
// set values to all fields
private void setupValues() {
tvRestroName.setText("Restaurant " + TabHostActivity.restroName);
//Bitmap bmp = loadBitmap(TabHostActivity.restroImageurl);
System.out.println("str ;" + TabHostActivity.restroImageurl);
imgRestro.setImageBitmap(Bitmap.createScaledBitmap(restroBitmap, 300, 300, true));
System.out.println("Image seted");
tvRestroAddr.setText("Address: " + TabHostActivity.addr);
tvRestroArea.setText("Area: " + TabHostActivity.area);
tvRestroCity.setText("City:" + TabHostActivity.city);
String phones = "Phones: ";
for (int i = 0; i < TabHostActivity.phoneArray.length; i++)
phones += TabHostActivity.phoneArray[i] + ", ";
tvRestroPhone.setText(phones.substring(0, phones.length() - 2));
tvRestroRating.setText("Rating: " + TabHostActivity.rating);
String cuisines = "Cuisines: ";
for (int i = 0; i < TabHostActivity.cuisinesArray.length; i++)
cuisines += TabHostActivity.cuisinesArray[i] + ", ";
tvRestroCuisines.setText(cuisines.substring(0, cuisines.length() - 2));
String attr = "Attributes: ";
for (int i = 0; i < TabHostActivity.attributesArray.length; i++)
attr += TabHostActivity.attributesArray[i] + ", ";
tvRestroAttr.setText(attr.substring(0, attr.length() - 2));
}
// to get image from url in form of bitmap
private static Bitmap loadBitmap(String url) {
URL myFileUrl = null;
InputStream is = null;
try {
myFileUrl = new URL(url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
HttpURLConnection conn = (HttpURLConnection) myFileUrl
.openConnection();
conn.setDoInput(true);
conn.connect();
is = conn.getInputStream();
Log.i("i m connected", "Download in info for main image");
} catch (IOException e) {
e.printStackTrace();
}
Log.i("i m connected", "Download in info for main image");
return BitmapFactory.decodeStream(is);
}
// for progressdialog
private class DownloadTask extends AsyncTask<Context, Integer, Void> {
private ProgressDialog Dialog = new ProgressDialog(InfoActivity.this);
@Override
protected void onPreExecute() {
System.out.println("In onPreExecute ");
Dialog.setTitle("Loading");
Dialog.setMessage("Please wait for few seconds...");
//Dialog.setMax(100);
//Dialog.setProgress(0);
Dialog.show();
}
@Override
protected Void doInBackground(Context... params) {
System.out.println("In doInBackground ");
//examineJSONFile();
restroBitmap= loadBitmap(TabHostActivity.restroImageurl);
System.out.println("conversion of bitmap done");
int i = 0;
System.out.println("In doInBackground ");
Dialog.dismiss();
//Dialog.cancel();
for (i = 0; i < 10; i++)
System.out.println("In doInBackground " + i);
Bitmap bitmap = null;
for (i = 0; i < TabHostActivity.galleryArray.length; i++) {
try {
publishProgress(i);
} catch (Exception e) {
Log.i("in while", e.getMessage());
}
bitmap = loadBitmap(TabHostActivity.galleryArray[i]);
TabHostActivity.bitmapHash.remove(TabHostActivity.galleryArray[i]);
TabHostActivity.bitmapHash.put(TabHostActivity.galleryArray[i], bitmap);
}
return null;
}
@Override
protected void onProgressUpdate(Integer... progress) {
if (progress[0]==0) {
setupValues();
System.out.println("setupvalues");
} else {
System.out.println("In progress ");
coverImageAdapter.setnotify();
}
}
@Override
protected void onPostExecute(Void arg) {
System.out.println("In onPostExecute ");
}
}
public class ImageAdapter extends BaseAdapter {
int mGalleryItemBackground;
private Context mContext;
private BitmapDrawable drawable;
private FileInputStream fis;
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return TabHostActivity.galleryArray.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public void setnotify() {
notifyDataSetChanged();
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView i = new ImageView(mContext);
fetchDummy(TabHostActivity.galleryArray[position], i);
i.setLayoutParams(new CoverFlow.LayoutParams(200, 200));
i.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
// Make sure we set anti-aliasing otherwise we get jaggies
drawable = (BitmapDrawable) i.getDrawable();
try {
drawable.setAntiAlias(true);
} catch (Exception e) {
System.out.println("Exception in getview :" + e);
}
return i;
// return mImages[position];
}
/**
* Returns the size (0.0f to 1.0f) of the views depending on the
* 'offset' to the center.
*/
public float getScale(boolean focused, int offset) {
/* Formula: 1 / (2 ^ offset) */
return Math.max(1, 2.0f / (float) Math.pow(2, Math.abs(offset)));
}
private void fetchDummy(String urlString, ImageView i) {
if (TabHostActivity.bitmapHash.containsKey(urlString)) {
i.setImageBitmap(TabHostActivity.bitmapHash.get(urlString));
}
}
}