From 2a193ef4550e64a1577746ada3072f379785f825 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Fri, 13 Nov 2020 14:43:58 -0400 Subject: [PATCH] Refactor with WindowUtil and correct some colors. --- .../java/org/thoughtcrime/securesms/BaseActivity.java | 8 +------- .../java/org/thoughtcrime/securesms/InviteActivity.java | 4 ++-- .../thoughtcrime/securesms/VerifyIdentityActivity.java | 5 ++--- .../contactshare/SharedContactDetailsActivity.java | 5 ++--- .../securesms/conversation/ConversationActivity.java | 3 ++- .../securesms/conversation/ConversationFragment.java | 4 ++-- .../conversation/ConversationReactionOverlay.java | 4 ++-- .../conversationlist/ConversationListFragment.java | 7 +++---- .../org/thoughtcrime/securesms/giph/ui/GiphyActivity.java | 4 +++- .../securesms/longmessage/LongMessageActivity.java | 6 ++---- .../mediaoverview/MediaOverviewPageFragment.java | 7 +++---- .../securesms/messagedetails/MessageDetailsActivity.java | 5 ++--- .../java/org/thoughtcrime/securesms/util/WindowUtil.java | 7 +++++++ app/src/main/res/menu/media_overview_context.xml | 3 +++ app/src/main/res/values-v21/themes.xml | 2 +- app/src/main/res/values/colors.xml | 2 +- 16 files changed, 38 insertions(+), 38 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/BaseActivity.java b/app/src/main/java/org/thoughtcrime/securesms/BaseActivity.java index 83f7109c6..29bd70e19 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/BaseActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/BaseActivity.java @@ -17,6 +17,7 @@ import androidx.core.app.ActivityOptionsCompat; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.util.TextSecurePreferences; +import org.thoughtcrime.securesms.util.WindowUtil; import org.thoughtcrime.securesms.util.dynamiclanguage.DynamicLanguageContextWrapper; import java.util.Objects; @@ -73,13 +74,6 @@ public abstract class BaseActivity extends AppCompatActivity { ActivityCompat.startActivity(this, intent, bundle); } - @TargetApi(21) - protected void setStatusBarColor(int color) { - if (Build.VERSION.SDK_INT >= 21) { - getWindow().setStatusBarColor(color); - } - } - @Override protected void attachBaseContext(Context newBase) { super.attachBaseContext(newBase); diff --git a/app/src/main/java/org/thoughtcrime/securesms/InviteActivity.java b/app/src/main/java/org/thoughtcrime/securesms/InviteActivity.java index a74bdc8a2..9cb081a40 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/InviteActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/InviteActivity.java @@ -167,7 +167,7 @@ public class InviteActivity extends PassphraseRequiredActivity implements Contac primaryToolbar.setTitleTextColor(ContextCompat.getColor(this, R.color.signal_text_primary)); if (Build.VERSION.SDK_INT >= 23) { - getWindow().setStatusBarColor(ThemeUtil.getThemedColor(this, android.R.attr.statusBarColor)); + WindowUtil.setStatusBarColor(getWindow(), ThemeUtil.getThemedColor(this, android.R.attr.statusBarColor)); getWindow().setNavigationBarColor(ThemeUtil.getThemedColor(this, android.R.attr.navigationBarColor)); WindowUtil.setLightStatusBarFromTheme(this); } @@ -181,7 +181,7 @@ public class InviteActivity extends PassphraseRequiredActivity implements Contac primaryToolbar.setTitleTextColor(ContextCompat.getColor(this, R.color.signal_text_toolbar_title)); if (Build.VERSION.SDK_INT >= 23) { - getWindow().setStatusBarColor(ContextCompat.getColor(this, R.color.core_ultramarine)); + WindowUtil.setStatusBarColor(getWindow(), ContextCompat.getColor(this, R.color.core_ultramarine)); WindowUtil.clearLightStatusBar(getWindow()); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/VerifyIdentityActivity.java b/app/src/main/java/org/thoughtcrime/securesms/VerifyIdentityActivity.java index 86c43575b..0b16698c6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/VerifyIdentityActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/VerifyIdentityActivity.java @@ -87,6 +87,7 @@ import org.thoughtcrime.securesms.util.IdentityUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.ViewUtil; +import org.thoughtcrime.securesms.util.WindowUtil; import org.whispersystems.libsignal.IdentityKey; import org.whispersystems.libsignal.fingerprint.Fingerprint; import org.whispersystems.libsignal.fingerprint.FingerprintParsingException; @@ -228,9 +229,7 @@ public class VerifyIdentityActivity extends PassphraseRequiredActivity implement private void setActionBarNotificationBarColor(MaterialColor color) { getSupportActionBar().setBackgroundDrawable(new ColorDrawable(color.toActionBarColor(this))); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - getWindow().setStatusBarColor(color.toStatusBarColor(this)); - } + WindowUtil.setStatusBarColor(getWindow(), color.toStatusBarColor(this)); } public static class VerifyDisplayFragment extends Fragment implements CompoundButton.OnCheckedChangeListener { diff --git a/app/src/main/java/org/thoughtcrime/securesms/contactshare/SharedContactDetailsActivity.java b/app/src/main/java/org/thoughtcrime/securesms/contactshare/SharedContactDetailsActivity.java index bccb0ffd7..a4c492f69 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contactshare/SharedContactDetailsActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/contactshare/SharedContactDetailsActivity.java @@ -35,6 +35,7 @@ import org.thoughtcrime.securesms.util.CommunicationActions; import org.thoughtcrime.securesms.util.DynamicLanguage; import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme; import org.thoughtcrime.securesms.util.DynamicTheme; +import org.thoughtcrime.securesms.util.WindowUtil; import java.util.ArrayList; import java.util.Collections; @@ -119,9 +120,7 @@ public class SharedContactDetailsActivity extends PassphraseRequiredActivity { getSupportActionBar().setTitle(""); toolbar.setNavigationOnClickListener(v -> onBackPressed()); - if (Build.VERSION.SDK_INT >= 21) { - getWindow().setStatusBarColor(ContextCompat.getColor(this, R.color.shared_contact_details_titlebar)); - } + WindowUtil.setStatusBarColor(getWindow(), ContextCompat.getColor(this, R.color.shared_contact_details_titlebar)); } private void initViews() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java index 50439c002..d205bc157 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java @@ -258,6 +258,7 @@ import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.TextSecurePreferences.MediaKeyboardMode; import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.ViewUtil; +import org.thoughtcrime.securesms.util.WindowUtil; import org.thoughtcrime.securesms.util.concurrent.AssertedSuccessListener; import org.thoughtcrime.securesms.util.concurrent.ListenableFuture; import org.thoughtcrime.securesms.util.concurrent.SettableFuture; @@ -2368,7 +2369,7 @@ public class ConversationActivity extends PassphraseRequiredActivity ActionBar supportActionBar = getSupportActionBar(); if (supportActionBar == null) throw new AssertionError(); supportActionBar.setBackgroundDrawable(new ColorDrawable(color.toActionBarColor(this))); - setStatusBarColor(color.toStatusBarColor(this)); + WindowUtil.setStatusBarColor(getWindow(), color.toStatusBarColor(this)); } private void setBlockedUserState(Recipient recipient, boolean isSecureText, boolean isDefaultSms) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java index 135ec2a1d..c84d202d3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java @@ -1523,7 +1523,7 @@ public class ConversationFragment extends LoggingFragment { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getActivity().getWindow(); statusBarColor = window.getStatusBarColor(); - window.setStatusBarColor(getResources().getColor(R.color.action_mode_status_bar)); + WindowUtil.setStatusBarColor(window, getResources().getColor(R.color.action_mode_status_bar)); } if (!ThemeUtil.isDarkTheme(getContext())) { @@ -1547,7 +1547,7 @@ public class ConversationFragment extends LoggingFragment { list.getAdapter().notifyDataSetChanged(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - getActivity().getWindow().setStatusBarColor(statusBarColor); + WindowUtil.setStatusBarColor(requireActivity().getWindow(), statusBarColor); } WindowUtil.clearLightStatusBar(getActivity().getWindow()); diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationReactionOverlay.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationReactionOverlay.java index 4152fc3d3..7c69ea2dc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationReactionOverlay.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationReactionOverlay.java @@ -201,7 +201,7 @@ public final class ConversationReactionOverlay extends RelativeLayout { if (Build.VERSION.SDK_INT >= 21) { this.activity = activity; originalStatusBarColor = activity.getWindow().getStatusBarColor(); - activity.getWindow().setStatusBarColor(ContextCompat.getColor(getContext(), R.color.signal_background_secondary)); + WindowUtil.setStatusBarColor(activity.getWindow(), ContextCompat.getColor(getContext(), R.color.action_mode_status_bar)); if (!ThemeUtil.isDarkTheme(getContext())) { WindowUtil.setLightStatusBar(activity.getWindow()); @@ -243,7 +243,7 @@ public final class ConversationReactionOverlay extends RelativeLayout { hideAnimatorSet.start(); if (Build.VERSION.SDK_INT >= 21 && activity != null) { - activity.getWindow().setStatusBarColor(originalStatusBarColor); + WindowUtil.setStatusBarColor(activity.getWindow(), originalStatusBarColor); WindowUtil.clearLightStatusBar(activity.getWindow()); activity = null; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java index f83267880..b4ca3b57b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java @@ -124,6 +124,7 @@ import org.thoughtcrime.securesms.util.StickyHeaderDecoration; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.ViewUtil; +import org.thoughtcrime.securesms.util.WindowUtil; import org.thoughtcrime.securesms.util.concurrent.SignalExecutors; import org.thoughtcrime.securesms.util.concurrent.SimpleTask; import org.thoughtcrime.securesms.util.task.SnackbarAsyncTask; @@ -888,9 +889,7 @@ public class ConversationListFragment extends MainFragment implements ActionMode mode.setTitle("1"); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - getActivity().getWindow().setStatusBarColor(getResources().getColor(R.color.action_mode_status_bar)); - } + WindowUtil.setStatusBarColor(requireActivity().getWindow(), getResources().getColor(R.color.action_mode_status_bar)); return true; } @@ -922,7 +921,7 @@ public class ConversationListFragment extends MainFragment implements ActionMode if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { TypedArray color = getActivity().getTheme().obtainStyledAttributes(new int[] {android.R.attr.statusBarColor}); - getActivity().getWindow().setStatusBarColor(color.getColor(0, Color.BLACK)); + WindowUtil.setStatusBarColor(getActivity().getWindow(), color.getColor(0, Color.BLACK)); color.recycle(); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/giph/ui/GiphyActivity.java b/app/src/main/java/org/thoughtcrime/securesms/giph/ui/GiphyActivity.java index 5007e5841..2e3f1e633 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/giph/ui/GiphyActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/giph/ui/GiphyActivity.java @@ -18,6 +18,7 @@ import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentPagerAdapter; import androidx.viewpager.widget.ViewPager; + import org.thoughtcrime.securesms.logging.Log; import android.view.View; import android.widget.Toast; @@ -30,6 +31,7 @@ import org.thoughtcrime.securesms.util.DynamicLanguage; import org.thoughtcrime.securesms.util.DynamicTheme; import org.thoughtcrime.securesms.util.MediaUtil; import org.thoughtcrime.securesms.util.ViewUtil; +import org.thoughtcrime.securesms.util.WindowUtil; import java.io.IOException; import java.util.concurrent.ExecutionException; @@ -80,7 +82,7 @@ public class GiphyActivity extends PassphraseRequiredActivity final int conversationColor = getConversationColor(); toolbar.setBackgroundColor(conversationColor); - setStatusBarColor(conversationColor); + WindowUtil.setStatusBarColor(getWindow(), conversationColor); setSupportActionBar(toolbar); diff --git a/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageActivity.java b/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageActivity.java index d2c6c061f..9d48500b8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageActivity.java @@ -36,6 +36,7 @@ import org.thoughtcrime.securesms.util.DynamicLanguage; import org.thoughtcrime.securesms.util.DynamicTheme; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.ThemeUtil; +import org.thoughtcrime.securesms.util.WindowUtil; import org.thoughtcrime.securesms.util.views.Stub; import static org.thoughtcrime.securesms.util.ThemeUtil.isDarkTheme; @@ -110,10 +111,7 @@ public class LongMessageActivity extends PassphraseRequiredActivity { private void updateActionBarColor(@NonNull MaterialColor color) { getSupportActionBar().setBackgroundDrawable(new ColorDrawable(color.toActionBarColor(this))); - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - getWindow().setStatusBarColor(color.toStatusBarColor(this)); - } + WindowUtil.setStatusBarColor(getWindow(), color.toStatusBarColor(this)); } private void initViewModel(long messageId, boolean isMms) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediaoverview/MediaOverviewPageFragment.java b/app/src/main/java/org/thoughtcrime/securesms/mediaoverview/MediaOverviewPageFragment.java index 29183e85a..f47549d42 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediaoverview/MediaOverviewPageFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediaoverview/MediaOverviewPageFragment.java @@ -42,6 +42,7 @@ import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.mms.PartAuthority; import org.thoughtcrime.securesms.util.MediaUtil; import org.thoughtcrime.securesms.util.Util; +import org.thoughtcrime.securesms.util.WindowUtil; public final class MediaOverviewPageFragment extends Fragment implements MediaGalleryAllAdapter.ItemClickListener, @@ -352,7 +353,7 @@ public final class MediaOverviewPageFragment extends Fragment if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = requireActivity().getWindow(); originalStatusBarColor = window.getStatusBarColor(); - window.setStatusBarColor(getResources().getColor(R.color.action_mode_status_bar)); + WindowUtil.setStatusBarColor(requireActivity().getWindow(), getResources().getColor(R.color.action_mode_status_bar)); } return true; } @@ -390,9 +391,7 @@ public final class MediaOverviewPageFragment extends Fragment ((MediaOverviewActivity) activity).onExitMultiSelect(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - activity.getWindow().setStatusBarColor(originalStatusBarColor); - } + WindowUtil.setStatusBarColor(requireActivity().getWindow(), originalStatusBarColor); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageDetailsActivity.java b/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageDetailsActivity.java index c9003c974..7299d640f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageDetailsActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageDetailsActivity.java @@ -23,6 +23,7 @@ import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.util.DynamicDarkActionBarTheme; import org.thoughtcrime.securesms.util.DynamicTheme; +import org.thoughtcrime.securesms.util.WindowUtil; import java.util.ArrayList; import java.util.Collection; @@ -124,9 +125,7 @@ public final class MessageDetailsActivity extends PassphraseRequiredActivity { assert getSupportActionBar() != null; getSupportActionBar().setBackgroundDrawable(new ColorDrawable(color.toActionBarColor(this))); - if (Build.VERSION.SDK_INT >= 21) { - getWindow().setStatusBarColor(color.toStatusBarColor(this)); - } + WindowUtil.setStatusBarColor(getWindow(), color.toStatusBarColor(this)); } private List> convertToRows(MessageDetails details) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/WindowUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/WindowUtil.java index ba968c221..24b4eb663 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/WindowUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/WindowUtil.java @@ -5,6 +5,7 @@ import android.os.Build; import android.view.View; import android.view.Window; +import androidx.annotation.ColorInt; import androidx.annotation.NonNull; public final class WindowUtil { @@ -54,6 +55,12 @@ public final class WindowUtil { setSystemUiFlags(window, View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); } + public static void setStatusBarColor(@NonNull Window window, @ColorInt int color) { + if (Build.VERSION.SDK_INT < 21) return; + + window.setStatusBarColor(color); + } + private static void clearSystemUiFlags(@NonNull Window window, int flags) { View view = window.getDecorView(); int uiFlags = view.getSystemUiVisibility(); diff --git a/app/src/main/res/menu/media_overview_context.xml b/app/src/main/res/menu/media_overview_context.xml index 668064827..7367a52ce 100644 --- a/app/src/main/res/menu/media_overview_context.xml +++ b/app/src/main/res/menu/media_overview_context.xml @@ -3,15 +3,18 @@ diff --git a/app/src/main/res/values-v21/themes.xml b/app/src/main/res/values-v21/themes.xml index ea0a02094..304ab5103 100644 --- a/app/src/main/res/values-v21/themes.xml +++ b/app/src/main/res/values-v21/themes.xml @@ -22,7 +22,7 @@ diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 8b11cd279..56bc1be2b 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -21,7 +21,7 @@ #32000000 - @color/grey_50 + @color/core_grey_60 #400099cc #ffffffff