content: /*
   *    Copyright (C) 2016 Amit Shekhar
   *    Copyright (C) 2011 Android Open Source Project
   *
   *    Licensed under the Apache License, Version 2.0 (the "License");
   *    you may not use this file except in compliance with the License.
   *    You may obtain a copy of the License at
   *
   *        http://www.apache.org/licenses/LICENSE-2.0
   *
   *    Unless required by applicable law or agreed to in writing, software
   *    distributed under the License is distributed on an "AS IS" BASIS,
   *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *    See the License for the specific language governing permissions and
   *    limitations under the License.
   */
  package com.rxsampleapp;
  
  import android.graphics.Bitmap;
  import android.os.Bundle;
  import android.os.Environment;
  import android.os.Looper;
  import android.support.annotation.Nullable;
  import android.support.v7.app.AppCompatActivity;
  import android.util.Log;
  import android.view.View;
  import android.widget.ImageView;
  
  import com.androidnetworking.AndroidNetworking;
  import com.androidnetworking.error.ANError;
  import com.androidnetworking.interfaces.AnalyticsListener;
  import com.androidnetworking.interfaces.DownloadProgressListener;
  import com.androidnetworking.interfaces.UploadProgressListener;
  import com.rxandroidnetworking.RxANRequest;
  import com.rxandroidnetworking.RxAndroidNetworking;
  import com.rxsampleapp.model.User;
  import com.rxsampleapp.utils.Utils;
  
  import org.json.JSONException;
  import org.json.JSONObject;
  
  import java.io.File;
  import java.util.List;
  
  import rx.Observer;
  import rx.Subscriber;
  import rx.android.schedulers.AndroidSchedulers;
  import rx.schedulers.Schedulers;
  
  /**
   * Created by Prashant Gupta on 25-07-2016.
   */
  public class RxApiTestActivity extends AppCompatActivity {
  
      private static final String TAG = RxApiTestActivity.class.getSimpleName();
  
      @Override
      protected void onCreate(@Nullable Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_rx_api_test);
      }
  
      public void getAllUsers(View view) {
          RxAndroidNetworking.get(ApiEndPoint.BASE_URL + ApiEndPoint.GET_JSON_ARRAY)
                  .addPathParameter("pageNumber", "0")
                  .addQueryParameter("limit", "3")
                  .build()
                  .setAnalyticsListener(new AnalyticsListener() {
                      @Override
                      public void onReceived(long timeTakenInMillis, long bytesSent, long bytesReceived, boolean isFromCache) {
                          Log.d(TAG, " timeTakenInMillis : " + timeTakenInMillis);
                          Log.d(TAG, " bytesSent : " + bytesSent);
                          Log.d(TAG, " bytesReceived : " + bytesReceived);
                          Log.d(TAG, " isFromCache : " + isFromCache);
                      }
                  })
                  .getObjectListObservable(User.class)
                  .subscribeOn(Schedulers.io())
                  .observeOn(AndroidSchedulers.mainThread())
                  .subscribe(new Observer<List<User>>() {
                      @Override
                      public void onCompleted() {
                          Log.d(TAG, "onComplete Detail : getAllUsers completed");
                      }
  
                      @Override
                      public void onError(Throwable e) {
                          Utils.logError(TAG, e);
                      }
  
                      @Override
                      public void onNext(List<User> users) {
                          Log.d(TAG, "onResponse isMainThread : " + String.valueOf(Looper.myLooper() == Looper.getMainLooper()));
                          Log.d(TAG, "userList size : " + users.size());
                          for (User user : users) {
                              Log.d(TAG, "id : " + user.id);
                              Log.d(TAG, "firstname : " + user.firstname);
                              Log.d(TAG, "lastname : " + user.lastname);
                          }
                      }
                  });
      }
  
      public void getAnUser(View view) {
          RxAndroidNetworking.get(ApiEndPoint.BASE_URL + ApiEndPoint.GET_JSON_OBJECT)
                  .addPathParameter("userId", "1")
                  .setUserAgent("getAnUser")
                  .build()
                  .setAnalyticsListener(new AnalyticsListener() {
                      @Override
                      public void onReceived(long timeTakenInMillis, long bytesSent, long bytesReceived, boolean isFromCache) {
                          Log.d(TAG, " timeTakenInMillis : " + timeTakenInMillis);
                          Log.d(TAG, " bytesSent : " + bytesSent);
                          Log.d(TAG, " bytesReceived : " + bytesReceived);
                          Log.d(TAG, " isFromCache : " + isFromCache);
                      }
                  })
                  .getObjectObservable(User.class)
                  .subscribeOn(Schedulers.io())
                  .observeOn(AndroidSchedulers.mainThread())
                  .subscribe(new Observer<User>() {
                      @Override
                      public void onCompleted() {
                          Log.d(TAG, "onComplete Detail : getAnUser completed");
                      }
  
                      @Override
                      public void onError(Throwable e) {
                          Utils.logError(TAG, e);
                      }
  
                      @Override
                      public void onNext(User user) {
                          Log.d(TAG, "onResponse isMainThread : " + String.valueOf(Looper.myLooper() == Looper.getMainLooper()));
                          Log.d(TAG, "id : " + user.id);
                          Log.d(TAG, "firstname : " + user.firstname);
                          Log.d(TAG, "lastname : " + user.lastname);
                      }
                  });
      }
  
      public void checkForHeaderGet(View view) {
  
          RxANRequest.GetRequestBuilder getRequestBuilder = new RxANRequest.GetRequestBuilder(ApiEndPoint.BASE_URL + ApiEndPoint.CHECK_FOR_HEADER);
  
          getRequestBuilder.addHeaders("token", "1234")
                  .build()
                  .setAnalyticsListener(new AnalyticsListener() {
                      @Override
                      public void onReceived(long timeTakenInMillis, long bytesSent, long bytesReceived, boolean isFromCache) {
                          Log.d(TAG, " timeTakenInMillis : " + timeTakenInMillis);
                          Log.d(TAG, " bytesSent : " + bytesSent);
                          Log.d(TAG, " bytesReceived : " + bytesReceived);
                          Log.d(TAG, " isFromCache : " + isFromCache);
                      }
                  })
                  .getJSONObjectObservable()
                  .subscribeOn(Schedulers.io())
                  .observeOn(AndroidSchedulers.mainThread())
                  .subscribe(new Observer<JSONObject>() {
                      @Override
                      public void onCompleted() {
                          Log.d(TAG, "onComplete Detail : checkForHeaderGet completed");
                      }
  
                      @Override
                      public void onError(Throwable e) {
                          if (e instanceof ANError) {
                              ANError anError = (ANError) e;
                              if (anError.getErrorCode() != 0) {
                                  // received ANError from server
                                  // error.getErrorCode() - the ANError code from server
                                  // error.getErrorBody() - the ANError body from server
                                  // error.getErrorDetail() - just a ANError detail
                                  Log.d(TAG, "onError errorCode : " + anError.getErrorCode());
                                  Log.d(TAG, "onError errorBody : " + anError.getErrorBody());
                                  Log.d(TAG, "onError errorDetail : " + anError.getErrorDetail());
                              } else {
                                  // error.getErrorDetail() : connectionError, parseError, requestCancelledError
                                  Log.d(TAG, "onError errorDetail : " + anError.getErrorDetail());
                              }
                          } else {
                              Log.d(TAG, "onError errorMessage : " + e.getMessage());
                          }
                      }
  
                      @Override
                      public void onNext(JSONObject response) {
                          Log.d(TAG, "onResponse object : " + response.toString());
                          Log.d(TAG, "onResponse isMainThread : " + String.valueOf(Looper.myLooper() == Looper.getMainLooper()));
                      }
                  });
      }
  
      public void checkForHeaderPost(View view) {
  
          RxANRequest.PostRequestBuilder postRequestBuilder = RxAndroidNetworking.post(ApiEndPoint.BASE_URL + ApiEndPoint.CHECK_FOR_HEADER);
  
          postRequestBuilder.addHeaders("token", "1234");
  
          RxANRequest rxAnRequest = postRequestBuilder.setTag(this)
                  .build();
  
          rxAnRequest.setAnalyticsListener(new AnalyticsListener() {
              @Override
              public void onReceived(long timeTakenInMillis, long bytesSent, long bytesReceived, boolean isFromCache) {
                  Log.d(TAG, " timeTakenInMillis : " + timeTakenInMillis);
                  Log.d(TAG, " bytesSent : " + bytesSent);
                  Log.d(TAG, " bytesReceived : " + bytesReceived);
                  Log.d(TAG, " isFromCache : " + isFromCache);
              }
          });
  
          rxAnRequest.getJSONObjectObservable()
                  .subscribeOn(Schedulers.io())
                  .observeOn(AndroidSchedulers.mainThread())
                  .subscribe(new Observer<JSONObject>() {
                      @Override
                      public void onCompleted() {
                          Log.d(TAG, "onComplete Detail : checkForHeaderPost completed");
                      }
  
                      @Override
                      public void onError(Throwable e) {
                          if (e instanceof ANError) {
                              ANError anError = (ANError) e;
                              if (anError.getErrorCode() != 0) {
                                  // received ANError from server
                                  // error.getErrorCode() - the ANError code from server
                                  // error.getErrorBody() - the ANError body from server
                                  // error.getErrorDetail() - just a ANError detail
                                  Log.d(TAG, "onError errorCode : " + anError.getErrorCode());
                                  Log.d(TAG, "onError errorBody : " + anError.getErrorBody());
                                  Log.d(TAG, "onError errorDetail : " + anError.getErrorDetail());
                              } else {
                                  // error.getErrorDetail() : connectionError, parseError, requestCancelledError
                                  Log.d(TAG, "onError errorDetail : " + anError.getErrorDetail());
                              }
                          } else {
                              Log.d(TAG, "onError errorMessage : " + e.getMessage());
                          }
                      }
  
                      @Override
                      public void onNext(JSONObject response) {
                          Log.d(TAG, "onResponse object : " + response.toString());
                          Log.d(TAG, "onResponse isMainThread : " + String.valueOf(Looper.myLooper() == Looper.getMainLooper()));
                      }
                  });
      }
  
      public void createAnUser(View view) {
          RxAndroidNetworking.post(ApiEndPoint.BASE_URL + ApiEndPoint.POST_CREATE_AN_USER)
                  .addBodyParameter("firstname", "Amit")
                  .addBodyParameter("lastname", "Shekhar")
                  .build()
                  .setAnalyticsListener(new AnalyticsListener() {
                      @Override
                      public void onReceived(long timeTakenInMillis, long bytesSent, long bytesReceived, boolean isFromCache) {
                          Log.d(TAG, " timeTakenInMillis : " + timeTakenInMillis);
                          Log.d(TAG, " bytesSent : " + bytesSent);
                          Log.d(TAG, " bytesReceived : " + bytesReceived);
                          Log.d(TAG, " isFromCache : " + isFromCache);
                      }
                  })
                  .getJSONObjectObservable()
                  .subscribeOn(Schedulers.io())
                  .observeOn(AndroidSchedulers.mainThread())
                  .subscribe(new Observer<JSONObject>() {
                      @Override
                      public void onCompleted() {
                          Log.d(TAG, "onComplete Detail : createAnUser completed");
                      }
  
                      @Override
                      public void onError(Throwable e) {
                          if (e instanceof ANError) {
                              ANError anError = (ANError) e;
                              if (anError.getErrorCode() != 0) {
                                  // received ANError from server
                                  // error.getErrorCode() - the ANError code from server
                                  // error.getErrorBody() - the ANError body from server
                                  // error.getErrorDetail() - just a ANError detail
                                  Log.d(TAG, "onError errorCode : " + anError.getErrorCode());
                                  Log.d(TAG, "onError errorBody : " + anError.getErrorBody());
                                  Log.d(TAG, "onError errorDetail : " + anError.getErrorDetail());
                              } else {
                                  // error.getErrorDetail() : connectionError, parseError, requestCancelledError
                                  Log.d(TAG, "onError errorDetail : " + anError.getErrorDetail());
                              }
                          } else {
                              Log.d(TAG, "onError errorMessage : " + e.getMessage());
                          }
                      }
  
                      @Override
                      public void onNext(JSONObject response) {
                          Log.d(TAG, "onResponse object : " + response.toString());
                          Log.d(TAG, "onResponse isMainThread : " + String.valueOf(Looper.myLooper() == Looper.getMainLooper()));
                      }
                  });
      }
  
      public void createAnUserJSONObject(View view) {
          JSONObject jsonObject = new JSONObject();
          try {
              jsonObject.put("firstname", "Rohit");
              jsonObject.put("lastname", "Kumar");
          } catch (JSONException e) {
              e.printStackTrace();
          }
          RxAndroidNetworking.post(ApiEndPoint.BASE_URL + ApiEndPoint.POST_CREATE_AN_USER)
                  .addJSONObjectBody(jsonObject)
                  .build()
                  .setAnalyticsListener(new AnalyticsListener() {
                      @Override
                      public void onReceived(long timeTakenInMillis, long bytesSent, long bytesReceived, boolean isFromCache) {
                          Log.d(TAG, " timeTakenInMillis : " + timeTakenInMillis);
                          Log.d(TAG, " bytesSent : " + bytesSent);
                          Log.d(TAG, " bytesReceived : " + bytesReceived);
                          Log.d(TAG, " isFromCache : " + isFromCache);
                      }
                  })
                  .getJSONObjectObservable()
                  .subscribeOn(Schedulers.io())
                  .observeOn(AndroidSchedulers.mainThread())
                  .subscribe(new Subscriber<JSONObject>() {
                      @Override
                      public void onCompleted() {
                          Log.d(TAG, "onComplete Detail : createAnUserJSONObject completed");
                      }
  
                      @Override
                      public void onError(Throwable e) {
                          if (e instanceof ANError) {
                              ANError anError = (ANError) e;
                              if (anError.getErrorCode() != 0) {
                                  // received ANError from server
                                  // error.getErrorCode() - the ANError code from server
                                  // error.getErrorBody() - the ANError body from server
                                  // error.getErrorDetail() - just a ANError detail
                                  Log.d(TAG, "onError errorCode : " + anError.getErrorCode());
                                  Log.d(TAG, "onError errorBody : " + anError.getErrorBody());
                                  Log.d(TAG, "onError errorDetail : " + anError.getErrorDetail());
                              } else {
                                  // error.getErrorDetail() : connectionError, parseError, requestCancelledError
                                  Log.d(TAG, "onError errorDetail : " + anError.getErrorDetail());
                              }
                          } else {
                              Log.d(TAG, "onError errorMessage : " + e.getMessage());
                          }
                      }
  
                      @Override
                      public void onNext(JSONObject response) {
                          Log.d(TAG, "onResponse object : " + response.toString());
                          Log.d(TAG, "onResponse isMainThread : " + String.valueOf(Looper.myLooper() == Looper.getMainLooper()));
                      }
                  });
      }
  
      public void downloadFile(final View view) {
          String url = "http://www.colorado.edu/conflict/peace/download/peace_problem.ZIP";
          RxAndroidNetworking.download(url, Utils.getRootDirPath(getApplicationContext()), "file1.zip")
                  .build()
                  .setAnalyticsListener(new AnalyticsListener() {
                      @Override
                      public void onReceived(long timeTakenInMillis, long bytesSent, long bytesReceived, boolean isFromCache) {
                          Log.d(TAG, " timeTakenInMillis : " + timeTakenInMillis);
                          Log.d(TAG, " bytesSent : " + bytesSent);
                          Log.d(TAG, " bytesReceived : " + bytesReceived);
                          Log.d(TAG, " isFromCache : " + isFromCache);
                      }
                  })
                  .setDownloadProgressListener(new DownloadProgressListener() {
                      @Override
                      public void onProgress(long bytesDownloaded, long totalBytes) {
                          Log.d(TAG, "bytesDownloaded : " + bytesDownloaded + " totalBytes : " + totalBytes);
                          Log.d(TAG, "setDownloadProgressListener isMainThread : " + String.valueOf(Looper.myLooper() == Looper.getMainLooper()));
                      }
                  })
                  .getDownloadObservable()
                  .subscribeOn(Schedulers.io())
                  .observeOn(AndroidSchedulers.mainThread())
                  .subscribe(new Observer<String>() {
                      @Override
                      public void onCompleted() {
                          Log.d(TAG, "File download Completed");
                          Log.d(TAG, "onDownloadComplete isMainThread : " + String.valueOf(Looper.myLooper() == Looper.getMainLooper()));
                      }
  
                      @Override
                      public void onError(Throwable e) {
                          if (e instanceof ANError) {
                              ANError anError = (ANError) e;
                              if (anError.getErrorCode() != 0) {
                                  // received ANError from server
                                  // error.getErrorCode() - the ANError code from server
                                  // error.getErrorBody() - the ANError body from server
                                  // error.getErrorDetail() - just a ANError detail
                                  Log.d(TAG, "onError errorCode : " + anError.getErrorCode());
                                  Log.d(TAG, "onError errorBody : " + anError.getErrorBody());
                                  Log.d(TAG, "onError errorDetail : " + anError.getErrorDetail());
                              } else {
                                  // error.getErrorDetail() : connectionError, parseError, requestCancelledError
                                  Log.d(TAG, "onError errorDetail : " + anError.getErrorDetail());
                              }
                          } else {
                              Log.d(TAG, "onError errorMessage : " + e.getMessage());
                          }
                      }
  
                      @Override
                      public void onNext(String s) {
                          Log.d(TAG, "onNext : " + s);
                      }
                  });
      }
  
      public void downloadImage(final View view) {
          String url = "http://i.imgur.com/AtbX9iX.png";
          RxAndroidNetworking.download(url, Utils.getRootDirPath(getApplicationContext()), "image1.png")
                  .build()
                  .setAnalyticsListener(new AnalyticsListener() {
                      @Override
                      public void onReceived(long timeTakenInMillis, long bytesSent, long bytesReceived, boolean isFromCache) {
                          Log.d(TAG, " timeTakenInMillis : " + timeTakenInMillis);
                          Log.d(TAG, " bytesSent : " + bytesSent);
                          Log.d(TAG, " bytesReceived : " + bytesReceived);
                          Log.d(TAG, " isFromCache : " + isFromCache);
                      }
                  })
                  .getDownloadObservable()
                  .subscribeOn(Schedulers.io())
                  .observeOn(AndroidSchedulers.mainThread())
                  .subscribe(new Observer<String>() {
                      @Override
                      public void onCompleted() {
                          Log.d(TAG, "File download Completed");
                          Log.d(TAG, "onDownloadComplete isMainThread : " + String.valueOf(Looper.myLooper() == Looper.getMainLooper()));
                      }
  
                      @Override
                      public void onError(Throwable e) {
                          if (e instanceof ANError) {
                              ANError anError = (ANError) e;
                              if (anError.getErrorCode() != 0) {
                                  // received ANError from server
                                  // error.getErrorCode() - the ANError code from server
                                  // error.getErrorBody() - the ANError body from server
                                  // error.getErrorDetail() - just a ANError detail
                                  Log.d(TAG, "onError errorCode : " + anError.getErrorCode());
                                  Log.d(TAG, "onError errorBody : " + anError.getErrorBody());
                                  Log.d(TAG, "onError errorDetail : " + anError.getErrorDetail());
                              } else {
                                  // error.getErrorDetail() : connectionError, parseError, requestCancelledError
                                  Log.d(TAG, "onError errorDetail : " + anError.getErrorDetail());
                              }
                          } else {
                              Log.d(TAG, "onError errorMessage : " + e.getMessage());
                          }
                      }
  
                      @Override
                      public void onNext(String s) {
                          Log.d(TAG, "onNext : " + s);
                      }
                  });
      }
  
      public void uploadImage(final View view) {
          RxAndroidNetworking.upload(ApiEndPoint.BASE_URL + ApiEndPoint.UPLOAD_IMAGE)
                  .addMultipartFile("image", new File(Environment.getExternalStorageDirectory().getAbsolutePath(), "test.png"))
                  .build()
                  .setAnalyticsListener(new AnalyticsListener() {
                      @Override
                      public void onReceived(long timeTakenInMillis, long bytesSent, long bytesReceived, boolean isFromCache) {
                          Log.d(TAG, " timeTakenInMillis : " + timeTakenInMillis);
                          Log.d(TAG, " bytesSent : " + bytesSent);
                          Log.d(TAG, " bytesReceived : " + bytesReceived);
                          Log.d(TAG, " isFromCache : " + isFromCache);
                      }
                  })
                  .setUploadProgressListener(new UploadProgressListener() {
                      @Override
                      public void onProgress(long bytesUploaded, long totalBytes) {
                          Log.d(TAG, "bytesUploaded : " + bytesUploaded + " totalBytes : " + totalBytes);
                          Log.d(TAG, "setUploadProgressListener isMainThread : " + String.valueOf(Looper.myLooper() == Looper.getMainLooper()));
                      }
                  })
                  .getJSONObjectObservable()
                  .subscribeOn(Schedulers.io())
                  .observeOn(AndroidSchedulers.mainThread())
                  .subscribe(new Observer<JSONObject>() {
                      @Override
                      public void onCompleted() {
                          Log.d(TAG, "onComplete Detail : uploadImage completed");
                      }
  
                      @Override
                      public void onError(Throwable e) {
                          if (e instanceof ANError) {
                              ANError anError = (ANError) e;
                              if (anError.getErrorCode() != 0) {
                                  // received ANError from server
                                  // error.getErrorCode() - the ANError code from server
                                  // error.getErrorBody() - the ANError body from server
                                  // error.getErrorDetail() - just a ANError detail
                                  Log.d(TAG, "onError errorCode : " + anError.getErrorCode());
                                  Log.d(TAG, "onError errorBody : " + anError.getErrorBody());
                                  Log.d(TAG, "onError errorDetail : " + anError.getErrorDetail());
                              } else {
                                  // error.getErrorDetail() : connectionError, parseError, requestCancelledError
                                  Log.d(TAG, "onError errorDetail : " + anError.getErrorDetail());
                              }
                          } else {
                              Log.d(TAG, "onError errorMessage : " + e.getMessage());
                          }
                      }
  
                      @Override
                      public void onNext(JSONObject response) {
                          Log.d(TAG, "Image upload Completed");
                          Log.d(TAG, "onResponse object : " + response.toString());
                      }
                  });
      }
  
      public void getCurrentConnectionQuality(View view) {
          Log.d(TAG, "getCurrentConnectionQuality : " + AndroidNetworking.getCurrentConnectionQuality() + " currentBandwidth : " + AndroidNetworking.getCurrentBandwidth());
      }
  
      public void loadImage(View view) {
          final String URL_IMAGE = "http://i.imgur.com/2M7Hasn.png";
          RxAndroidNetworking.get(URL_IMAGE)
                  .setImageScaleType(null)
                  .setBitmapMaxHeight(0)
                  .setBitmapMaxWidth(0)
                  .setBitmapConfig(Bitmap.Config.ARGB_8888)
                  .build()
                  .setAnalyticsListener(new AnalyticsListener() {
                      @Override
                      public void onReceived(long timeTakenInMillis, long bytesSent, long bytesReceived, boolean isFromCache) {
                          Log.d(TAG, " timeTakenInMillis : " + timeTakenInMillis);
                          Log.d(TAG, " bytesSent : " + bytesSent);
                          Log.d(TAG, " bytesReceived : " + bytesReceived);
                          Log.d(TAG, " isFromCache : " + isFromCache);
                      }
                  })
                  .getBitmapObservable()
                  .subscribeOn(Schedulers.io())
                  .observeOn(AndroidSchedulers.mainThread())
                  .subscribe(new Observer<Bitmap>() {
                      @Override
                      public void onCompleted() {
                          Log.d(TAG, "onComplete Bitmap");
  
  
                      }
  
                      @Override
                      public void onError(Throwable e) {
                          if (e instanceof ANError) {
                              ANError anError = (ANError) e;
                              if (anError.getErrorCode() != 0) {
                                  // received ANError from server
                                  // error.getErrorCode() - the ANError code from server
                                  // error.getErrorBody() - the ANError body from server
                                  // error.getErrorDetail() - just a ANError detail
                                  Log.d(TAG, "onError errorCode : " + anError.getErrorCode());
                                  Log.d(TAG, "onError errorBody : " + anError.getErrorBody());
                                  Log.d(TAG, "onError errorDetail : " + anError.getErrorDetail());
                              } else {
                                  // error.getErrorDetail() : connectionError, parseError, requestCancelledError
                                  Log.d(TAG, "onError errorDetail : " + anError.getErrorDetail());
                              }
                          } else {
                              Log.d(TAG, "onError errorMessage : " + e.getMessage());
                          }
                      }
  
                      @Override
                      public void onNext(Bitmap bitmap) {
                          Log.d(TAG, "onResponse Bitmap");
                          ImageView imageView = (ImageView) findViewById(R.id.imageView);
                          imageView.setImageBitmap(bitmap);
                      }
                  });
  
      }
  
  }
  