package
com.gtappdevelopers.gfg;
import
android.os.Bundle;
import
android.text.TextUtils;
import
android.util.Log;
import
android.view.View;
import
android.widget.Button;
import
android.widget.EditText;
import
android.widget.ProgressBar;
import
android.widget.TextView;
import
android.widget.Toast;
import
androidx.appcompat.app.AppCompatActivity;
import
retrofit2.Call;
import
retrofit2.Callback;
import
retrofit2.Response;
import
retrofit2.Retrofit;
import
retrofit2.converter.gson.GsonConverterFactory;
public
class
MainActivity
extends
AppCompatActivity {
private
EditText userNameEdt, jobEdt;
private
Button updateBtn;
private
ProgressBar loadingPB;
private
TextView responseTV;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
userNameEdt = findViewById(R.id.idEdtUserName);
jobEdt = findViewById(R.id.idEdtJob);
updateBtn = findViewById(R.id.idBtnUpdate);
loadingPB = findViewById(R.id.idPBLoading);
responseTV = findViewById(R.id.idTVResponse);
updateBtn.setOnClickListener(
new
View.OnClickListener() {
@Override
public
void
onClick(View v) {
if
(TextUtils.isEmpty(userNameEdt.getText().toString()) && TextUtils.isEmpty(jobEdt.getText().toString())) {
Toast.makeText(MainActivity.
this
,
"Please enter your data.."
, Toast.LENGTH_SHORT).show();
return
;
}
callPUTDataMethod(userNameEdt.getText().toString(), jobEdt.getText().toString());
}
});
}
private
void
callPUTDataMethod(String userName, String job) {
loadingPB.setVisibility(View.VISIBLE);
Retrofit retrofit =
new
Retrofit.Builder()
.baseUrl(url)
.addConverterFactory(GsonConverterFactory.create())
.build();
RetrofitAPI retrofitAPI = retrofit.create(RetrofitAPI.
class
);
DataModal modal =
new
DataModal(userName, job);
Call<DataModal> call = retrofitAPI.updateData(modal);
call.enqueue(
new
Callback<DataModal>() {
@Override
public
void
onResponse(Call<DataModal> call, Response<DataModal> response) {
Toast.makeText(MainActivity.
this
,
"Data updated to API"
, Toast.LENGTH_SHORT).show();
loadingPB.setVisibility(View.GONE);
jobEdt.setText(
""
);
userNameEdt.setText(
""
);
DataModal responseFromAPI = response.body();
String responseString =
"Response Code : "
+ response.code() +
"\nName : "
+ responseFromAPI.getName() +
"\n"
+
"Job : "
+ responseFromAPI.getJob();
responseTV.setText(responseString);
}
@Override
public
void
onFailure(Call<DataModal> call, Throwable t) {
responseTV.setText(
"Error found is : "
+ t.getMessage());
}
});
}
}