0% found this document useful (0 votes)
17 views

Script Java Pets

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

Script Java Pets

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 29

ApiClient.

java

package com.ksdcom.hewanku;

import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

/**
* Created by kiki supendi on 24/02/24.
*/

class ApiClient {
private static final String BASE_URL =
"http://20.20.20.12:8080/demo_pets/";
private static Retrofit retrofit;

static Retrofit getApiClient(){

if (retrofit==null){
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFac
tory.create())
.build();
}
return retrofit;
}
}

Pets.java

package com.ksdcom.hewanku;

import com.google.gson.annotations.SerializedName;

public class Pets {


@SerializedName("id")
private int id;
@SerializedName("name")
private String name;
@SerializedName("species")
private String species;
@SerializedName("breed")
private String breed;
@SerializedName("gender")
private int gender;
@SerializedName("birth")
private String birth;
@SerializedName("picture")
private String picture;
@SerializedName("love")
private Boolean love;
@SerializedName("value")
private String value;
@SerializedName("message")
private String massage;

public int getId() {


return id;
}

public void setId(int id) {


this.id = id;
}

public String getName() {


return name;
}

public void setName(String name) {


this.name = name;
}

public String getSpecies() {


return species;
}

public void setSpecies(String species) {


this.species = species;
}

public String getBreed() {


return breed;
}
public void setBreed(String breed) {
this.breed = breed;
}

public int getGender() {


return gender;
}

public void setGender(int gender) {


this.gender = gender;
}

public String getBirth() {


return birth;
}

public void setBirth(String birth) {


this.birth = birth;
}

public String getPicture() {


return picture;
}

public void setPicture(String picture) {


this.picture = picture;
}

public Boolean getLove() {


return love;
}

public void setLove(Boolean love) {


this.love = love;
}

public String getValue() {


return value;
}

public void setValue(String value) {


this.value = value;
}

public String getMassage() {


return massage;
}

public void setMassage(String massage) {


this.massage = massage;
}
}

Adapter.java

package com.ksdcom.hewanku;

import android.annotation.SuppressLint;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import
com.bumptech.glide.load.resource.drawable.DrawableTransit
ionOptions;
import com.bumptech.glide.request.RequestOptions;

import java.util.ArrayList;
import java.util.List;

import de.hdodenhof.circleimageview.CircleImageView;
public class Adapter extends
RecyclerView.Adapter<Adapter.MyViewHolder> implements
Filterable {
List<Pets> pets, petsFilter;
private Context context;
private RecyclerViewClickListener mListener;
CustomFilter filter;

public Adapter(List<Pets> pets, Context context,


RecyclerViewClickListener listener) {
this.pets = pets;
this.petsFilter = pets;
this.context = context;
this.mListener = listener;
}

@Override
public MyViewHolder onCreateViewHolder(ViewGroup
parent, int viewType) {
View view =
LayoutInflater.from(parent.getContext()).inflate(R.layout
.list_item, parent, false);
return new MyViewHolder(view, mListener);
}

@SuppressLint("CheckResult")
@Override
public void onBindViewHolder(final MyViewHolder
holder, int position) {
holder.mName.setText(pets.get(position).getName());

holder.mType.setText(pets.get(position).getBreed() + " /
"
+ pets.get(position).getSpecies());

holder.mDate.setText(pets.get(position).getBirth());

RequestOptions requestOptions = new


RequestOptions();
requestOptions.skipMemoryCache(true);
requestOptions.diskCacheStrategy(DiskCacheStrategy.NONE);
requestOptions.placeholder(R.drawable.logo);
requestOptions.error(R.drawable.logo);

Glide.with(context)
.load(pets.get(position).getPicture())
.apply(requestOptions)
.into(holder.mPicture);

final Boolean love =


pets.get(position).getLove();

if (love){
holder.mLove.setImageResource(R.drawable.likeon);
} else {
holder.mLove.setImageResource(R.drawable.likeof);
}
}

@Override
public int getItemCount() {
return pets.size();
}

@Override
public Filter getFilter() {
if (filter==null) {
filter=new CustomFilter((ArrayList<Pets>)
petsFilter,this);
}
return filter;
}

public class MyViewHolder extends


RecyclerView.ViewHolder implements View.OnClickListener {
private RecyclerViewClickListener mListener;
private CircleImageView mPicture;
private ImageView mLove;
private TextView mName, mType, mDate;
private RelativeLayout mRowContainer;
public MyViewHolder(View itemView,
RecyclerViewClickListener listener) {
super(itemView);
mPicture =
itemView.findViewById(R.id.picture);
mName = itemView.findViewById(R.id.name);
mType = itemView.findViewById(R.id.type);
mLove = itemView.findViewById(R.id.love);
mDate = itemView.findViewById(R.id.date);
mRowContainer =
itemView.findViewById(R.id.row_container);

mListener = listener;
mRowContainer.setOnClickListener(this);
mLove.setOnClickListener(this);
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.row_container:
mListener.onRowClick(mRowContainer,
getAdapterPosition());
break;
case R.id.love:
mListener.onLoveClick(mLove,
getAdapterPosition());
break;
default:
break;
}
}
}

