API
API
package com.daizzyinfo.food18.retrofit;
import com.daizzyinfo.food18.utils.Constant;
import com.daizzyinfo.food18.viewModel.AddNewAddress.AddNewAddressResponse;
import com.daizzyinfo.food18.viewModel.ChangePasscode.ChangePasscodeResponse;
import com.daizzyinfo.food18.viewModel.CheckOut.CheckOutResponse;
import com.daizzyinfo.food18.viewModel.DeleteCartItem.DeleteCartItemResponse;
import com.daizzyinfo.food18.viewModel.ForgotPasssword.ForgotPasswordResponse;
import com.daizzyinfo.food18.viewModel.ProductDetails.ProductDetailsResponse;
import com.daizzyinfo.food18.viewModel.RemoveAddress.RemoveAddressResponse;
import com.daizzyinfo.food18.viewModel.SubCategory.SubCategoriesResponse;
import com.daizzyinfo.food18.viewModel.UpdateCartItem.UpdateCartItemResponse;
import com.daizzyinfo.food18.viewModel.UpdateProfile.UpdateProfileResponse;
import com.daizzyinfo.food18.viewModel.AddtoCart.AddToCartResponse;
import com.daizzyinfo.food18.viewModel.Categories.CatResponse;
import com.daizzyinfo.food18.viewModel.City.CityResponse;
import com.daizzyinfo.food18.viewModel.ProductList.ProductListResponse;
import com.daizzyinfo.food18.viewModel.SendOtp.CheckMobileResponse;
import com.daizzyinfo.food18.viewModel.SendOtp.SendOTPResponse;
import com.daizzyinfo.food18.viewModel.Sliders.HomeSlidersResponse;
import com.daizzyinfo.food18.viewModel.State.StateResponse;
import com.daizzyinfo.food18.viewModel.YourOrderList.YourOrderListResponse;
import com.daizzyinfo.food18.viewModel.bulkOrder.BulkOrderResponse;
import com.daizzyinfo.food18.viewModel.cartList.CartListResponse;
import com.daizzyinfo.food18.viewModel.getAddress.GetAddressResponse;
import com.daizzyinfo.food18.viewModel.loginWithPasscode.SignInResponse;
import com.daizzyinfo.food18.viewModel.productRating.ProductRatingResponse;
import com.daizzyinfo.food18.viewModel.setPasscode.SetPasscodeResponse;
import com.google.gson.JsonObject;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Headers;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Part;
import retrofit2.http.Query;
public interface ApiRequest {
// send Otp API
@GET("apiForOTP")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<SendOTPResponse> sendOtpAPI(@Query("mobile") String mobile);
//SIgnIn(LoginWithPasscode) API
@PUT("signin")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<SignInResponse> LoginWithPasscodeAPI(@Body JsonObject jsonObject);
// check mobile
@GET("validateMobile")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<CheckMobileResponse> CheckMobileNumberApi(@Query("mobile") String mobile);
// for Set Password
@POST("signup")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<SetPasscodeResponse> setPasscodeAPI(@Body JsonObject jsonObject);
// forgot password (for save password if mobile number already exists)
@PUT("forgotpassword")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<ForgotPasswordResponse> forgotPasswordAPI(@Header("Auth-Token") String Token ,@Body JsonObject jsonObject);
//addCartItem
@PUT("addTocart")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<AddToCartResponse> AddToCartAPI(@Header("Auth-Token") String Token ,@Body JsonObject jsonObject);
//updateCartItem
@PUT("updateCartItem")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<UpdateCartItemResponse> UpdateCartItemAPI(@Header("Auth-Token") String Token , @Body JsonObject jsonObject);
//deleteCartItem
@PUT("DeleteCartItem")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<DeleteCartItemResponse> deleteCartItemAPI(@Header("Auth-Token") String Token , @Body JsonObject jsonObject);
//checkout cart
@PUT("checkout")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<CheckOutResponse> checkOutAPI(@Header("Auth-Token") String Token , @Body JsonObject jsonObject);
//Add new Address
@PUT("addNewAddress")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<AddNewAddressResponse> addNewAddressAPI(@Header("Auth-Token") String Token,@Body JsonObject jsonObject);
//My Address Address
@PUT("getAddressList")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<GetAddressResponse> getAddressAPI(@Header("Auth-Token") String Token);
// Remove My Address Address..
@GET("deleteAddress")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<RemoveAddressResponse> getDeleteAddressAPI(@Query("id") String id);
//ChangePasscodeAPI..
@PUT("changePassword")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<ChangePasscodeResponse> ChangePasswordAPI(@Header("Auth-Token") String Token, @Body JsonObject jsonObject);
//updateProfile(MyAddress)..
@Multipart
@POST("updateProfile")
@Headers({"Accept: application/json , Content-Type: application/json" })
Call<UpdateProfileResponse> UpdateProfileAPI(@Header("Auth-Token") String Token,
@Part("full_name") RequestBody full_name,
@Part("mobile_number") RequestBody mobile_number,
@Part("email") RequestBody email,
@Part("state") RequestBody state,
@Part("city") RequestBody city,
@Part("pincode") RequestBody pincode,
@Part("address") RequestBody address,
@Part MultipartBody.Part image);
// @POST("updateProfile")
// @Headers({"Accept: application/json","Content-Type: application/json"})
// Call<UpdateProfileResponse> UpdateProfileAPI(@Header("Auth-Token")String Token ,@Body JsonObject jsonObject);
// SubCategories..
@GET("subcategory")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<SubCategoriesResponse> getSubCategoryAPI(@Query("category_id") String category_id);
//BulkOrder..
@PUT("bulkOrder")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<BulkOrderResponse> BulkOrder(@Header("Auth-Token") String Token, @Body JsonObject jsonObject);
//CartItemList
@PUT("cartItemList")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<CartListResponse> CartListAPI(@Header("Auth-Token") String Token);
//Product Details.
@PUT("productDetails")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<ProductDetailsResponse> productDetailsAPI(@Header("Auth-Token") String Token,@Body JsonObject jsonObject);
//Product Details.
@PUT("YoursOrderList")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<YourOrderListResponse> MYOrderListAPI(@Header("Auth-Token") String Token);
//Categories
@GET("category")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<CatResponse> getCatApi(@Header("Token") String Token);
@PUT("productslist")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<ProductListResponse> getProductsApi(@Header("Auth-Token") String Token);
@GET("Statelist")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<StateResponse> getStateApi(@Header("Token") String Token);
@GET("Citylist")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<CityResponse> getCityApi(@Query("state_id") String state_id);
//Home Slider API
@GET("homeSlider")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<HomeSlidersResponse> getHomeSliderApi(@Header("Auth-Token") String Token);
//Give ranking product
@PUT("giveRankToProduct")
@Headers({"Accept: application/json","Content-Type: application/json"})
Call<ProductRatingResponse> giveRatingAPI(@Header("Auth-Token") String Token,@Body JsonObject jsonObject);
}
package com.daizzyinfo.food18.activities;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.databinding.DataBindingUtil;
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.provider.MediaStore;
import android.text.TextUtils;
import android.util.Base64;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.bumptech.glide.Glide;
import com.daizzyinfo.food18.R;
import com.daizzyinfo.food18.databinding.ActivityCompleteYourProfileBinding;
import com.daizzyinfo.food18.retrofit.ApiRequest;
import com.daizzyinfo.food18.retrofit.RetrofitRequest;
import com.daizzyinfo.food18.utils.Constant;
import com.daizzyinfo.food18.utils.RealPathUtil;
import com.daizzyinfo.food18.viewModel.City.CityResponse;
import com.daizzyinfo.food18.viewModel.State.StateResponse;
import com.daizzyinfo.food18.viewModel.UpdateProfile.UpdateProfileResponse;
import org.checkerframework.checker.units.qual.C;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.UUID;
import okhttp3.Address;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.http.Part;
public class CompleteYourProfile extends AppCompatActivity {
ActivityCompleteYourProfileBinding binding;
public static String TAG = CompleteYourProfile.class.getSimpleName();
ArrayAdapter stateAdapter,cityAdapter;
List<String> stateList = new ArrayList<String>();
List<String> cityList = new ArrayList<String>();
String Name,Email,Mobile,City,State,PinCode,Address,image;
private static final int REQUEST_IMAGE_CAPTURE = 0;
private static final int REQUEST_ID_MULTIPLE_PERMISSIONS = 123; //
private static final int REQUEST_IMAGE_FROM_GALLERY = 1;
private final int PICK_IMAGE_CAMERA = 1, PICK_IMAGE_GALLERY = 2;
String path;
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = DataBindingUtil.setContentView(this, R.layout.activity_complete_your_profile);
openToolBar();
//StateApiCalling
initViews();
stateApi();
initOnClickListener();
}
private void initViews() {
// City List
cityList.add("Select City");
cityAdapter = new ArrayAdapter(this, com.bumptech.glide.R.layout.support_simple_spinner_dropdown_item,cityList);
binding.SpnCity.setAdapter(cityAdapter);
// State list
// stateList.add("Select State");
// stateAdapter = new ArrayAdapter<>(this, com.google.android.material.R.layout.support_simple_spinner_dropdown_item,stateList);
// binding.SpnState.setAdapter(stateAdapter);
}
private void cityApi(String state_id) {
cityList.clear();
cityList.add("Select City");
cityAdapter = new ArrayAdapter(this, com.bumptech.glide.R.layout.support_simple_spinner_dropdown_item,cityList);
binding.SpnCity.setAdapter(cityAdapter);
ApiRequest apiRequest = RetrofitRequest.getRetrofit().create(ApiRequest.class);
Call<CityResponse> call = apiRequest.getCityApi(state_id);
call.enqueue(new Callback<CityResponse>() {
@Override
public void onResponse(Call<CityResponse> call, Response<CityResponse> response) {
Log.e("CompleteYourProfile","On Response --"+response.body().getData().get(0));
CityResponse response1 = response.body();
if(response.code()==200){
for(int i = 0 ; i < response.body().getData().size(); i++)
{
cityList.add(response1.getData().get(i).getName());
}
cityAdapter.notifyDataSetChanged();
} else if (response.code()== 401) {
Toast.makeText(CompleteYourProfile.this, "Not Found", Toast.LENGTH_SHORT).show();
}else if (response.code()==400){
Toast.makeText(CompleteYourProfile.this, "Unauthorized", Toast.LENGTH_SHORT).show();
} else if (response.code()==500) {
Toast.makeText(CompleteYourProfile.this, "Internal server Error", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<CityResponse> call, Throwable t) {
Toast.makeText(CompleteYourProfile.this, "Something Went Wrong", Toast.LENGTH_SHORT).show();
Log.e(TAG,"onFailure : " + t.getMessage().toString());
}
});
}
private void stateApi() {
stateList.clear();
stateList.add("Select State");
stateAdapter = new ArrayAdapter<>(this, com.google.android.material.R.layout.support_simple_spinner_dropdown_item,stateList);
binding.SpnState.setAdapter(stateAdapter);
ApiRequest apiRequest = RetrofitRequest.getRetrofit().create(ApiRequest.class);
Call<StateResponse> call = apiRequest.getStateApi(Constant.getToken());
call.enqueue(new Callback<StateResponse>() {
@Override
public void onResponse(Call<StateResponse> call, Response<StateResponse> response) {
if(response.body()!=null){
Log.e("CompleteYourProfile", "CompleteYourProfile onResponse " + response.body().getData().get(0).getName());
Log.e("CompleteYourProfile", "CompleteYourProfile onResponse " + response.body().getData().get(0).getId());
StateResponse response1 = response.body();
if (response.code() == 200) {
for (int i = 0; i < response.body().getData().size(); i++) {
stateList.add(response.body().getData().get(i).getName());
}
} else if (response.code() == 401) {
Toast.makeText(CompleteYourProfile.this, "On Failure ", Toast.LENGTH_SHORT).show();
} else if (response.code() == 404) {
Toast.makeText(CompleteYourProfile.this, " Unauthorized", Toast.LENGTH_SHORT).show();
} else if (response.code() == 500) {
Toast.makeText(CompleteYourProfile.this, "Internal Server Error", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(CompleteYourProfile.this, "Data not found ", Toast.LENGTH_SHORT).show();
}
}else {
Toast.makeText(CompleteYourProfile.this, "Something went wrong", Toast.LENGTH_SHORT).show();
}
stateAdapter.notifyDataSetChanged();
binding.SpnState.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (position > 0) {
String selectedStateId = String.valueOf(response.body().getData().get(position - 1).getId());
cityApi(selectedStateId);
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
@Override
public void onFailure(Call<StateResponse> call, Throwable t) {
Toast.makeText(CompleteYourProfile.this, "on Failure", Toast.LENGTH_SHORT).show();
Log.e("CompleteYourProfile", "onFailure" + t.getMessage().toString());
}
});
}
private void initOnClickListener(){
binding.SubmitBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
collectDataFromUI();
}
});
binding.imgCamera.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chooseImage();
}
});
}
private void chooseImage() {
if (ContextCompat.checkSelfPermission(getApplicationContext(),
Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission(getApplicationContext(),
Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {
showImageSelectionDialog();
} else {
ActivityCompat.requestPermissions(CompleteYourProfile.this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA},
REQUEST_ID_MULTIPLE_PERMISSIONS);
}
}
private void showImageSelectionDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Select Image");
String[] options = {"Camera", "Gallery"};
builder.setItems(options, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0: // Camera
checkCameraPermission();
break;
case 1: // Gallery
checkGalleryPermission();
break;
}
}
});
builder.show();
}
private void checkCameraPermission() {
if (ContextCompat.checkSelfPermission(getApplicationContext(),
Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {
openCamera();
} else {
ActivityCompat.requestPermissions(CompleteYourProfile.this,
new String[]{Manifest.permission.CAMERA}, REQUEST_IMAGE_CAPTURE);
}
}
private void checkGalleryPermission() {
if (ContextCompat.checkSelfPermission(getApplicationContext(),
Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
openGallery();
} else {
ActivityCompat.requestPermissions(CompleteYourProfile.this,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_IMAGE_FROM_GALLERY);
}
}
private void openCamera() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(intent, PICK_IMAGE_CAMERA);
} else {
Toast.makeText(this, "Camera app not found.", Toast.LENGTH_SHORT).show();
}
}
private void openGallery() {
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, PICK_IMAGE_GALLERY);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_CAMERA && resultCode == Activity.RESULT_OK) {
if (data != null && data.getExtras() != null) {
Bitmap imageBitmap = (Bitmap) data.getExtras().get("data");
if (imageBitmap != null) {
binding.imgMan.setImageBitmap(imageBitmap);
path = saveImageToInternalStorage(imageBitmap);
} else {
Toast.makeText(this, "Error while capturing image from camera.", Toast.LENGTH_SHORT).show();
}
}
} else if (requestCode == PICK_IMAGE_GALLERY && resultCode == Activity.RESULT_OK) {
if (data != null && data.getData() != null) {
Uri selectedImageUri = data.getData();
path = RealPathUtil.getRealPath(CompleteYourProfile.this, selectedImageUri);
if (path != null) {
Bitmap bitmap = BitmapFactory.decodeFile(path);
if (bitmap != null) {
binding.imgMan.setImageBitmap(bitmap);
} else {
Toast.makeText(this, "Error while retrieving image from gallery.", Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(this, "Error while retrieving image path from gallery.", Toast.LENGTH_SHORT).show();
}
}
}
}
private String saveImageToInternalStorage(Bitmap bitmapImage) {
Context context = getApplicationContext();
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date());
String imageFileName = "JPEG_" + timeStamp + "_";
File storageDir = context.getFilesDir();
File imageFile;
try {
imageFile = File.createTempFile(imageFileName, ".jpg", storageDir);
FileOutputStream outputStream = new FileOutputStream(imageFile);
bitmapImage.compress(Bitmap.CompressFormat.JPEG, 100, outputStream);
outputStream.flush();
outputStream.close();
return imageFile.getAbsolutePath();
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
private void collectDataFromUI() {
Name = binding.edFullname.getText().toString();
Email = binding.edMail.getText().toString();
Mobile = binding.edMobile.getText().toString();
City = binding.SpnCity.getSelectedItem().toString();
State = binding.SpnState.getSelectedItem().toString();
PinCode =binding.edPinCode.getText().toString();
Address = binding.edAddress.getText().toString();
if (TextUtils.isEmpty(Name)) {
Toast.makeText(this, "Please enter your name", Toast.LENGTH_SHORT).show();
}else if (TextUtils.isEmpty(Email)) {
Toast.makeText(this, "Please enter your email", Toast.LENGTH_SHORT).show();
}else if (TextUtils.isEmpty(Mobile) && Mobile.length()!=10) {
Toast.makeText(this, "Please enter your mobile number", Toast.LENGTH_SHORT).show();
}else if (State.equals("Select State")) {
Toast.makeText(this, "Please select a state", Toast.LENGTH_SHORT).show();
}else if (City.equals("Select City")) {
Toast.makeText(this, "Please select a city", Toast.LENGTH_SHORT).show();
}
else if (TextUtils.isEmpty(PinCode)) {
Toast.makeText(this, "Please enter your Pincode ", Toast.LENGTH_SHORT).show();
}else if (TextUtils.isEmpty(Address)) {
Toast.makeText(this, "Please enter your address", Toast.LENGTH_SHORT).show();
}else if (TextUtils.isEmpty(path)) {
Toast.makeText(this, "Please select an image", Toast.LENGTH_SHORT).show();
}
else {
SharedPreferences sharedPreferences = getSharedPreferences(Constant.MY_PREF_NAME,MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("Name",Name);
editor.putString("Email",Email);
editor.putString("UserImage",path);
editor.apply();
editor.commit();
updateProfile();
}
initSet();
}
private void updateProfile() {
Log.e(TAG, "All Values - "
+ "Token - " + Constant.getToken() +
"\nName - " + Name + "\n" + "Mobile - " + Mobile + "\n" + "Email -" + Email + "\n"+ "State - " + State + "\n" + "City - " + City
+ "\n"+ "PinCode - "+PinCode + "\n" + "Address - " + Address + "\n" + "picturePath - " + path );
ApiRequest apiRequest = RetrofitRequest.getRetrofit().create(ApiRequest.class);
RequestBody name = RequestBody.create(MediaType.parse("text/plain"), Name);
RequestBody mobile = RequestBody.create(MediaType.parse("text/plain"), Mobile);
RequestBody email = RequestBody.create(MediaType.parse("text/plain"), Email);
RequestBody state = RequestBody.create(MediaType.parse("text/plain"), State);
RequestBody city = RequestBody.create(MediaType.parse("text/plain"),City);
RequestBody pincode = RequestBody.create(MediaType.parse("text/plain"), PinCode);
RequestBody address = RequestBody.create(MediaType.parse("text/plain"),Address);
File file = new File(path);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
MultipartBody.Part body = MultipartBody.Part.createFormData("image", file.getName(), requestFile);
Call<UpdateProfileResponse> call = apiRequest.UpdateProfileAPI(Constant.getToken(),name,mobile,email,state,city,pincode,address,body);
call.enqueue(new Callback<UpdateProfileResponse>() {
@Override
public void onResponse(Call<UpdateProfileResponse> call, Response<UpdateProfileResponse> response) {
if(response.body()!=null)
{
Log.e(TAG,"on response update profile code -"+response.code());
if(response.code()==200)
{
boolean status = response.body().getStatus();
String message = response.body().getMessage();
if(status)
{
binding.spinKit.setVisibility(View.VISIBLE);
binding.SubmitBtn.setVisibility(View.GONE);
Intent intent = new Intent(CompleteYourProfile.this, Setting.class);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
startActivity(intent);
finishAffinity();
}
},1000);
}else {
binding.spinKit.setVisibility(View.GONE);
binding.SubmitBtn.setVisibility(View.VISIBLE);
}
Toast.makeText(CompleteYourProfile.this, message, Toast.LENGTH_SHORT).show();
} else if (response.code() == 401) {
Toast.makeText(CompleteYourProfile.this, " Unauthorized", Toast.LENGTH_SHORT).show();
} else if (response.code() == 404) {
Toast.makeText(CompleteYourProfile.this, "Data not found ", Toast.LENGTH_SHORT).show();
} else if (response.code() == 500) {
Toast.makeText(CompleteYourProfile.this, "Internal Server Error", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(CompleteYourProfile.this, "something went wrong", Toast.LENGTH_SHORT).show();
}
}
else {
Toast.makeText(CompleteYourProfile.this, "something went wrong", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<UpdateProfileResponse> call, Throwable t) {
Toast.makeText(CompleteYourProfile.this, "something went wrong", Toast.LENGTH_SHORT).show();
Log.e(TAG,"on failure update profile -"+t.getMessage());
}
});
}
private void openToolBar(){
View view = findViewById(R.id.txtComplete);
TextView TxtHeader =view.findViewById(R.id.TxtHeader);
TxtHeader.setText("Complete your profile");
ImageView ImgBack=view.findViewById(R.id.ImgBack);
ImgBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
@Override
protected void onResume() {
binding.spinKit.setVisibility(View.GONE);
binding.SubmitBtn.setVisibility(View.VISIBLE);
super.onResume();
}
private void initSet() {
// Get the SharedPreferences instance
SharedPreferences sharedPreferences = getSharedPreferences(Constant.MY_PREF_NAME, MODE_PRIVATE);
String imagePath = sharedPreferences.getString("UserImage", "");
// Now you can use the retrieved values as needed. For example, you can set them to views:
String url =imagePath;
Glide
.with(getApplicationContext())
.load(url)
.centerCrop()
.placeholder(R.drawable.man)
.into(binding.imgMan);
}
}
//
// private void chooseImage() {
// if (ContextCompat.checkSelfPermission(getApplicationContext(),
// Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
// Intent intent = new Intent();
// intent.setType("image/*");
// intent.setAction(Intent.ACTION_GET_CONTENT);
// startActivityForResult(intent, 10);
// } else {
// ActivityCompat.requestPermissions(CompleteYourProfile.this,
// new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
// }
// }
//
// @Override
// protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
// super.onActivityResult(requestCode, resultCode, data);
// if (requestCode == 10 && resultCode == Activity.RESULT_OK) {
// Uri uri = data.getData();
// Context context = CompleteYourProfile.this;
// path = RealPathUtil.getRealPath(context, uri);
// Bitmap bitmap = BitmapFactory.decodeFile(path);
// binding.imgMan.setImageBitmap(bitmap);
//
// }
// }
// private void checkStoragePermission() {
// if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED ||
// ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
// ActivityCompat.requestPermissions(this,
// new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE},
// REQUEST_ID_MULTIPLE_PERMISSIONS);
// } else {
// // If permission already granted, proceed with image selection
// selectImage();
// }
// }
// private void checkCameraPermission() {
// if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA)
// != PackageManager.PERMISSION_GRANTED) {
// ActivityCompat.requestPermissions(this,
// new String[]{(Manifest.permission.CAMERA)},
// REQUEST_PERMISSION);
// }
// }
// private void selectImage() {
// try {
// PackageManager pm = getPackageManager();
// int hasPerm = pm.checkPermission(Manifest.permission.CAMERA, getPackageName());
// if (hasPerm == PackageManager.PERMISSION_GRANTED) {
// final CharSequence[] options = {"Take Photo", "Choose From Gallery","Cancel"};
// AlertDialog.Builder builder = new AlertDialog.Builder(CompleteYourProfile.this);
// builder.setTitle("Select Option");
// builder.setItems(options, (dialog, item) -> {
// if (options[item].equals("Take Photo")) {
// dialog.dismiss();
// Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// startActivityForResult(intent, PICK_IMAGE_CAMERA);
// } else if (options[item].equals("Choose From Gallery")) {
// dialog.dismiss();
// Intent pickPhoto = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
// startActivityForResult(pickPhoto, PICK_IMAGE_GALLERY);
// } else if (options[item].equals("Cancel")) {
// dialog.dismiss();
// }
// });
// builder.show();
// } else
// Toast.makeText(this, "Camera Permission error", Toast.LENGTH_SHORT).show();
//
// } catch (Exception e) {
// Toast.makeText(this, "Camera Permission error", Toast.LENGTH_SHORT).show();
//
// e.printStackTrace();
// }
// }
// @Override
// public void onActivityResult(int requestCode, int resultCode, Intent data) {
// super.onActivityResult(requestCode, resultCode, data);
// inputStreamImg = null;
//
// if (requestCode == PICK_IMAGE_CAMERA && resultCode == RESULT_OK) {
// try {
// bitmap = (Bitmap) data.getExtras().get("data");
// ByteArrayOutputStream bytes = new ByteArrayOutputStream();
// bitmap.compress(Bitmap.CompressFormat.JPEG, 50, bytes);
//
// Log.e(TAG, "Pick from Camera::>>> ");
//
// String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date());
// destination = new File(Environment.getExternalStorageDirectory() + "/" +
// getString(R.string.app_name), "IMG_" + timeStamp + ".jpg");
// FileOutputStream fo;
// try {
// destination.createNewFile();
// fo = new FileOutputStream(destination);
// fo.write(bytes.toByteArray());
// fo.close();
// } catch (FileNotFoundException e) {
// e.printStackTrace();
// } catch (IOException e) {
// e.printStackTrace();
// }
//
// imgPath = destination.getAbsolutePath();
// binding.imgMan.setImageBitmap(bitmap);
//
// RequestBody requestFile = RequestBody.create(MediaType.parse("image/*"), destination);
// imagenPerfil = MultipartBody.Part.createFormData("image", destination.getName(), requestFile);
//
// } catch (Exception e) {
// e.printStackTrace();
// }
// } else if (requestCode == PICK_IMAGE_GALLERY && resultCode == RESULT_OK) {
// Uri selectedImage = data.getData();
// try {
// bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImage);
// ByteArrayOutputStream bytes = new ByteArrayOutputStream();
// bitmap.compress(Bitmap.CompressFormat.JPEG, 50, bytes);
// Log.e(TAG, "Pick from Gallery::>>> ");
//
// imgPath = getRealPathFromURI(selectedImage);
// destination = new File(imgPath.toString());
// RequestBody requestFile = RequestBody.create(MediaType.parse("image/*"), destination);
// imagenPerfil = MultipartBody.Part.createFormData("image", destination.getName(), requestFile);
// binding.imgMan.setImageBitmap(bitmap);
//
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
// }
// public String getRealPathFromURI(Uri contentUri) {
// String[] proj = {MediaStore.Audio.Media.DATA};
// Cursor cursor = managedQuery(contentUri, proj, null, null, null);
// int column_index = cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA);
// cursor.moveToFirst();
// return cursor.getString(column_index);
// }
//
Comments
Post a Comment