From 9c9c7416d7b95484ec3805b30735e5573fb2ce99 Mon Sep 17 00:00:00 2001 From: tom79 Date: Fri, 28 Jun 2019 14:40:33 +0200 Subject: [PATCH] Warn when the account might not see the message. --- .../android/activities/TootActivity.java | 24 ++++++++++++++++++- .../java/app/fedilab/android/client/API.java | 6 +++++ .../android/client/Entities/Relationship.java | 9 +++++++ .../main/res/layout-sw600dp/activity_toot.xml | 12 +++++++++- app/src/main/res/layout/activity_toot.xml | 14 +++++++++-- app/src/main/res/values/strings.xml | 1 + 6 files changed, 62 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/activities/TootActivity.java b/app/src/main/java/app/fedilab/android/activities/TootActivity.java index 733db9dfc..cc57c6815 100644 --- a/app/src/main/java/app/fedilab/android/activities/TootActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/TootActivity.java @@ -136,6 +136,7 @@ import app.fedilab.android.asynctasks.PostActionAsyncTask; import app.fedilab.android.asynctasks.PostStatusAsyncTask; import app.fedilab.android.asynctasks.RetrieveAccountsForReplyAsyncTask; import app.fedilab.android.asynctasks.RetrieveEmojiAsyncTask; +import app.fedilab.android.asynctasks.RetrieveRelationshipAsyncTask; import app.fedilab.android.asynctasks.RetrieveSearchAccountsAsyncTask; import app.fedilab.android.asynctasks.RetrieveSearchAsyncTask; import app.fedilab.android.asynctasks.UpdateAccountInfoAsyncTask; @@ -150,6 +151,7 @@ import app.fedilab.android.client.Entities.Mention; import app.fedilab.android.client.Entities.Notification; import app.fedilab.android.client.Entities.Poll; import app.fedilab.android.client.Entities.PollOptions; +import app.fedilab.android.client.Entities.Relationship; import app.fedilab.android.client.Entities.Results; import app.fedilab.android.client.Entities.Status; import app.fedilab.android.client.Entities.StoredStatus; @@ -172,6 +174,7 @@ import app.fedilab.android.interfaces.OnPostStatusActionInterface; import app.fedilab.android.interfaces.OnRetrieveAccountsReplyInterface; import app.fedilab.android.interfaces.OnRetrieveAttachmentInterface; import app.fedilab.android.interfaces.OnRetrieveEmojiInterface; +import app.fedilab.android.interfaces.OnRetrieveRelationshipInterface; import app.fedilab.android.interfaces.OnRetrieveSearcAccountshInterface; import app.fedilab.android.interfaces.OnRetrieveSearchInterface; import app.fedilab.android.jobs.ScheduledTootsSyncJob; @@ -196,7 +199,7 @@ import static app.fedilab.android.helper.Helper.orbotConnected; * Toot activity class */ -public class TootActivity extends BaseActivity implements UploadStatusDelegate, OnPostActionInterface, OnRetrieveSearcAccountshInterface, OnPostStatusActionInterface, OnRetrieveSearchInterface, OnRetrieveAccountsReplyInterface, OnRetrieveEmojiInterface, OnDownloadInterface, OnRetrieveAttachmentInterface { +public class TootActivity extends BaseActivity implements UploadStatusDelegate, OnPostActionInterface, OnRetrieveSearcAccountshInterface, OnPostStatusActionInterface, OnRetrieveSearchInterface, OnRetrieveAccountsReplyInterface, OnRetrieveEmojiInterface, OnDownloadInterface, OnRetrieveAttachmentInterface, OnRetrieveRelationshipInterface { @@ -264,6 +267,7 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate, public static final int REQUEST_CAMERA_PERMISSION_RESULT = 1653; public static final int SEND_VOICE_MESSAGE = 1423; + private TextView warning_message; @Override protected void onCreate(Bundle savedInstanceState) { @@ -385,6 +389,7 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate, toot_sensitive = findViewById(R.id.toot_sensitive); drawer_layout = findViewById(R.id.drawer_layout); ImageButton toot_emoji = findViewById(R.id.toot_emoji); + warning_message = findViewById(R.id.warning_message); poll_action = findViewById(R.id.poll_action); isScheduled = false; if (sharedpreferences.getBoolean(Helper.SET_DISPLAY_EMOJI, true)) { @@ -461,6 +466,12 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate, } restored = b.getLong("restored", -1); } + if( tootReply != null){ + if( tootReply.getAccount().getMoved_to_account() != null){ + warning_message.setVisibility(View.VISIBLE); + } + new RetrieveRelationshipAsyncTask(getApplicationContext(), tootReply.getAccount().getId(),TootActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + } if (scheduledstatus != null) toot_it.setText(R.string.modify); if (restoredScheduled) { @@ -1244,6 +1255,17 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate, // your code here } + @Override + public void onRetrieveRelationship(Relationship relationship, Error error) { + if( error != null){ + return; + } + if( relationship.isBlocked_by() ){ + warning_message.setVisibility(View.VISIBLE); + } + + } + class asyncPicture extends AsyncTask { diff --git a/app/src/main/java/app/fedilab/android/client/API.java b/app/src/main/java/app/fedilab/android/client/API.java index 912425d29..274e24649 100644 --- a/app/src/main/java/app/fedilab/android/client/API.java +++ b/app/src/main/java/app/fedilab/android/client/API.java @@ -25,6 +25,7 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager; import com.google.gson.JsonArray; import com.google.gson.JsonObject; +import org.apache.poi.hssf.usermodel.HSSFHeader; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -5479,6 +5480,11 @@ public class API { }catch (Exception ignored){ relationship.setMuting_notifications(false); } + try { + relationship.setBlocked_by(resobj.getBoolean("blocked_by")); + }catch (Exception ignored){ + relationship.setBlocked_by(false); + } relationship.setRequested(Boolean.valueOf(resobj.get("requested").toString())); } catch (JSONException e) { setDefaultError(e); diff --git a/app/src/main/java/app/fedilab/android/client/Entities/Relationship.java b/app/src/main/java/app/fedilab/android/client/Entities/Relationship.java index 18f8c8efd..b57b7e472 100644 --- a/app/src/main/java/app/fedilab/android/client/Entities/Relationship.java +++ b/app/src/main/java/app/fedilab/android/client/Entities/Relationship.java @@ -30,6 +30,7 @@ public class Relationship { private boolean muting_notifications; private boolean endorsed; private boolean showing_reblogs; + private boolean blocked_by; public String getId() { @@ -103,4 +104,12 @@ public class Relationship { public void setShowing_reblogs(boolean showing_reblogs) { this.showing_reblogs = showing_reblogs; } + + public boolean isBlocked_by() { + return blocked_by; + } + + public void setBlocked_by(boolean blocked_by) { + this.blocked_by = blocked_by; + } } diff --git a/app/src/main/res/layout-sw600dp/activity_toot.xml b/app/src/main/res/layout-sw600dp/activity_toot.xml index 77df52d4f..d8f8e5c45 100644 --- a/app/src/main/res/layout-sw600dp/activity_toot.xml +++ b/app/src/main/res/layout-sw600dp/activity_toot.xml @@ -28,7 +28,17 @@ android:paddingTop="@dimen/fab_margin" android:paddingRight="@dimen/fab_margin" android:paddingBottom="@dimen/fab_margin"> - + - + - An error occurred when recording the voice message! Voice message Enable quick reply + The account you are replying might not see your message! %d vote %d votes