public interface RecyclerViewClickListener {


void onRowClick(View view, int position);
void onLoveClick(View view, int position);
}
}
CostumFilter.java

package com.ksdcom.hewanku;

import android.widget.Filter;

import java.util.ArrayList;

public class CustomFilter extends Filter {


Adapter adapter;
ArrayList<Pets> filterList;

public CustomFilter(ArrayList<Pets>
filterList,Adapter adapter)
{
this.adapter=adapter;
this.filterList=filterList;
}

//FILTERING OCURS
@Override
protected FilterResults performFiltering(CharSequence
constraint) {
FilterResults results=new FilterResults();
//CHECK CONSTRAINT VALIDITY
if(constraint != null && constraint.length() > 0)
{
//CHANGE TO UPPER

constraint=constraint.toString().toUpperCase();
//STORE OUR FILTERED PLAYERS
ArrayList<Pets> filteredPets=new
ArrayList<>();

for (int i=0;i<filterList.size();i++)


{
//CHECK

if(filterList.get(i).getName().toUpperCase().contains(con
straint))
{
//ADD PLAYER TO FILTERED PLAYERS
filteredPets.add(filterList.get(i));
}
}
results.count=filteredPets.size();
results.values=filteredPets;
}else
{
results.count=filterList.size();
results.values=filterList;
}
return results;
}

@Override
protected void publishResults(CharSequence
constraint, FilterResults results) {
adapter.pets= (ArrayList<Pets>) results.values;
//REFRESH
adapter.notifyDataSetChanged();
}
}

MainActivity.java

package com.ksdcom.hewanku;

import android.app.SearchManager;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import
android.support.design.widget.FloatingActionButton;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.SearchView;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import java.util.List;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;

