private void sendThumbnails(GalleryProviderConnection connection, string request)
        {
            bool ret = true;

            mResult = "failure";
            mReason = REASON_IMAGE_ID_INVALID;
            int count = 0;

            if (mTb.Count > 0)
            {
                mTb.Clear();
            }
            JSONObject obj = null;

            try
            {
                obj = new JSONObject(request);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final org.json.JSONException e)
            catch (JSONException e)
            {
                Console.WriteLine(e.ToString());
                Console.Write(e.StackTrace);
                return;
            }
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final TBListReqMsg uRequest = new TBListReqMsg();
            ImageFetchModelImpl.TBListReqMsg uRequest = new ImageFetchModelImpl.TBListReqMsg();
            try
            {
                uRequest.fromJSON(obj);
            }
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final org.json.JSONException e)
            catch (JSONException e)
            {
                Console.WriteLine(e.ToString());
                Console.Write(e.StackTrace);
                return;
            }
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final long id = uRequest.getID();
            long   id          = uRequest.ID;
            Cursor imageCursor = ContentResolver.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, mProjection, null, null, null);

            if (imageCursor == null)
            {
                mReason = REASON_DATABASE_ERROR;
                sendTbListMsg(connection);
                return;
            }
            imageCursor.moveToFirst();
            publishMediaStoreInfo(imageCursor);
            if (id != INITIAL_IMAGE_INDEX)
            {
                for (int i = 0; i < imageCursor.Count; i++)
                {
                    if (id == imageCursor.getInt(imageCursor.getColumnIndex(MediaStore.Images.Media._ID)))
                    {
                        ret = imageCursor.moveToNext();
                        break;
                    }
                    if (imageCursor.moveToNext() == false)
                    {
                        ret = false;
                        break;
                    }
                }
            }
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final int size = imageCursor.getCount();
            int size = imageCursor.Count;

            if ((ret == true) && (size > 0))
            {
                do
                {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final boolean status = pullThumbnails(imageCursor);
                    bool status = pullThumbnails(imageCursor);
                    if (status == true)
                    {
                        count++;
                    }
                } while (count < 3 && imageCursor.moveToNext());
                mResult = "success";
                mReason = REASON_OK;
            }             // check to ignore in case id is last record in DB
            else
            {
                mReason = REASON_EOF_IMAGE;
            }
            if (!imageCursor.Closed)
            {
                imageCursor.close();
            }
            sendTbListMsg(connection);
        }
		private void sendThumbnails(GalleryProviderConnection connection, string request)
		{
			bool ret = true;
			mResult = "failure";
			mReason = REASON_IMAGE_ID_INVALID;
			int count = 0;
			if (mTb.Count > 0)
			{
				mTb.Clear();
			}
			JSONObject obj = null;
			try
			{
				obj = new JSONObject(request);
			}
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final org.json.JSONException e)
			catch (JSONException e)
			{
				Console.WriteLine(e.ToString());
				Console.Write(e.StackTrace);
				return;
			}
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final TBListReqMsg uRequest = new TBListReqMsg();
			ImageFetchModelImpl.TBListReqMsg uRequest = new ImageFetchModelImpl.TBListReqMsg();
			try
			{
				uRequest.fromJSON(obj);
			}
//JAVA TO C# CONVERTER WARNING: 'final' catch parameters are not available in C#:
//ORIGINAL LINE: catch (final org.json.JSONException e)
			catch (JSONException e)
			{
				Console.WriteLine(e.ToString());
				Console.Write(e.StackTrace);
				return;
			}
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final long id = uRequest.getID();
			long id = uRequest.ID;
			Cursor imageCursor = ContentResolver.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, mProjection, null, null, null);
			if (imageCursor == null)
			{
				mReason = REASON_DATABASE_ERROR;
				sendTbListMsg(connection);
				return;
			}
			imageCursor.moveToFirst();
			publishMediaStoreInfo(imageCursor);
			if (id != INITIAL_IMAGE_INDEX)
			{
				for (int i = 0; i < imageCursor.Count; i++)
				{
					if (id == imageCursor.getInt(imageCursor.getColumnIndex(MediaStore.Images.Media._ID)))
					{
						ret = imageCursor.moveToNext();
						break;
					}
					if (imageCursor.moveToNext() == false)
					{
						ret = false;
						break;
					}
				}
			}
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final int size = imageCursor.getCount();
			int size = imageCursor.Count;
			if ((ret == true) && (size > 0))
			{
				do
				{
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final boolean status = pullThumbnails(imageCursor);
					bool status = pullThumbnails(imageCursor);
					if (status == true)
					{
						count++;
					}
				} while (count < 3 && imageCursor.moveToNext());
				mResult = "success";
				mReason = REASON_OK;
			} // check to ignore in case id is last record in DB
			else
			{
				mReason = REASON_EOF_IMAGE;
			}
			if (!imageCursor.Closed)
			{
				imageCursor.close();
			}
			sendTbListMsg(connection);
		}