diff --git a/app/src/main/java/org/thoughtcrime/securesms/ContactSelectionActivity.java b/app/src/main/java/org/thoughtcrime/securesms/ContactSelectionActivity.java index 0420991f46..568ce38cbb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ContactSelectionActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ContactSelectionActivity.java @@ -103,7 +103,7 @@ public abstract class ContactSelectionActivity extends PassphraseRequiredActivit private void initializeContactFilterView() { this.contactFilterView = findViewById(R.id.contact_filter_edit_text); - if (getResources().getDisplayMetrics().heightPixels >= DimensionUnit.DP.toPixels(600) || !FeatureFlags.usernames()) { + if (getResources().getDisplayMetrics().heightPixels >= DimensionUnit.DP.toPixels(600)) { this.contactFilterView.focusAndShowKeyboard(); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java b/app/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java index ab75168ac7..c9aaf77766 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java @@ -894,7 +894,7 @@ public final class ContactSelectionListFragment extends LoggingFragment { builder.arbitrary(ContactSelectionListAdapter.ArbitraryRepository.ArbitraryRow.NEW_GROUP.getCode()); } - if (findByCallback != null && FeatureFlags.usernames()) { + if (findByCallback != null) { builder.arbitrary(ContactSelectionListAdapter.ArbitraryRepository.ArbitraryRow.FIND_BY_USERNAME.getCode()); builder.arbitrary(ContactSelectionListAdapter.ArbitraryRepository.ArbitraryRow.FIND_BY_PHONE_NUMBER.getCode()); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/reminder/UsernameOutOfSyncReminder.kt b/app/src/main/java/org/thoughtcrime/securesms/components/reminder/UsernameOutOfSyncReminder.kt index b36642e051..574350c7b1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/reminder/UsernameOutOfSyncReminder.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/reminder/UsernameOutOfSyncReminder.kt @@ -4,7 +4,6 @@ import android.content.Context import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.keyvalue.AccountValues.UsernameSyncState import org.thoughtcrime.securesms.keyvalue.SignalStore -import org.thoughtcrime.securesms.util.FeatureFlags /** * Displays a reminder message when the local username gets out of sync with @@ -42,14 +41,10 @@ class UsernameOutOfSyncReminder : Reminder(NO_RESOURCE) { companion object { @JvmStatic fun isEligible(): Boolean { - return if (FeatureFlags.usernames()) { - when (SignalStore.account().usernameSyncState) { - UsernameSyncState.USERNAME_AND_LINK_CORRUPTED -> true - UsernameSyncState.LINK_CORRUPTED -> true - UsernameSyncState.IN_SYNC -> false - } - } else { - false + return when (SignalStore.account().usernameSyncState) { + UsernameSyncState.USERNAME_AND_LINK_CORRUPTED -> true + UsernameSyncState.LINK_CORRUPTED -> true + UsernameSyncState.IN_SYNC -> false } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/AppSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/AppSettingsFragment.kt index aeddfecc21..1190c09c70 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/AppSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/AppSettingsFragment.kt @@ -363,7 +363,7 @@ class AppSettingsFragment : DSLSettingsFragment( summaryView.visibility = View.VISIBLE avatarView.visibility = View.VISIBLE - if (FeatureFlags.usernames() && SignalStore.account().usernameSyncState == AccountValues.UsernameSyncState.IN_SYNC) { + if (SignalStore.account().usernameSyncState == AccountValues.UsernameSyncState.IN_SYNC) { qrButton.visibility = View.VISIBLE qrButton.isClickable = true qrButton.setOnClickListener { model.onQrButtonClicked() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchPagedDataSource.kt b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchPagedDataSource.kt index 4e21656809..6ca89f4ff1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchPagedDataSource.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchPagedDataSource.kt @@ -20,7 +20,6 @@ import org.thoughtcrime.securesms.search.MessageResult import org.thoughtcrime.securesms.search.MessageSearchResult import org.thoughtcrime.securesms.search.SearchRepository import org.thoughtcrime.securesms.search.ThreadSearchResult -import org.thoughtcrime.securesms.util.FeatureFlags import org.thoughtcrime.securesms.util.UsernameUtil import java.util.concurrent.TimeUnit @@ -189,14 +188,10 @@ class ContactSearchPagedDataSource( return false } - return if (FeatureFlags.usernames()) { - NumberUtil.isVisuallyValidNumberOrEmail(query) - } else { - NumberUtil.isValidSmsOrEmail(query) - } + return NumberUtil.isVisuallyValidNumberOrEmail(query) } private fun isPossiblyUsername(query: String?): Boolean { - return query != null && FeatureFlags.usernames() && UsernameUtil.isValidUsernameForSearch(query) + return query != null && UsernameUtil.isValidUsernameForSearch(query) } private fun getPossiblePhoneNumber(section: ContactSearchConfiguration.Section.PhoneNumber, query: String?): List { return if (isPossiblyPhoneNumber(query)) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshOwnProfileJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshOwnProfileJob.java index c1a4723827..4fd0010470 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshOwnProfileJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshOwnProfileJob.java @@ -155,9 +155,7 @@ public class RefreshOwnProfileJob extends BaseJob { StoryOnboardingDownloadJob.Companion.enqueueIfNeeded(); - if (FeatureFlags.usernames()) { - checkUsernameIsInSync(); - } + checkUsernameIsInSync(); } private void setExpiringProfileKeyCredential(@NonNull Recipient recipient, diff --git a/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java b/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java index 35114272dd..f1e89822ed 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java +++ b/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java @@ -397,8 +397,7 @@ public final class Megaphones { long phoneNumberDiscoveryDisabledAt = SignalStore.phoneNumberPrivacy().getPhoneNumberDiscoverabilityModeTimestamp(); PhoneNumberPrivacyValues.PhoneNumberDiscoverabilityMode listingMode = SignalStore.phoneNumberPrivacy().getPhoneNumberDiscoverabilityMode(); - return FeatureFlags.usernames() && - !hasUsername && + return !hasUsername && listingMode.isUndiscoverable() && !hasCompleted && phoneNumberDiscoveryDisabledAt > 0 && diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/EditProfileFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/EditProfileFragment.kt index 0d376f9b15..525e5c3af2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/EditProfileFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/EditProfileFragment.kt @@ -37,7 +37,6 @@ import org.thoughtcrime.securesms.profiles.ProfileName import org.thoughtcrime.securesms.profiles.manage.EditProfileViewModel.AvatarState import org.thoughtcrime.securesms.profiles.manage.UsernameRepository.UsernameDeleteResult import org.thoughtcrime.securesms.recipients.Recipient -import org.thoughtcrime.securesms.util.FeatureFlags import org.thoughtcrime.securesms.util.NameUtil.getAbbreviation import org.thoughtcrime.securesms.util.livedata.LiveDataUtil import org.thoughtcrime.securesms.util.navigation.safeNavigate @@ -128,7 +127,7 @@ class EditProfileFragment : LoggingFragment() { ) } - if (FeatureFlags.usernames() && SignalStore.account().username != null && SignalStore.account().usernameSyncState != AccountValues.UsernameSyncState.USERNAME_AND_LINK_CORRUPTED) { + if (SignalStore.account().username != null && SignalStore.account().usernameSyncState != AccountValues.UsernameSyncState.USERNAME_AND_LINK_CORRUPTED) { binding.usernameLinkContainer.setOnClickListener { findNavController().safeNavigate(EditProfileFragmentDirections.actionManageProfileFragmentToUsernameLinkFragment()) } @@ -165,14 +164,7 @@ class EditProfileFragment : LoggingFragment() { viewModel.about.observe(viewLifecycleOwner) { presentAbout(it) } viewModel.aboutEmoji.observe(viewLifecycleOwner) { presentAboutEmoji(it) } viewModel.badge.observe(viewLifecycleOwner) { presentBadge(it) } - - if (viewModel.shouldShowUsername()) { - viewModel.username.observe(viewLifecycleOwner) { presentUsername(it) } - } else { - binding.manageProfileUsernameContainer.visibility = View.GONE - binding.manageProfileDivider.root.visibility = View.GONE - binding.usernameInfoText.visibility = View.GONE - } + viewModel.username.observe(viewLifecycleOwner) { presentUsername(it) } } private fun presentAvatarImage(avatarData: Optional) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/EditProfileViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/EditProfileViewModel.java index b27b344985..ee2b4705f9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/EditProfileViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/EditProfileViewModel.java @@ -107,10 +107,6 @@ class EditProfileViewModel extends ViewModel { return UsernameRepository.deleteUsernameAndLink().observeOn(AndroidSchedulers.mainThread()); } - public boolean shouldShowUsername() { - return FeatureFlags.usernames(); - } - public void onAvatarSelected(@NonNull Context context, @Nullable Media media) { previousAvatar = internalAvatarState.getValue() != null ? internalAvatarState.getValue().getAvatar() : null; diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.java b/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.java index 830529a276..f5ddd02c4f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.java +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.java @@ -680,11 +680,7 @@ public class Recipient { } public @NonNull Optional getUsername() { - if (FeatureFlags.usernames()) { - return OptionalUtil.absentIfEmpty(username); - } else { - return Optional.empty(); - } + return OptionalUtil.absentIfEmpty(username); } public @NonNull Optional getE164() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java b/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java index a46bf8da2b..f0637a9acc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java @@ -107,7 +107,6 @@ public final class FeatureFlags { public static final String PROMPT_FOR_NOTIFICATION_LOGS = "android.logs.promptNotifications"; private static final String PROMPT_FOR_NOTIFICATION_CONFIG = "android.logs.promptNotificationsConfig"; public static final String PROMPT_BATTERY_SAVER = "android.promptBatterySaver"; - public static final String USERNAMES = "android.usernames"; public static final String INSTANT_VIDEO_PLAYBACK = "android.instantVideoPlayback.1"; public static final String CRASH_PROMPT_CONFIG = "android.crashPromptConfig"; private static final String SEPA_DEBIT_DONATIONS = "android.sepa.debit.donations.5"; @@ -180,7 +179,6 @@ public final class FeatureFlags { PROMPT_FOR_NOTIFICATION_LOGS, PROMPT_FOR_NOTIFICATION_CONFIG, PROMPT_BATTERY_SAVER, - USERNAMES, INSTANT_VIDEO_PLAYBACK, CRASH_PROMPT_CONFIG, SEPA_DEBIT_DONATIONS, @@ -259,7 +257,6 @@ public final class FeatureFlags { PROMPT_FOR_NOTIFICATION_LOGS, PROMPT_FOR_NOTIFICATION_CONFIG, PROMPT_BATTERY_SAVER, - USERNAMES, CRASH_PROMPT_CONFIG, CALLING_REACTIONS, NOTIFICATION_THUMBNAIL_BLOCKLIST, @@ -344,11 +341,6 @@ public final class FeatureFlags { Log.i(TAG, "[Disk] After : " + result.getDisk().toString()); } - /** Creating usernames, sending messages by username. */ - public static synchronized boolean usernames() { - return getBoolean(USERNAMES, false) || phoneNumberPrivacy(); - } - /** * Maximum number of members allowed in a group. */