public class MainActivity extends AppCompatActivity{


private RecyclerView recyclerView;
private RecyclerView.LayoutManager layoutManager;
private Adapter adapter;
private List<Pets> petsList;
ApiInterface apiInterface;
Adapter.RecyclerViewClickListener listener;
ProgressBar progressBar;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

apiInterface =
ApiClient.getApiClient().create(ApiInterface.class);

progressBar = findViewById(R.id.progress);
recyclerView = findViewById(R.id.recyclerView);

layoutManager = new LinearLayoutManager(this);


recyclerView.setLayoutManager(layoutManager);

listener = new
Adapter.RecyclerViewClickListener() {
@Override
public void onRowClick(View view, final int
position) {
Intent intent = new
Intent(MainActivity.this, EditorActivity.class);
intent.putExtra("id",
petsList.get(position).getId());
intent.putExtra("name",
petsList.get(position).getName());
intent.putExtra("species",
petsList.get(position).getSpecies());
intent.putExtra("breed",
petsList.get(position).getBreed());
intent.putExtra("gender",
petsList.get(position).getGender());
intent.putExtra("picture",
petsList.get(position).getPicture());
intent.putExtra("birth",
petsList.get(position).getBirth());
startActivity(intent);
}

@Override
public void onLoveClick(View view, int
position) {
final int id =
petsList.get(position).getId();
final Boolean love =
petsList.get(position).getLove();
final ImageView mLove =
view.findViewById(R.id.love);

if (love){
mLove.setImageResource(R.drawable.likeof);

petsList.get(position).setLove(false);
updateLove("update_love", id, false);
adapter.notifyDataSetChanged();
} else {
mLove.setImageResource(R.drawable.likeon);
petsList.get(position).setLove(true);
updateLove("update_love", id, true);
adapter.notifyDataSetChanged();
}
}
};
FloatingActionButton fab =
findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view) {
startActivity(new
Intent(MainActivity.this, EditorActivity.class));
}
});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main, menu);

SearchManager searchManager = (SearchManager)


getSystemService(Context.SEARCH_SERVICE);
final SearchView searchView = (SearchView)
menu.findItem(R.id.action_search).getActionView();
MenuItem searchMenuItem =
menu.findItem(R.id.action_search);

searchView.setSearchableInfo(
searchManager.getSearchableInfo(getComponentName())
);
searchView.setQueryHint("Search Pet...");
searchView.setOnQueryTextListener(new
SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(final String
query) {
adapter.getFilter().filter(query);
return false;
}

@Override
public boolean onQueryTextChange(String
newText) {
adapter.getFilter().filter(newText);
return false;
}
});

searchMenuItem.getIcon().setVisible(false,
false);

return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();

if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}

public void getPets(){


Call<List<Pets>> call = apiInterface.getPets();
call.enqueue(new Callback<List<Pets>>() {
@Override
public void onResponse(Call<List<Pets>> call,
Response<List<Pets>> response) {
progressBar.setVisibility(View.GONE);
petsList = response.body();
Log.i(MainActivity.class.getSimpleName(),
response.body().toString());
adapter = new Adapter(petsList,
MainActivity.this, listener);
recyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
}

@Override
public void onFailure(Call<List<Pets>> call,
Throwable t) {
Toast.makeText(MainActivity.this, "rp :"+
t.getMessage().toString(),
Toast.LENGTH_SHORT).show();
}
});
}

public void updateLove(final String key, final int


id, final Boolean love){
Call<Pets> call = apiInterface.updateLove(key,
id, love);

call.enqueue(new Callback<Pets>() {
@Override
public void onResponse(Call<Pets> call,
Response<Pets> response) {
Log.i(MainActivity.class.getSimpleName(),
"Response "+response.toString());

String value =
response.body().getValue();
String message =
response.body().getMassage();

if (value.equals("1")){
Toast.makeText(MainActivity.this,
message, Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this,
message, Toast.LENGTH_SHORT).show();
}
}

@Override
public void onFailure(Call<Pets> call,
Throwable t) {
Toast.makeText(MainActivity.this,
t.getMessage().toString(), Toast.LENGTH_SHORT).show();
}
});
}

@Override
protected void onResume() {
super.onResume();
getPets();
}
}

EditorActivity.java

package com.ksdcom.hewanku;

import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.provider.MediaStore;
import
android.support.design.widget.FloatingActionButton;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Base64;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.RequestOptions;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;

import de.hdodenhof.circleimageview.CircleImageView;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;

public class EditorActivity extends AppCompatActivity {


private Spinner mGenderSpinner;
private EditText mName, mSpecies, mBreed, mBirth;
private CircleImageView mPicture;
private FloatingActionButton mFabChoosePic;

Calendar myCalendar = Calendar.getInstance();

private int mGender = 0;


public static final int GENDER_UNKNOWN = 0;
public static final int GENDER_MALE = 1;
public static final int GENDER_FEMALE = 2;

private String name, species, breed, picture, birth;


private int id, gender;

private Menu action;


private Bitmap bitmap;

private ApiInterface apiInterface;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_editor);

ActionBar actionBar = getSupportActionBar();


if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
}

mName = findViewById(R.id.name);
mSpecies = findViewById(R.id.species);
mBreed = findViewById(R.id.breed);
mBirth = findViewById(R.id.birth);
mPicture = findViewById(R.id.picture);
mFabChoosePic = findViewById(R.id.fabChoosePic);

mGenderSpinner = findViewById(R.id.gender);
mBirth = findViewById(R.id.birth);

mBirth.setFocusableInTouchMode(false);
mBirth.setFocusable(false);
mBirth.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
new DatePickerDialog(EditorActivity.this,
date, myCalendar
.get(Calendar.YEAR),
myCalendar.get(Calendar.MONTH),

myCalendar.get(Calendar.DAY_OF_MONTH)).show();
}
});

mFabChoosePic.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
chooseFile();
}
});

setupSpinner();

Intent intent = getIntent();


id = intent.getIntExtra("id", 0);
name = intent.getStringExtra("name");
species = intent.getStringExtra("species");
breed = intent.getStringExtra("breed");
birth = intent.getStringExtra("birth");
picture = intent.getStringExtra("picture");
gender = intent.getIntExtra("gender", 0);

setDataFromIntentExtra();
}

private void setDataFromIntentExtra() {


if (id != 0) {
readMode();
getSupportActionBar().setTitle("Edit " +
name.toString());

mName.setText(name);
mSpecies.setText(species);
mBreed.setText(breed);
mBirth.setText(birth);

RequestOptions requestOptions = new


RequestOptions();
requestOptions.skipMemoryCache(true);

requestOptions.diskCacheStrategy(DiskCacheStrategy.NONE);
requestOptions.placeholder(R.drawable.logo);
requestOptions.error(R.drawable.logo);

Glide.with(EditorActivity.this)
.load(picture)
.apply(requestOptions)
.into(mPicture);

switch (gender) {
case GENDER_MALE:
mGenderSpinner.setSelection(1);
break;
case GENDER_FEMALE:
mGenderSpinner.setSelection(2);
break;
default:
mGenderSpinner.setSelection(0);
break;
}
} else {
getSupportActionBar().setTitle("Add a Pet");
}
}

