package org.mian.gitnex.actions; import android.app.Dialog; import android.content.Context; import android.util.Log; import android.view.View; import androidx.annotation.NonNull; import org.mian.gitnex.R; import org.mian.gitnex.adapters.LabelsListAdapter; import org.mian.gitnex.clients.RetrofitClient; import org.mian.gitnex.databinding.CustomLabelsSelectionDialogBinding; import org.mian.gitnex.helpers.Authorization; import org.mian.gitnex.helpers.Toasty; import org.mian.gitnex.models.Labels; import java.util.List; import retrofit2.Call; import retrofit2.Callback; /** * Author M M Arif */ public class LabelsActions { public static void getCurrentIssueLabels(Context ctx, String instanceUrl, String loginUid, String instanceToken, String repoOwner, String repoName, int issueIndex, List currentLabelsIds) { Call> callSingleIssueLabels = RetrofitClient .getInstance(instanceUrl, ctx) .getApiInterface() .getIssueLabels(Authorization.returnAuthentication(ctx, loginUid, instanceToken), repoOwner, repoName, issueIndex); callSingleIssueLabels.enqueue(new Callback>() { @Override public void onResponse(@NonNull Call> call, @NonNull retrofit2.Response> response) { if(response.code() == 200) { List issueLabelsList = response.body(); assert issueLabelsList != null; if(issueLabelsList.size() > 0) { for (int i = 0; i < issueLabelsList.size(); i++) { currentLabelsIds.add(issueLabelsList.get(i).getId()); } } } } @Override public void onFailure(@NonNull Call> call, @NonNull Throwable t) { Log.e("onFailure", t.toString()); } }); } public static void getRepositoryLabels(Context ctx, String instanceUrl, String instanceToken, String repoOwner, String repoName, List labelsList, Dialog dialogLabels, LabelsListAdapter labelsAdapter, CustomLabelsSelectionDialogBinding labelsBinding) { Call> call = RetrofitClient .getInstance(instanceUrl, ctx) .getApiInterface() .getlabels(instanceToken, repoOwner, repoName); call.enqueue(new Callback>() { @Override public void onResponse(@NonNull Call> call, @NonNull retrofit2.Response> response) { labelsList.clear(); List labelsList_ = response.body(); labelsBinding.progressBar.setVisibility(View.GONE); labelsBinding.dialogFrame.setVisibility(View.VISIBLE); if (response.code() == 200) { assert labelsList_ != null; if(labelsList_.size() > 0) { labelsList.addAll(labelsList_); } else { dialogLabels.dismiss(); Toasty.warning(ctx, ctx.getResources().getString(R.string.noLabelsFound)); } labelsBinding.labelsRecyclerView.setAdapter(labelsAdapter); } else { Toasty.error(ctx, ctx.getResources().getString(R.string.genericError)); } } @Override public void onFailure(@NonNull Call> call, @NonNull Throwable t) { Toasty.error(ctx, ctx.getResources().getString(R.string.genericServerResponseError)); } }); } }