summaryrefslogtreecommitdiffstats
path: root/app/src/main/java/app/fedilab/android/activities
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/app/fedilab/android/activities')
-rw-r--r--app/src/main/java/app/fedilab/android/activities/ActionActivity.java6
-rw-r--r--app/src/main/java/app/fedilab/android/activities/MastodonListActivity.java16
-rw-r--r--app/src/main/java/app/fedilab/android/activities/ProfileActivity.java34
3 files changed, 55 insertions, 1 deletions
diff --git a/app/src/main/java/app/fedilab/android/activities/ActionActivity.java b/app/src/main/java/app/fedilab/android/activities/ActionActivity.java
index faa7a7ecb..aab8386c0 100644
--- a/app/src/main/java/app/fedilab/android/activities/ActionActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/ActionActivity.java
@@ -54,11 +54,12 @@ public class ActionActivity extends BaseBarActivity {
binding.muted.setOnClickListener(v -> displayTimeline(Timeline.TimeLineEnum.MUTED_TIMELINE));
binding.blocked.setOnClickListener(v -> displayTimeline(Timeline.TimeLineEnum.BLOCKED_TIMELINE));
binding.domainBlock.setOnClickListener(v -> displayTimeline(Timeline.TimeLineEnum.BLOCKED_DOMAIN_TIMELINE));
+ binding.mutedHome.setOnClickListener(v -> displayTimeline(Timeline.TimeLineEnum.MUTED_TIMELINE_HOME));
}
private void displayTimeline(Timeline.TimeLineEnum type) {
canGoBack = true;
- if (type == Timeline.TimeLineEnum.MUTED_TIMELINE || type == Timeline.TimeLineEnum.BLOCKED_TIMELINE) {
+ if (type == Timeline.TimeLineEnum.MUTED_TIMELINE || type == Timeline.TimeLineEnum.BLOCKED_TIMELINE || type == Timeline.TimeLineEnum.MUTED_TIMELINE_HOME) {
ThemeHelper.slideViewsToLeft(binding.buttonContainer, binding.fragmentContainer, () -> {
fragmentMastodonAccount = new FragmentMastodonAccount();
@@ -114,6 +115,9 @@ public class ActionActivity extends BaseBarActivity {
case BLOCKED_DOMAIN_TIMELINE:
setTitle(R.string.blocked_domains);
break;
+ case MUTED_TIMELINE_HOME:
+ setTitle(R.string.muted_menu_home);
+ break;
}
}
diff --git a/app/src/main/java/app/fedilab/android/activities/MastodonListActivity.java b/app/src/main/java/app/fedilab/android/activities/MastodonListActivity.java
index 0d4516522..0d6219316 100644
--- a/app/src/main/java/app/fedilab/android/activities/MastodonListActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/MastodonListActivity.java
@@ -143,6 +143,22 @@ public class MastodonListActivity extends BaseBarActivity implements MastodonLis
if (item.getItemId() == android.R.id.home) {
onBackPressed();
return true;
+ } else if (item.getItemId() == R.id.action_user_mute_home) {
+ AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(MastodonListActivity.this, Helper.dialogStyle());
+ dialogBuilder.setTitle(R.string.put_all_accounts_in_home_muted);
+ dialogBuilder.setPositiveButton(R.string.mute_them_all, (dialog, id) -> {
+ timelinesVM.getAccountsInList(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, mastodonList.id, null, null, 0)
+ .observe(MastodonListActivity.this, accounts -> {
+ if (accounts != null && accounts.size() > 0) {
+ for (Account account : accounts) {
+ accountsVM.muteHome(MainActivity.currentAccount, account);
+ }
+ }
+ });
+ dialog.dismiss();
+ });
+ dialogBuilder.setNegativeButton(R.string.cancel, (dialog, id) -> dialog.dismiss());
+ dialogBuilder.show();
} else if (item.getItemId() == R.id.action_manage_users) {
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(MastodonListActivity.this, Helper.dialogStyle());
PopupManageAccountsListBinding popupManageAccountsListBinding = PopupManageAccountsListBinding.inflate(getLayoutInflater());
diff --git a/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java b/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java
index 79ac5c58d..97b13d769 100644
--- a/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java
@@ -117,6 +117,7 @@ public class ProfileActivity extends BaseActivity {
private String mention_str;
private WellKnownNodeinfo.NodeInfo nodeInfo;
private boolean checkRemotely;
+ private boolean homeMuted;
private final BroadcastReceiver broadcast_data = new BroadcastReceiver() {
@Override
@@ -144,6 +145,7 @@ public class ProfileActivity extends BaseActivity {
Bundle b = getIntent().getExtras();
binding.accountFollow.setEnabled(false);
checkRemotely = false;
+ homeMuted = false;
if (b != null) {
account = (Account) b.getSerializable(Helper.ARG_ACCOUNT);
account_id = b.getString(Helper.ARG_USER_ID, null);
@@ -185,6 +187,8 @@ public class ProfileActivity extends BaseActivity {
Toasty.error(ProfileActivity.this, getString(R.string.toast_error), Toast.LENGTH_LONG).show();
finish();
}
+ //Check if account is homeMuted
+ accountsVM.isMuted(currentAccount, account).observe(this, result -> homeMuted = result != null && result);
LocalBroadcastManager.getInstance(ProfileActivity.this).registerReceiver(broadcast_data, new IntentFilter(Helper.BROADCAST_DATA));
}
@@ -685,9 +689,11 @@ public class ProfileActivity extends BaseActivity {
menu.findItem(R.id.action_endorse).setVisible(false);
menu.findItem(R.id.action_direct_message).setVisible(false);
menu.findItem(R.id.action_add_to_list).setVisible(false);
+ menu.findItem(R.id.action_mute_home).setVisible(false);
} else {
menu.findItem(R.id.action_block).setVisible(true);
menu.findItem(R.id.action_mute).setVisible(true);
+ menu.findItem(R.id.action_mute_home).setVisible(true);
menu.findItem(R.id.action_timed_mute).setVisible(true);
menu.findItem(R.id.action_mention).setVisible(true);
}
@@ -696,6 +702,7 @@ public class ProfileActivity extends BaseActivity {
if (!relationship.following) {
menu.findItem(R.id.action_hide_boost).setVisible(false);
menu.findItem(R.id.action_endorse).setVisible(false);
+ menu.findItem(R.id.action_mute_home).setVisible(false);
}
if (relationship.blocking) {
menu.findItem(R.id.action_block).setTitle(R.string.action_unblock);
@@ -713,6 +720,11 @@ public class ProfileActivity extends BaseActivity {
} else {
menu.findItem(R.id.action_hide_boost).setTitle(getString(R.string.show_boost, account.username));
}
+ if (homeMuted) {
+ menu.findItem(R.id.action_mute_home).setTitle(getString(R.string.unmute_home));
+ } else {
+ menu.findItem(R.id.action_mute_home).setTitle(getString(R.string.mute_home));
+ }
}
}
return true;
@@ -989,6 +1001,28 @@ public class ProfileActivity extends BaseActivity {
});
builderInner.show();
}
+ } else if (itemId == R.id.action_mute_home) {
+ AlertDialog.Builder builderInner = new AlertDialog.Builder(ProfileActivity.this, Helper.dialogStyle());
+ builderInner.setMessage(account.acct);
+ builderInner.setNeutralButton(R.string.cancel, (dialog, which) -> dialog.dismiss());
+ if (homeMuted) {
+ builderInner.setTitle(R.string.unmute_home);
+ builderInner.setPositiveButton(R.string.action_unmute, (dialog, which) -> accountsVM.unmuteHome(currentAccount, account)
+ .observe(ProfileActivity.this, account -> {
+ homeMuted = false;
+ invalidateOptionsMenu();
+ Toasty.info(ProfileActivity.this, getString(R.string.toast_unmute), Toasty.LENGTH_LONG).show();
+ }));
+ } else {
+ builderInner.setTitle(R.string.mute_home);
+ builderInner.setPositiveButton(R.string.action_mute, (dialog, which) -> accountsVM.muteHome(currentAccount, account)
+ .observe(ProfileActivity.this, account -> {
+ homeMuted = true;
+ invalidateOptionsMenu();
+ Toasty.info(ProfileActivity.this, getString(R.string.toast_mute), Toasty.LENGTH_LONG).show();
+ }));
+ }
+ builderInner.show();
} else if (itemId == R.id.action_timed_mute) {
MastodonHelper.scheduleBoost(ProfileActivity.this, MastodonHelper.ScheduleType.TIMED_MUTED, null, account, rs -> {
this.relationship = rs;