use of me.echeung.listenmoeapi.callbacks.RequestSongCallback in project android-app by LISTEN-moe.
the class SongActionsUtil method request.
/**
* Requests a song.
*
* @param song The song to request.
*/
public static void request(final Activity activity, final RecyclerView.Adapter adapter, final Song song) {
final int requests = App.getUserViewModel().getUser().getRequestsRemaining();
App.getApiClient().requestSong(String.valueOf(song.getId()), new RequestSongCallback() {
@Override
public void onSuccess() {
if (activity == null)
return;
activity.runOnUiThread(() -> {
adapter.notifyDataSetChanged();
// Broadcast event
final Intent reqEvent = new Intent(SongActionsUtil.REQUEST_EVENT);
activity.sendBroadcast(reqEvent);
// Instantly update remaining requests number to appear responsive
final int remainingRequests = requests - 1;
App.getUserViewModel().setRequestsRemaining(remainingRequests);
final String toastMsg = App.getPreferenceUtil().shouldShowRandomRequestTitle() ? activity.getString(R.string.requested_song, song.toString()) : activity.getString(R.string.requested_random_song);
Toast.makeText(activity.getApplicationContext(), toastMsg, Toast.LENGTH_LONG).show();
});
}
@Override
public void onFailure(final String message) {
if (activity == null)
return;
activity.runOnUiThread(() -> Toast.makeText(activity.getApplicationContext(), message, Toast.LENGTH_SHORT).show());
}
});
}
Aggregations