private void setupSpinner(){


ArrayAdapter genderSpinnerAdapter =
ArrayAdapter.createFromResource(this,
R.array.array_gender_options,
android.R.layout.simple_spinner_item);

genderSpinnerAdapter.setDropDownViewResource(android.R.la
yout.simple_dropdown_item_1line);
mGenderSpinner.setAdapter(genderSpinnerAdapter);

mGenderSpinner.setOnItemSelectedListener(new
AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?>
parent, View view, int position, long id) {
String selection = (String)
parent.getItemAtPosition(position);
if (!TextUtils.isEmpty(selection)) {
if
(selection.equals(getString(R.string.gender_male))) {
mGender = GENDER_MALE;
} else if
(selection.equals(getString(R.string.gender_female))) {
mGender = GENDER_FEMALE;
} else {
mGender = GENDER_UNKNOWN;
}
}
}
@Override
public void onNothingSelected(AdapterView<?>
parent) {
mGender = 0;
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_editor, menu);
action = menu;

action.findItem(R.id.menu_save).setVisible(false);

if (id == 0){

action.findItem(R.id.menu_edit).setVisible(false);

action.findItem(R.id.menu_delete).setVisible(false);

action.findItem(R.id.menu_save).setVisible(true);
}
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
this.finish();

return true;
case R.id.menu_edit:
//Edit
editMode();

InputMethodManager imm =
(InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(mName,
InputMethodManager.SHOW_IMPLICIT);

action.findItem(R.id.menu_edit).setVisible(false);

action.findItem(R.id.menu_delete).setVisible(false);

action.findItem(R.id.menu_save).setVisible(true);
return true;
case R.id.menu_save:
//Save
if (id == 0) {
if
(TextUtils.isEmpty(mName.getText().toString()) ||
TextUtils.isEmpty(mSpecies.getText().toString()) ||
TextUtils.isEmpty(mBreed.getText().toString()) ||
TextUtils.isEmpty(mBirth.getText().toString()) ){
AlertDialog.Builder alertDialog =
new AlertDialog.Builder(this);
alertDialog.setMessage("Please
complete the field!");

alertDialog.setPositiveButton("Ok", new
DialogInterface.OnClickListener() {
@Override
public void
onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
alertDialog.show();
}
else {
postData("insert");

action.findItem(R.id.menu_edit).setVisible(true);

action.findItem(R.id.menu_save).setVisible(false);

action.findItem(R.id.menu_delete).setVisible(true);

readMode();
}
} else {
updateData("update", id);

action.findItem(R.id.menu_edit).setVisible(true);
action.findItem(R.id.menu_save).setVisible(false);

action.findItem(R.id.menu_delete).setVisible(true);

readMode();
}

return true;
case R.id.menu_delete:
AlertDialog.Builder dialog = new
AlertDialog.Builder(EditorActivity.this);
dialog.setMessage("Delete this pet?");
dialog.setPositiveButton("Yes" ,new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface
dialog, int which) {
dialog.dismiss();
deleteData("delete", id,
picture);
}
});
dialog.setNegativeButton("Cencel", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface
dialog, int which) {
dialog.dismiss();
}
});
dialog.show();

return true;
default:
return super.onOptionsItemSelected(item);
}
}

DatePickerDialog.OnDateSetListener date = new


DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
myCalendar.set(Calendar.YEAR, year);
myCalendar.set(Calendar.MONTH, monthOfYear);
myCalendar.set(Calendar.DAY_OF_MONTH,
dayOfMonth);
setBirth();
}

};

private void setBirth() {


String myFormat = "dd MMMM yyyy"; //In which you
need put here
SimpleDateFormat sdf = new
SimpleDateFormat(myFormat, Locale.US);

mBirth.setText(sdf.format(myCalendar.getTime()));
}

public String getStringImage(Bitmap bmp){


ByteArrayOutputStream baos = new
ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100,
baos);
byte[] imageBytes = baos.toByteArray();
String encodedImage =
Base64.encodeToString(imageBytes, Base64.DEFAULT);
return encodedImage;
}

private void chooseFile() {


Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);

startActivityForResult(Intent.createChooser(intent,
"Select Picture"), 1);
}
@Override
protected void onActivityResult(int requestCode, int
resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode,
data);
if (requestCode == 1 && resultCode == RESULT_OK
&& data != null && data.getData() != null) {
Uri filePath = data.getData();
try {
bitmap =
MediaStore.Images.Media.getBitmap(getContentResolver(),
filePath);

mPicture.setImageBitmap(bitmap);

} catch (IOException e) {
e.printStackTrace();
}
}
}

