Fix issue #544 - Jump in profiles

This commit is contained in:
Thomas 2022-11-26 18:28:00 +01:00
parent 487057bbc8
commit c147240384

View file

@ -80,7 +80,7 @@ public class HashTagActivity extends BaseActivity {
finish(); finish();
pinnedTag = false; pinnedTag = false;
followedTag = false; followedTag = false;
mutedTag = true; mutedTag = false;
setSupportActionBar(binding.toolbar); setSupportActionBar(binding.toolbar);
ActionBar actionBar = getSupportActionBar(); ActionBar actionBar = getSupportActionBar();
//Remove title //Remove title
@ -221,26 +221,56 @@ public class HashTagActivity extends BaseActivity {
} }
}); });
} else if (item.getItemId() == R.id.action_mute) { } else if (item.getItemId() == R.id.action_mute) {
Filter.FilterParams filterParams = new Filter.FilterParams();
filterParams.id = fedilabFilter.id; if (MainActivity.mainFilters == null || fedilabFilter == null) {
filterParams.keywords = new ArrayList<>(); MainActivity.mainFilters = new ArrayList<>();
Filter.KeywordsParams keywordsParams = new Filter.KeywordsParams(); Filter.FilterParams filterParams = new Filter.FilterParams();
keywordsParams.whole_word = true; filterParams.title = Helper.FEDILAB_MUTED_HASHTAGS;
keywordsParams.keyword = tag.startsWith("#") ? tag : "#" + tag; filterParams.filter_action = "hide";
filterParams.keywords.add(keywordsParams); filterParams.context = new ArrayList<>();
filterParams.context = fedilabFilter.context; filterParams.context.add("home");
FiltersVM filtersVM = new ViewModelProvider(HashTagActivity.this).get(FiltersVM.class); filterParams.context.add("public");
filtersVM.editFilter(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, filterParams) filterParams.context.add("thread");
.observe(HashTagActivity.this, filter -> { filterParams.context.add("account");
mutedTag = true; String finalTag = tag;
invalidateOptionsMenu(); FiltersVM filtersVM = new ViewModelProvider(HashTagActivity.this).get(FiltersVM.class);
}); filtersVM.addFilter(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, filterParams)
.observe(HashTagActivity.this, filter -> {
if (filter != null) {
MainActivity.mainFilters.add(filter);
mutedTag = false;
fedilabFilter = filter;
muteTags();
invalidateOptionsMenu();
}
});
} else {
muteTags();
}
} }
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
} }
private void muteTags() {
Filter.FilterParams filterParams = new Filter.FilterParams();
filterParams.id = fedilabFilter.id;
filterParams.keywords = new ArrayList<>();
Filter.KeywordsParams keywordsParams = new Filter.KeywordsParams();
keywordsParams.whole_word = true;
keywordsParams.keyword = tag.startsWith("#") ? tag : "#" + tag;
filterParams.keywords.add(keywordsParams);
filterParams.context = fedilabFilter.context;
FiltersVM filtersVM = new ViewModelProvider(HashTagActivity.this).get(FiltersVM.class);
filtersVM.editFilter(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, filterParams)
.observe(HashTagActivity.this, filter -> {
mutedTag = true;
invalidateOptionsMenu();
});
}
@Override @Override
public boolean onCreateOptionsMenu(@NonNull Menu menu) { public boolean onCreateOptionsMenu(@NonNull Menu menu) {
getMenuInflater().inflate(R.menu.menu_hashtag, menu); getMenuInflater().inflate(R.menu.menu_hashtag, menu);