Working delete
This commit is contained in:
parent
b8551cbb13
commit
809616aefa
@ -82,6 +82,17 @@ public class GeofavoriteAdapter extends RecyclerView.Adapter<GeofavoriteAdapter.
|
|||||||
return geofavoriteListFiltered.get(position);
|
return geofavoriteListFiltered.get(position);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void removeById(int id) {
|
||||||
|
for (Geofavorite g : geofavoriteList) {
|
||||||
|
if (g.getId() == id) {
|
||||||
|
geofavoriteList.remove(g);
|
||||||
|
geofavoriteListFiltered.remove(g);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
|
||||||
public int getSortRule() {
|
public int getSortRule() {
|
||||||
return sortRule;
|
return sortRule;
|
||||||
}
|
}
|
||||||
|
@ -281,6 +281,15 @@ public class MainActivity extends AppCompatActivity implements MainView, OnSorti
|
|||||||
geofavoriteAdapter.setGeofavoriteList(geofavorite_list);
|
geofavoriteAdapter.setGeofavoriteList(geofavorite_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onGeofavoriteDeleted(int id) {
|
||||||
|
// Update list
|
||||||
|
runOnUiThread(() -> {
|
||||||
|
geofavoriteAdapter.removeById(id);
|
||||||
|
Toast.makeText(MainActivity.this, R.string.list_geofavorite_deleted, Toast.LENGTH_LONG).show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onErrorLoading(String message) {
|
public void onErrorLoading(String message) {
|
||||||
Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG).show();
|
Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG).show();
|
||||||
@ -320,12 +329,13 @@ public class MainActivity extends AppCompatActivity implements MainView, OnSorti
|
|||||||
|
|
||||||
private void showGeofavoriteDeteleDialog(Geofavorite item) {
|
private void showGeofavoriteDeteleDialog(Geofavorite item) {
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
||||||
builder.setMessage(R.string.dialog_delete_message)
|
builder.setMessage(getString(R.string.dialog_delete_message).replace("{name}", item.getName()))
|
||||||
.setTitle(getString(R.string.dialog_delete_title).replace("{name}", item.getName()))
|
.setTitle(R.string.dialog_delete_title)
|
||||||
.setPositiveButton(R.string.dialog_delete_delete, new DialogInterface.OnClickListener() {
|
.setPositiveButton(R.string.dialog_delete_delete, new DialogInterface.OnClickListener() {
|
||||||
public void onClick(DialogInterface dialog, int id) {
|
public void onClick(DialogInterface dialog, int id) {
|
||||||
presenter.deleteGeofavorite(item.getId());
|
presenter.deleteGeofavorite(item.getId());
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
|
// Callback is onGeofavoriteDeleted
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.setNegativeButton(R.string.dialog_delete_cancel, new DialogInterface.OnClickListener() {
|
.setNegativeButton(R.string.dialog_delete_cancel, new DialogInterface.OnClickListener() {
|
||||||
@ -333,7 +343,8 @@ public class MainActivity extends AppCompatActivity implements MainView, OnSorti
|
|||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
builder.create();
|
AlertDialog ad = builder.create();
|
||||||
|
ad.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showGeofavoriteDetailActivity(Geofavorite item) {
|
private void showGeofavoriteDetailActivity(Geofavorite item) {
|
||||||
|
@ -66,24 +66,18 @@ public class MainPresenter {
|
|||||||
|
|
||||||
public void deleteGeofavorite(int id) {
|
public void deleteGeofavorite(int id) {
|
||||||
view.showLoading();
|
view.showLoading();
|
||||||
Call<List<Geofavorite>> call = ApiProvider.getAPI().getGeofavorites();
|
Call<Geofavorite> call = ApiProvider.getAPI().deleteGeofavorite(id);
|
||||||
call.enqueue(new Callback<List<Geofavorite>>() {
|
call.enqueue(new Callback<Geofavorite>() {
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(@NonNull Call<List<Geofavorite>> call, @NonNull Response<List<Geofavorite>> response) {
|
public void onResponse(Call<Geofavorite> call, Response<Geofavorite> response) {
|
||||||
((AppCompatActivity) view).runOnUiThread(() -> {
|
|
||||||
view.hideLoading();
|
view.hideLoading();
|
||||||
if (response.isSuccessful() && response.body() != null) {
|
view.onGeofavoriteDeleted(id);
|
||||||
view.onGetResult(response.body());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(@NonNull Call<List<Geofavorite>> call, @NonNull Throwable t) {
|
public void onFailure(Call<Geofavorite> call, Throwable t) {
|
||||||
((AppCompatActivity) view).runOnUiThread(() -> {
|
|
||||||
view.hideLoading();
|
view.hideLoading();
|
||||||
view.onErrorLoading(t.getLocalizedMessage());
|
view.onErrorLoading(t.getLocalizedMessage());
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -28,5 +28,6 @@ public interface MainView {
|
|||||||
void showLoading();
|
void showLoading();
|
||||||
void hideLoading();
|
void hideLoading();
|
||||||
void onGetResult(List<Geofavorite> geofavorites);
|
void onGetResult(List<Geofavorite> geofavorites);
|
||||||
|
void onGeofavoriteDeleted(int id);
|
||||||
void onErrorLoading(String message);
|
void onErrorLoading(String message);
|
||||||
}
|
}
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
<string name="dialog_delete_message">You are about to delete geobookmark {name}. Proceed?</string>
|
<string name="dialog_delete_message">You are about to delete geobookmark {name}. Proceed?</string>
|
||||||
<string name="dialog_delete_delete">Delete</string>
|
<string name="dialog_delete_delete">Delete</string>
|
||||||
<string name="dialog_delete_cancel">Maintain</string>
|
<string name="dialog_delete_cancel">Maintain</string>
|
||||||
|
<string name="list_geofavorite_deleted">Geofavorite deleted</string>
|
||||||
|
|
||||||
<!-- Sort dialog -->
|
<!-- Sort dialog -->
|
||||||
<string name="sort_by">Sort by</string>
|
<string name="sort_by">Sort by</string>
|
||||||
|
Loading…
Reference in New Issue
Block a user