summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas <tschneider.ac@gmail.com>2023-12-19 17:12:02 +0100
committerThomas <tschneider.ac@gmail.com>2023-12-19 17:12:02 +0100
commit520a36946a9c388c6a14a5b9c5e65a4fa94efd40 (patch)
treed5f1b2b0d62e7e12ddf41ee988e0bb207d71f517
parentace3dc089e69d938f798494ca4a7d2d630c79c35 (diff)
Fix #1005 - Avoid duplicate tags when following
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/activities/FollowedTagActivity.java8
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Tag.java6
-rw-r--r--app/src/main/res/values/strings.xml1
3 files changed, 14 insertions, 1 deletions
diff --git a/app/src/main/java/app/fedilab/android/mastodon/activities/FollowedTagActivity.java b/app/src/main/java/app/fedilab/android/mastodon/activities/FollowedTagActivity.java
index 5526cece3..e7492f05e 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/activities/FollowedTagActivity.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/activities/FollowedTagActivity.java
@@ -32,6 +32,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import java.util.ArrayList;
+import java.util.Objects;
import app.fedilab.android.BaseMainActivity;
import app.fedilab.android.R;
@@ -145,6 +146,11 @@ public class FollowedTagActivity extends BaseBarActivity implements FollowedTagA
dialogBuilder.setView(popupAddFollowedTagtBinding.getRoot());
popupAddFollowedTagtBinding.addTag.setFilters(new InputFilter[]{new InputFilter.LengthFilter(255)});
dialogBuilder.setPositiveButton(R.string.validate, (dialog, id) -> {
+ String name = Objects.requireNonNull(popupAddFollowedTagtBinding.addTag.getText()).toString().trim();
+ if(tagList.contains(new Tag(name))) {
+ Toasty.error(FollowedTagActivity.this, getString(R.string.tag_already_followed), Toasty.LENGTH_LONG).show();
+ return;
+ }
if (popupAddFollowedTagtBinding.addTag.getText() != null && popupAddFollowedTagtBinding.addTag.getText().toString().trim().length() > 0) {
tagVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, popupAddFollowedTagtBinding.addTag.getText().toString().trim())
.observe(FollowedTagActivity.this, newTag -> {
@@ -162,7 +168,7 @@ public class FollowedTagActivity extends BaseBarActivity implements FollowedTagA
tagList.add(0, newTag);
followedTagAdapter.notifyItemInserted(0);
} else {
- Toasty.error(FollowedTagActivity.this, getString(R.string.toast_feature_not_supported), Toasty.LENGTH_LONG).show();
+ Toasty.error(FollowedTagActivity.this, getString(R.string.not_valid_tag_name), Toasty.LENGTH_LONG).show();
}
});
dialog.dismiss();
diff --git a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Tag.java b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Tag.java
index a1b9b1b3d..5b2a5bbec 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Tag.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Tag.java
@@ -32,6 +32,12 @@ public class Tag implements Serializable {
@SerializedName("following")
public boolean following = false;
+ public Tag() {}
+
+ public Tag(String name) {
+ this.name = name;
+ }
+
public int getWeight() {
int weight = 0;
if (history != null && history.size() > 0) {
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index fddef11c4..fc6d95008 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -28,6 +28,7 @@
<string name="clipboard">The content of the message has been copied to the clipboard</string>
<string name="clipboard_url">The URL of the message has been copied to the clipboard</string>
<string name="clipboard_version">Information have been copied to the clipboard</string>
+ <string name="tag_already_followed">You already follow that tag!</string>
<string name="camera">Camera</string>
<string name="delete_all">Delete all</string>
<string name="schedule">Schedule</string>