Post calls to enable/disable notifications for muted
This commit is contained in:
parent
c332923aa7
commit
4ca6faaa6c
|
@ -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());
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue