Post calls to enable/disable notifications for muted

This commit is contained in:
stom79 2017-12-17 13:04:17 +01:00
parent c332923aa7
commit 4ca6faaa6c
3 changed files with 14 additions and 8 deletions

View File

@ -16,6 +16,7 @@ package fr.gouv.etalab.mastodon.client;
import android.content.Context;
import android.content.SharedPreferences;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@ -741,15 +742,17 @@ public class API {
public int muteNotifications(String targetedId, boolean muteNotifications){
HashMap<String, String> params = new HashMap<>();
params.put("muting_notifications", Boolean.toString(muteNotifications));
params.put("notifications", Boolean.toString(muteNotifications));
try {
HttpsConnection httpsConnection = new HttpsConnection();
httpsConnection.post(getAbsoluteUrl(String.format("/accounts/%s/mute", targetedId)), 60, params, prefKeyOauthTokenT);
actionCode = httpsConnection.getActionCode();
} catch (HttpsConnection.HttpsConnectionException e) {
setError(e.getStatusCode(), e);
e.printStackTrace();
}catch (Exception e) {
setDefaultError();
e.printStackTrace();
}
return actionCode;
}
@ -1775,7 +1778,7 @@ public class API {
account.setNote(resobj.get("note").toString());
try{
account.setMoved_to_account(parseAccountResponse(context, resobj.getJSONObject("moved")));
}catch (Exception ignored){ignored.printStackTrace();}
}catch (Exception ignored){account.setMoved_to_account(null);}
account.setUrl(resobj.get("url").toString());
account.setAvatar(resobj.get("avatar").toString());
account.setAvatar_static(resobj.get("avatar_static").toString());

View File

@ -24,6 +24,7 @@ import android.support.design.widget.FloatingActionButton;
import android.support.v7.widget.RecyclerView;
import android.text.Html;
import android.text.util.Linkify;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -80,7 +81,7 @@ public class AccountsListAdapter extends RecyclerView.Adapter implements OnPostA
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position) {
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {
final AccountsListAdapter.ViewHolder holder = (AccountsListAdapter.ViewHolder) viewHolder;
final Account account = accounts.get(position);
@ -114,22 +115,24 @@ public class AccountsListAdapter extends RecyclerView.Adapter implements OnPostA
holder.account_follow.setVisibility(View.VISIBLE);
holder.account_follow_request.setVisibility(View.GONE);
}else if( account.getFollowType() == Account.followAction.MUTE){
if(account.isMuting_notifications())
holder.account_mute_notification.setImageResource(R.drawable.ic_notifications_active);
else
holder.account_mute_notification.setImageResource(R.drawable.ic_notifications_off);
holder.account_mute_notification.setVisibility(View.VISIBLE);
holder.account_follow.setImageResource(R.drawable.ic_volume_mute);
holder.account_follow.setImageResource(R.drawable.ic_volume_up);
doAction = API.StatusAction.UNMUTE;
holder.account_follow.setVisibility(View.VISIBLE);
holder.account_follow_request.setVisibility(View.GONE);
final int positionFinal = position;
holder.account_mute_notification.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
account.setMuting_notifications(!account.isMuting_notifications());
new PostActionAsyncTask(context, API.StatusAction.MUTE_NOTIFICATIONS, targetedId, account.isMuting_notifications(), AccountsListAdapter.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
accountsListAdapter.notifyItemChanged(position);
new PostActionAsyncTask(context, API.StatusAction.MUTE_NOTIFICATIONS, account.getId(), account.isMuting_notifications(), AccountsListAdapter.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
accountsListAdapter.notifyItemChanged(positionFinal);
}
});
}

View File

@ -224,8 +224,8 @@ public class DisplayAccountsFragment extends Fragment implements OnRetrieveAccou
account.setFollowType(Account.followAction.NOTHING);
continue;
}
account.setMuting_notifications(relationship.isMuting_notifications());
if( account.getId().equals(relationship.getId())){
account.setMuting_notifications(relationship.isMuting_notifications());
if( relationship.isFollowing())
account.setFollowType(Account.followAction.FOLLOW);
else