diff --git a/app/src/main/java/com/keylesspalace/tusky/entity/Filter.kt b/app/src/main/java/com/keylesspalace/tusky/entity/Filter.kt index 6d6cbaa5a..58bdc79a9 100644 --- a/app/src/main/java/com/keylesspalace/tusky/entity/Filter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/entity/Filter.kt @@ -30,6 +30,7 @@ data class Filter ( const val NOTIFICATIONS = "notifications" const val PUBLIC = "public" const val THREAD = "thread" + const val ACCOUNT = "account" } override fun hashCode(): Int { diff --git a/app/src/main/java/com/keylesspalace/tusky/fragment/TimelineFragment.java b/app/src/main/java/com/keylesspalace/tusky/fragment/TimelineFragment.java index 15929e3f5..3e701b438 100644 --- a/app/src/main/java/com/keylesspalace/tusky/fragment/TimelineFragment.java +++ b/app/src/main/java/com/keylesspalace/tusky/fragment/TimelineFragment.java @@ -449,6 +449,10 @@ public class TimelineFragment extends SFragment implements return filterContext.contains(Filter.PUBLIC); case FAVOURITES: return (filterContext.contains(Filter.PUBLIC) || filterContext.contains(Filter.NOTIFICATIONS)); + case USER: + case USER_WITH_REPLIES: + case USER_PINNED: + return filterContext.contains(Filter.ACCOUNT); default: return false; } @@ -967,7 +971,8 @@ public class TimelineFragment extends SFragment implements case Filter.HOME: case Filter.NOTIFICATIONS: case Filter.THREAD: - case Filter.PUBLIC: { + case Filter.PUBLIC: + case Filter.ACCOUNT: { if (filterContextMatchesKind(kind, Collections.singletonList(key))) { reloadFilters(true); } diff --git a/app/src/main/java/com/keylesspalace/tusky/fragment/preference/AccountPreferencesFragment.kt b/app/src/main/java/com/keylesspalace/tusky/fragment/preference/AccountPreferencesFragment.kt index 1698270fb..3e54f7ce5 100644 --- a/app/src/main/java/com/keylesspalace/tusky/fragment/preference/AccountPreferencesFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/fragment/preference/AccountPreferencesFragment.kt @@ -73,6 +73,7 @@ class AccountPreferencesFragment : PreferenceFragmentCompat(), private lateinit var notificationFiltersPreference: Preference private lateinit var publicFiltersPreference: Preference private lateinit var threadFiltersPreference: Preference + private lateinit var accountFiltersPreference: Preference override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { addPreferencesFromResource(R.xml.account_preferences) @@ -91,6 +92,7 @@ class AccountPreferencesFragment : PreferenceFragmentCompat(), notificationFiltersPreference = requirePreference("notificationFilters") publicFiltersPreference = requirePreference("publicFilters") threadFiltersPreference = requirePreference("threadFilters") + accountFiltersPreference = requirePreference("accountFilters") notificationPreference.icon = IconicsDrawable(notificationPreference.context, GoogleMaterial.Icon.gmd_notifications).apply { sizeRes = R.dimen.preference_icon_size; colorInt = ThemeUtils.getColor(notificationPreference.context, R.attr.iconColor) } mutedUsersPreference.icon = getTintedIcon(R.drawable.ic_mute_24dp) @@ -106,6 +108,7 @@ class AccountPreferencesFragment : PreferenceFragmentCompat(), notificationFiltersPreference.onPreferenceClickListener = this publicFiltersPreference.onPreferenceClickListener = this threadFiltersPreference.onPreferenceClickListener = this + accountFiltersPreference.onPreferenceClickListener = this defaultPostPrivacyPreference.onPreferenceChangeListener = this defaultMediaSensitivityPreference.onPreferenceChangeListener = this @@ -224,6 +227,9 @@ class AccountPreferencesFragment : PreferenceFragmentCompat(), threadFiltersPreference -> { launchFilterActivity(Filter.THREAD, R.string.pref_title_thread_filter_keywords) } + accountFiltersPreference -> { + launchFilterActivity(Filter.ACCOUNT, R.string.title_accounts) + } else -> false } diff --git a/app/src/main/res/xml/account_preferences.xml b/app/src/main/res/xml/account_preferences.xml index 5b316c72e..ec4d2c2ae 100644 --- a/app/src/main/res/xml/account_preferences.xml +++ b/app/src/main/res/xml/account_preferences.xml @@ -73,5 +73,9 @@ + +