private void postData(final String key) {


final ProgressDialog progressDialog = new
ProgressDialog(this);
progressDialog.setMessage("Saving...");
progressDialog.show();

readMode();

String name = mName.getText().toString().trim();


String species =
mSpecies.getText().toString().trim();
String breed =
mBreed.getText().toString().trim();
int gender = mGender;
String birth =
mBirth.getText().toString().trim();
String picture = null;
if (bitmap == null) {
picture = "";
} else {
picture = getStringImage(bitmap);
}

apiInterface =
ApiClient.getApiClient().create(ApiInterface.class);

Call<Pets> call = apiInterface.insertPet(key,


name, species, breed, gender, birth, picture);

call.enqueue(new Callback<Pets>() {
@Override
public void onResponse(Call<Pets> call,
Response<Pets> response) {
progressDialog.dismiss();

Log.i(EditorActivity.class.getSimpleName(),
response.toString());

String value =
response.body().getValue();
String message =
response.body().getMassage();

if (value.equals("1")){
finish();
} else {
Toast.makeText(EditorActivity.this,
message, Toast.LENGTH_SHORT).show();
}
}

@Override
public void onFailure(Call<Pets> call,
Throwable t) {
progressDialog.dismiss();
Toast.makeText(EditorActivity.this,
t.getMessage().toString(), Toast.LENGTH_SHORT).show();
}
});
}
private void updateData(final String key, final int
id) {
final ProgressDialog progressDialog = new
ProgressDialog(this);
progressDialog.setMessage("Updating...");
progressDialog.show();

readMode();

String name = mName.getText().toString().trim();


String species =
mSpecies.getText().toString().trim();
String breed =
mBreed.getText().toString().trim();
int gender = mGender;
String birth =
mBirth.getText().toString().trim();
String picture = null;
if (bitmap == null) {
picture = "";
} else {
picture = getStringImage(bitmap);
}

apiInterface =
ApiClient.getApiClient().create(ApiInterface.class);

Call<Pets> call = apiInterface.updatePet(key,


id,name, species, breed, gender, birth, picture);

call.enqueue(new Callback<Pets>() {
@Override
public void onResponse(Call<Pets> call,
Response<Pets> response) {

progressDialog.dismiss();

Log.i(EditorActivity.class.getSimpleName(),
response.toString());

String value =
response.body().getValue();
String message =
response.body().getMassage();

if (value.equals("1")){
Toast.makeText(EditorActivity.this,
message, Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(EditorActivity.this,
message, Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<Pets> call,
Throwable t) {
progressDialog.dismiss();
Toast.makeText(EditorActivity.this,
t.getMessage().toString(), Toast.LENGTH_SHORT).show();
}
});
}

private void deleteData(final String key, final int


id, final String pic) {
final ProgressDialog progressDialog = new
ProgressDialog(this);
progressDialog.setMessage("Deleting...");
progressDialog.show();

readMode();

apiInterface =
ApiClient.getApiClient().create(ApiInterface.class);

Call<Pets> call = apiInterface.deletePet(key, id,


pic);

call.enqueue(new Callback<Pets>() {
@Override
public void onResponse(Call<Pets> call,
Response<Pets> response) {
progressDialog.dismiss();
Log.i(EditorActivity.class.getSimpleName(),
response.toString());

String value =
response.body().getValue();
String message =
response.body().getMassage();

if (value.equals("1")){
Toast.makeText(EditorActivity.this,
message, Toast.LENGTH_SHORT).show();
finish();
} else {
Toast.makeText(EditorActivity.this,
message, Toast.LENGTH_SHORT).show();
}
}

@Override
public void onFailure(Call<Pets> call,
Throwable t) {
progressDialog.dismiss();
Toast.makeText(EditorActivity.this,
t.getMessage().toString(), Toast.LENGTH_SHORT).show();
}
});
}

@SuppressLint("RestrictedApi")
void readMode(){
mName.setFocusableInTouchMode(false);
mSpecies.setFocusableInTouchMode(false);
mBreed.setFocusableInTouchMode(false);
mName.setFocusable(false);
mSpecies.setFocusable(false);
mBreed.setFocusable(false);

mGenderSpinner.setEnabled(false);
mBirth.setEnabled(false);
mFabChoosePic.setVisibility(View.INVISIBLE);
}

@SuppressLint("RestrictedApi")
private void editMode(){
mName.setFocusableInTouchMode(true);
mSpecies.setFocusableInTouchMode(true);
mBreed.setFocusableInTouchMode(true);

mGenderSpinner.setEnabled(true);
mBirth.setEnabled(true);

mFabChoosePic.setVisibility(View.VISIBLE);
}
}

You might also like