<uses-permission android:name="android.permission.INTERNET"/>
public interface ApiHitListener {
void onSuccessResponse(int apiId, Object response);
void onFailResponse(int apiId, String error);
}
_________________________________________
public class ApiIds {
public static final int ID_POST_PROCESS = 1;
public static final int ID_GET_PROCESS = 2;
public static final int ID_UPLOAD_IMAGE_PROCESS = 3;
}
_______________________________________
public class AuthUtils {
public static String basic(String email, String password) {
String basicAuth = "Basic " +
Base64.encodeToString(String.format("%s:%s", email, password)
.getBytes(),
Base64.NO_WRAP);
return basicAuth;
}
}
_______________________________________________
package com.example.brsoft.retrofitdemo.restclient;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Color;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AlertDialog;
import android.view.View;
import android.widget.Toast;
/** * Created by ububtu on 13/7/16. */public class BaseRestClient {
private final Context _context;
private ProgressDialog pDialog;
private String pDialogMessage = "Loading...";
private AlertDialog mErrorDialog;
protected BaseRestClient(Context _context) {
this._context = _context;
init();
}
private void init() {
pDialog = new ProgressDialog(_context);
pDialog.setMessage(pDialogMessage);
pDialog.setCancelable(false);
}
/** * progress dialog functions **/ public void showProgDialog() {
pDialog.show();
}
public void showProgDialog(String message) {
pDialog.setMessage(message);
pDialog.show();
}
public void hideProgDialog() {
if (pDialog != null && pDialog.isShowing()) {
pDialog.dismiss();
}
}
public void showToast(String msg) {
Toast.makeText(_context, msg, Toast.LENGTH_SHORT).show();
}
/* public void showErrorSnackBar(View view, String message) { bar = Snackbar.make(view, message, Snackbar.LENGTH_LONG) .setAction("OK", new View.OnClickListener() { @Override public void onClick(View v) {
bar.dismiss(); } });
bar.show(); bar.setActionTextColor(Color.BLUE); }
public void displayErrorDialog(String title, String content) { mErrorDialog = new AlertDialog.Builder(_context) .setTitle(title) .setMessage(content) .setIcon(ContextCompat.getDrawable(_context, com.brsoftech.core_utils.R.drawable.ic_error_24dp)) .setCancelable(false) .setNegativeButton(com.brsoftech.core_utils.R.string.dismiss, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { dialogInterface.dismiss(); } }) .create(); mErrorDialog.show(); }*/
}
__________________________________---
package com.example.brsoft.retrofitdemo.restclient;
import android.content.Context;
import com.example.brsoft.retrofitdemo.DemoGetResponseModel;
import com.example.brsoft.retrofitdemo.DemoPostResponseModel;
import com.example.brsoft.retrofitdemo.DemoUploadPhotoModel;
import com.example.brsoft.retrofitdemo.retrofit.Rest;
import com.example.brsoft.retrofitdemo.retrofit.RestService;
import okhttp3.MultipartBody;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
/** * Created by ububtu on 13/7/16. */public class RestClient extends BaseRestClient {
ApiHitListener apiHitListener;
private Rest api;
private Object object;
public RestClient(Context _context) {
super(_context);
}
public RestClient callback(ApiHitListener apiHitListener) {
this.apiHitListener = apiHitListener;
return this;
}
private Rest getApi() {
if (api == null) {
api = RestService.getService();
}
return api;
}
public void PostProcess(String fname, String lname, String email, String password) {
Call<DemoPostResponseModel> call = getApi().PostProcess(fname, lname, email, password);
call.enqueue(new Callback<DemoPostResponseModel>() {
@Override public void onResponse(Call<DemoPostResponseModel> call, Response<DemoPostResponseModel> response) {
apiHitListener.onSuccessResponse(ApiIds.ID_POST_PROCESS, response.body());
}
@Override public void onFailure(Call<DemoPostResponseModel> call, Throwable t) {
apiHitListener.onFailResponse(ApiIds.ID_POST_PROCESS, t.getMessage());
}
});
}
public void GetProcess() {
Call<DemoGetResponseModel> call = getApi().GetProcess();
call.enqueue(new Callback<DemoGetResponseModel>() {
@Override public void onResponse(Call<DemoGetResponseModel> call, Response<DemoGetResponseModel> response) {
apiHitListener.onSuccessResponse(ApiIds.ID_GET_PROCESS, response.body());
}
@Override public void onFailure(Call<DemoGetResponseModel> call, Throwable t) {
apiHitListener.onFailResponse(ApiIds.ID_GET_PROCESS, t.getMessage());
}
});
}
public void uploadPhotoProcess(String email, String pass, MultipartBody.Part file) {
Call<DemoUploadPhotoModel> call = getApi().uploadPhotoProcess(AuthUtils.basic(email, pass), file);
call.enqueue(new Callback<DemoUploadPhotoModel>() {
@Override public void onResponse(Call<DemoUploadPhotoModel> call, Response<DemoUploadPhotoModel> response) {
apiHitListener.onSuccessResponse(ApiIds.ID_UPLOAD_IMAGE_PROCESS, response.body());
}
@Override public void onFailure(Call<DemoUploadPhotoModel> call, Throwable t) {
apiHitListener.onFailResponse(ApiIds.ID_UPLOAD_IMAGE_PROCESS, t.getMessage());
}
});
}
}
_____________________________________
package com.example.brsoft.retrofitdemo.restclient;
/** * Created by ubuntu on 6/10/16. */
import android.support.annotation.NonNull;
import java.io.File;
import java.util.HashMap;
import java.util.Iterator;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
/** * <p><b>Author: Kajal Mittal @ B.R. Softech<b></p>
* <p>Date: 29/7/16</p>
* <p>Time: 2:56 PM</p>
* <p>Project: Planbeep</p>
*/public class RetrofitUtils {
public static final String MEDIA_TYPE_MULTIPART_FORM_DATA_VALUE = "multipart/form-data";
public static final MediaType MEDIA_TYPE_MULTIPART_FORM_DATA = MediaType.parse(MEDIA_TYPE_MULTIPART_FORM_DATA_VALUE);
private static final String MEDIA_TYPE_ALL_VALUE = "image/*";
public static final MediaType MEDIA_TYPE_IMAGE_ALL = MediaType.parse(MEDIA_TYPE_ALL_VALUE);
private static final String MEDIA_TYPE_PNG_VALUE = "image/png";
public static final MediaType MEDIA_TYPE_IMAGE_PNG = MediaType.parse(MEDIA_TYPE_PNG_VALUE);
private static final String MEDIA_TYPE_JPG_VALUE = "image/jpg";
public static final MediaType MEDIA_TYPE_IMAGE_JPG = MediaType.parse(MEDIA_TYPE_JPG_VALUE);
private static final String MEDIA_TYPE_JPEG_VALUE = "image/jpeg";
public static final MediaType MEDIA_TYPE_IMAGE_JPEG = MediaType.parse(MEDIA_TYPE_JPEG_VALUE);
private static final String MEDIA_TYPE_TEXT_PLAIN_VALUE = "text/plain";
public static final MediaType MEDIA_TYPE_TEXT_PLAIN = MediaType.parse(MEDIA_TYPE_TEXT_PLAIN_VALUE);
// private static final String MEDIA_TYPE_UNKNOWN_VALUE = "application/octet-stream"; private static final String MEDIA_TYPE_UNKNOWN_VALUE = "audio/mp3";
// public static final MediaType MEDIA_TYPE_UNKNOWN = MediaType.parse(MEDIA_TYPE_UNKNOWN_VALUE); public static final MediaType MEDIA_TYPE_UNKNOWN = MediaType.parse(MEDIA_TYPE_UNKNOWN_VALUE);
private static final String MEDIA_TYPE_VIDEO_VALUE = "video/mp4";
public static final MediaType MEDIA_TYPE_VIDEO = MediaType.parse(MEDIA_TYPE_VIDEO_VALUE);
@NonNull public static RequestBody createPartFromString(String descriptionString) {
return RequestBody.create(MEDIA_TYPE_MULTIPART_FORM_DATA,
descriptionString != null ? descriptionString : "");
}
public static MultipartBody.Part createFilePart(String variableName, String filePath, MediaType mediaType) {
File file = new File(filePath);
// create RequestBody instance from file RequestBody requestFile =
RequestBody.create(mediaType, file);
// MultipartBody.Part is used to send also the actual file name return MultipartBody.Part.createFormData(variableName, file.getName(), requestFile);
}
public static HashMap<String, RequestBody> createMultipartRequest(HashMap<String, String> requestValuePairsMap) {
HashMap<String, RequestBody> requestMap = new HashMap<>();
Iterator iterator = requestValuePairsMap.keySet().iterator();
while (iterator.hasNext()) {
String key = (String) iterator.next();
String value = requestValuePairsMap.get(key);
requestMap.put(key, createPartFromString(value));
}
return requestMap;
}
}
________________________________________-
package com.example.brsoft.retrofitdemo.retrofit;
import com.example.brsoft.retrofitdemo.DemoGetResponseModel;
import com.example.brsoft.retrofitdemo.DemoPostResponseModel;
import com.example.brsoft.retrofitdemo.DemoUploadPhotoModel;
import okhttp3.MultipartBody;
import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
public interface Rest {
@FormUrlEncoded @POST("userlogin")
Call<DemoPostResponseModel> PostProcess(@Field("email") String email,
@Field("password") String password,
@Field("loginfrom") String loginfrom,
@Field("device_token") String device_token);
@GET("getcountry")
Call<DemoGetResponseModel> GetProcess();
@Multipart @POST("update_photo")
Call<DemoUploadPhotoModel> uploadPhotoProcess(@Header("Authorization") String authorization,
@Part MultipartBody.Part file);
}
__________________________________------
package com.example.brsoft.retrofitdemo.retrofit;
import android.util.Log;
import com.facebook.stetho.okhttp3.StethoInterceptor;
import java.util.concurrent.TimeUnit;
import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
/** * Created by Vishvendra.Singh@Brsoftech on 20/6/16. */public class RestService {
private static long CONNECTION_TIMEOUT = 100;
private static String API_URL = "http://192.168.1.253:81/bounzee/user/v1/";
public static Rest getService() {
OkHttpClient client = getOkHttpClient();
Rest restService = new Retrofit.Builder()
.baseUrl(API_URL)
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(Rest.class);
return restService;
}
private static OkHttpClient getOkHttpClient() {
OkHttpClient.Builder okClientBuilder = new OkHttpClient.Builder();
HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
@Override public void log(String message) {
Log.e("response", message);
}
});
httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
okClientBuilder.addInterceptor(httpLoggingInterceptor);
okClientBuilder.addNetworkInterceptor(new StethoInterceptor());
okClientBuilder.connectTimeout(CONNECTION_TIMEOUT, TimeUnit.SECONDS);
okClientBuilder.readTimeout(CONNECTION_TIMEOUT, TimeUnit.SECONDS);
okClientBuilder.writeTimeout(CONNECTION_TIMEOUT, TimeUnit.SECONDS);
return okClientBuilder.build();
}
}
_________________________________
package com.example.brsoft.retrofitdemo;
import android.Manifest;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.net.Uri;
import android.provider.MediaStore;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import com.example.brsoft.retrofitdemo.restclient.ApiHitListener;
import com.example.brsoft.retrofitdemo.restclient.ApiIds;
import com.example.brsoft.retrofitdemo.restclient.RestClient;
import com.example.brsoft.retrofitdemo.restclient.RetrofitUtils;
import java.io.IOException;
import java.util.ArrayList;
import gun0912.tedbottompicker.TedBottomPicker;
public class MainActivity extends AppCompatActivity implements View.OnClickListener,ApiHitListener {
Button btn_get,btn_post,btn_post_image;
private ProgressDialog mLoadingDialog;
private AlertDialog mErrorDialog;
RestClient restClient;
ImageView iv_profile;
private int reqCode;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
}
private void initViews() {
restClient=new RestClient(this);
btn_get=(Button)findViewById(R.id.btn_get);
btn_post=(Button)findViewById(R.id.btn_post);
btn_post_image=(Button)findViewById(R.id.btn_post_image);
btn_get.setOnClickListener(this);
btn_post.setOnClickListener(this);
btn_post_image.setOnClickListener(this);
iv_profile=(ImageView)findViewById(R.id.iv_profile);
}
@Override public void onClick(View v) {
switch (v.getId()){
case R.id.btn_get:
createGetRequest();
break;
case R.id.btn_post:
createPostRequest();
break;
case R.id.btn_post_image:
if (checkPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CAMERA,
Manifest.permission.READ_EXTERNAL_STORAGE}, 99)) {
pickImage();
}
break;
}
}
public void pickImage(){
TedBottomPicker tedBottomPicker = new TedBottomPicker.Builder(this)
.setOnImageSelectedListener(new TedBottomPicker.OnImageSelectedListener() {
@Override public void onImageSelected(Uri uri) {
// here is selected uri Log.e("path",""+uri.getEncodedPath());
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
iv_profile.setImageBitmap(bitmap);
uploadImageRequest(uri.getEncodedPath());
} catch (IOException e) {
e.printStackTrace();
}
}
})
.create();
tedBottomPicker.show(getSupportFragmentManager());
}
private void uploadImageRequest(String path) {
Utils.hideKeyboard(this);
if (Utils.isNetAvail(this)) {
displayLoadingDialog(true);
String email= "jasvant@gmail.com";
String password="123456";
restClient.callback(this).uploadPhotoProcess(email,password, RetrofitUtils.createFilePart("image",path, RetrofitUtils.MEDIA_TYPE_IMAGE_PNG));
} else {
displayErrorDialog("Error", "No internet available");
}
}
private void createPostRequest() {
Utils.hideKeyboard(this);
if (Utils.isNetAvail(this)) {
displayLoadingDialog(true);
restClient.callback(this).PostProcess("jasvant@gmail.com", "123456", "N", "jkhdfkjah");
} else {
displayErrorDialog("error", "network not available");
}
}
private void createGetRequest() {
Utils.hideKeyboard(this);
if (Utils.isNetAvail(this)) {
displayLoadingDialog(true);
restClient.callback(this).GetProcess();
} else {
displayErrorDialog("error", "network not available");
}
}
public boolean checkPermissions(String[] perms, int requestCode) {
this.reqCode = requestCode;
ArrayList<String> permsArray = new ArrayList<>();
boolean hasPerms = true;
for (String perm : perms) {
if (ContextCompat.checkSelfPermission(this, perm) != PackageManager.PERMISSION_GRANTED) {
permsArray.add(perm);
hasPerms = false;
}
}
if (!hasPerms) {
String[] permsString = new String[permsArray.size()];
for (int i = 0; i < permsArray.size(); i++) {
permsString[i] = permsArray.get(i);
}
ActivityCompat.requestPermissions(this, permsString, 99);
return false;
} else return true;
}
public void displayLoadingDialog(boolean isCancellable) {
mLoadingDialog = new ProgressDialog(this);
mLoadingDialog.setTitle("Loading");
mLoadingDialog.setMessage("please wait...");
mLoadingDialog.setIndeterminate(true);
mLoadingDialog.setCancelable(isCancellable);
mLoadingDialog.show();
}
public void dismissLoadingDialog() {
if (mLoadingDialog != null) {
mLoadingDialog.dismiss();
}
}
public void displayErrorDialog(String title, String content) {
mErrorDialog = new AlertDialog.Builder(this)
.setTitle(title)
.setMessage(content)
.setCancelable(false)
.setNegativeButton("dismiss", new DialogInterface.OnClickListener() {
@Override public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
})
.create();
mErrorDialog.show();
}
public void displayResponseDialog(String title, String content) {
mErrorDialog = new AlertDialog.Builder(this)
.setTitle(title)
.setMessage(content)
.setCancelable(false)
.setNegativeButton("dismiss", new DialogInterface.OnClickListener() {
@Override public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
})
.create();
mErrorDialog.show();
}
@Override public void onSuccessResponse(int apiId, Object response) {
dismissLoadingDialog();
if (apiId == ApiIds.ID_POST_PROCESS) {
DemoPostResponseModel Model = (DemoPostResponseModel) response;
if (Model.getCode() == 0) {
//successful response displayResponseDialog("Response :",Model.getData().getFirstname());
}else{
displayErrorDialog("Error",Model.getMessage());
}
}else if (apiId == ApiIds.ID_GET_PROCESS) {
DemoGetResponseModel Model = (DemoGetResponseModel) response;
if (Model.getCode() == 0) {
//successful response displayResponseDialog("Response :",Model.getData().get(1).getCountry());
}else{
displayErrorDialog("Error",Model.getMessage());
}
}else if (apiId == ApiIds.ID_UPLOAD_IMAGE_PROCESS) {
DemoUploadPhotoModel Model = (DemoUploadPhotoModel) response;
if (Model.getCode() == 0) {
//successful response displayResponseDialog("Response :",Model.getMessage());
}else{
displayErrorDialog("Error",Model.getMessage());
}
}
}
@Override public void onFailResponse(int apiId, String error) {
dismissLoadingDialog();
displayErrorDialog("Error", error);
}
}_____
______________________________________________________________
package com.example.brsoft.retrofitdemo;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AlertDialog;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
/** * Created by brsoft on 8/2/17. */
public class Utils {
public static synchronized void hideKeyboard(Activity activity) {
InputMethodManager imm = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
View view = activity.getCurrentFocus();
if (view == null) {
view = new View(activity);
}
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
public static boolean isNetAvail(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null)
for (int i = 0; i < info.length; i++)
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
return false;
}
}__________________________________________________________________
package com.example.brsoft.retrofitdemo;
/** * Created by brsoft on 6/1/17. */
public class DemoPostResponseModel {
/** * code : 0 * error : false * message : User SubmitProfileDetailsFragment * data : {"userid":"37","firstname":"pankaj ","email":"pankaj@gmail.com","phone":null,"status":"A","loginfrom":"N","dob":null,"gender":"M","image":""} */
private int code;
private boolean error;
private String message;
private Data data;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public boolean isError() {
return error;
}
public void setError(boolean error) {
this.error = error;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public Data getData() {
return data;
}
public void setData(Data data) {
this.data = data;
}
public static class Data {
/** * userid : 37 * firstname : pankaj * email : pankaj@gmail.com * phone : null * status : A * loginfrom : N * dob : null * gender : M * image : */
private String password;
private String userid;
private String firstname;
private String email;
private Object phone;
private String status;
private String loginfrom;
private Object dob;
private String gender;
private String image;
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Object getPhone() {
return phone;
}
public void setPhone(Object phone) {
this.phone = phone;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getLoginfrom() {
return loginfrom;
}
public void setLoginfrom(String loginfrom) {
this.loginfrom = loginfrom;
}
public Object getDob() {
return dob;
}
public void setDob(Object dob) {
this.dob = dob;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
}
}
___________________________________-
package com.example.brsoft.retrofitdemo;
/** * Created by brsoft on 6/1/17. */
public class DemoUploadPhotoModel {
/** * code : 0 * error : false * message : User SubmitProfileDetailsFragment successfully updated, User Data * data : {"id":"41","firstname":"suresh","lastname":null,"phone":"56465165","email":"vishnu@gmail.com","status":"A","loginfrom":"N","dob":"1988-02-20","gender":"M"} */
private int code;
private boolean error;
private String message;
private Data data;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public boolean isError() {
return error;
}
public void setError(boolean error) {
this.error = error;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public Data getData() {
return data;
}
public void setData(Data data) {
this.data = data;
}
public static class Data {
/** * id : 41 * firstname : suresh * lastname : null * phone : 56465165 * email : vishnu@gmail.com * status : A * loginfrom : N * dob : 1988-02-20 * gender : M */
private String id;
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
private String image;
private String firstname;
private Object lastname;
private String phone;
private String email;
private String status;
private String loginfrom;
private String dob;
private String gender;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public Object getLastname() {
return lastname;
}
public void setLastname(Object lastname) {
this.lastname = lastname;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getLoginfrom() {
return loginfrom;
}
public void setLoginfrom(String loginfrom) {
this.loginfrom = loginfrom;
}
public String getDob() {
return dob;
}
public void setDob(String dob) {
this.dob = dob;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
}
No comments:
Post a Comment