From 9ce0c54dbe9032a0e8a4ba1ed124bd493e5bae4d Mon Sep 17 00:00:00 2001 From: Anton Chekulaev Date: Mon, 7 Dec 2020 11:21:03 +1100 Subject: [PATCH] Long message activity theming is fixed. General cleanup. --- app/src/main/AndroidManifest.xml | 3 +- .../securesms/BaseActionBarActivity.java | 96 +------------------ .../thoughtcrime/securesms/BaseActivity.java | 20 ---- .../securesms/ExperienceUpgradeActivity.java | 1 - .../longmessage/LongMessageActivity.java | 62 +++--------- .../stickers/StickerPackPreviewActivity.java | 5 - .../layout/longmessage_bubble_received.xml | 3 +- 7 files changed, 18 insertions(+), 172 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ab08ce3459..142f0812ef 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -259,7 +259,8 @@ + android:screenOrientation="portrait" + android:theme="@style/Theme.TextSecure.DayNight"/> \"Devices\" > \"Link a Device\" to link your devices.", Toast.LENGTH_LONG).show(); - } - }; - LocalBroadcastManager.getInstance(this).registerReceiver(broadcastReceiver, new IntentFilter("unexpectedDeviceLinkRequestReceived")); } @Override @@ -85,26 +49,6 @@ public abstract class BaseActionBarActivity extends AppCompatActivity { return true; } - @Override - protected void onDestroy() { - LocalBroadcastManager.getInstance(this).unregisterReceiver(broadcastReceiver); - super.onDestroy(); - } - - @Override - public boolean onKeyDown(int keyCode, KeyEvent event) { - return (keyCode == KeyEvent.KEYCODE_MENU && BaseActivity.isMenuWorkaroundRequired()) || super.onKeyDown(keyCode, event); - } - - @Override - public boolean onKeyUp(int keyCode, @NonNull KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_MENU && BaseActivity.isMenuWorkaroundRequired()) { - openOptionsMenu(); - return true; - } - return super.onKeyUp(keyCode, event); - } - private void initializeScreenshotSecurity() { if (TextSecurePreferences.isScreenSecurityEnabled(this)) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE); @@ -113,40 +57,6 @@ public abstract class BaseActionBarActivity extends AppCompatActivity { } } - /** - * Modified from: http://stackoverflow.com/a/13098824 - */ - private void forceOverflowMenu() { - try { - ViewConfiguration config = ViewConfiguration.get(this); - Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey"); - if(menuKeyField != null) { - menuKeyField.setAccessible(true); - menuKeyField.setBoolean(config, false); - } - } catch (IllegalAccessException e) { - Log.w(TAG, "Failed to force overflow menu."); - } catch (NoSuchFieldException e) { - Log.w(TAG, "Failed to force overflow menu."); - } - } - - protected void startActivitySceneTransition(Intent intent, View sharedView, String transitionName) { - Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(this, sharedView, transitionName) - .toBundle(); - ActivityCompat.startActivity(this, intent, bundle); - } - - //TODO AC: I don't think we need this method, - // setting any colors directly will most likely clash with the current theme. - @Deprecated - @TargetApi(VERSION_CODES.LOLLIPOP) - protected void setStatusBarColor(int color) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - getWindow().setStatusBarColor(color); - } - } - @Override protected void attachBaseContext(Context newBase) { super.attachBaseContext(DynamicLanguageContextWrapper.updateContext(newBase, TextSecurePreferences.getLanguage(newBase))); diff --git a/app/src/main/java/org/thoughtcrime/securesms/BaseActivity.java b/app/src/main/java/org/thoughtcrime/securesms/BaseActivity.java index b5800efc9d..e883245ecb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/BaseActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/BaseActivity.java @@ -18,26 +18,6 @@ import org.thoughtcrime.securesms.util.dynamiclanguage.DynamicLanguageContextWra import network.loki.messenger.R; public abstract class BaseActivity extends FragmentActivity { - @Override - public boolean onKeyDown(int keyCode, KeyEvent event) { - return (keyCode == KeyEvent.KEYCODE_MENU && isMenuWorkaroundRequired()) || super.onKeyDown(keyCode, event); - } - - @Override - public boolean onKeyUp(int keyCode, @NonNull KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_MENU && isMenuWorkaroundRequired()) { - openOptionsMenu(); - return true; - } - return super.onKeyUp(keyCode, event); - } - - public static boolean isMenuWorkaroundRequired() { - return VERSION.SDK_INT < VERSION_CODES.KITKAT && - VERSION.SDK_INT > VERSION_CODES.GINGERBREAD_MR1 && - ("LGE".equalsIgnoreCase(Build.MANUFACTURER) || "E6710".equalsIgnoreCase(Build.DEVICE)); - } - @Override protected void onResume() { super.onResume(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/ExperienceUpgradeActivity.java b/app/src/main/java/org/thoughtcrime/securesms/ExperienceUpgradeActivity.java index 59e42ec2f6..88ed1153f9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ExperienceUpgradeActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ExperienceUpgradeActivity.java @@ -160,7 +160,6 @@ public class ExperienceUpgradeActivity extends BaseActionBarActivity implements @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setStatusBarColor(getResources().getColor(R.color.signal_primary_dark)); final Optional upgrade = getExperienceUpgrade(this); if (!upgrade.isPresent()) { 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 c245136bba..4140426369 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageActivity.java @@ -1,13 +1,9 @@ package org.thoughtcrime.securesms.longmessage; -import androidx.lifecycle.ViewModelProviders; import android.content.Context; import android.content.Intent; import android.graphics.PorterDuff; -import android.graphics.drawable.ColorDrawable; -import android.os.Build; import android.os.Bundle; -import androidx.annotation.NonNull; import android.text.SpannableString; import android.text.method.LinkMovementMethod; import android.text.style.URLSpan; @@ -19,24 +15,26 @@ import android.view.ViewGroup; import android.widget.TextView; import android.widget.Toast; +import androidx.annotation.NonNull; +import androidx.lifecycle.ViewModelProvider; + import com.annimon.stream.Stream; import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity; -import network.loki.messenger.R; -import org.thoughtcrime.securesms.color.MaterialColor; import org.thoughtcrime.securesms.components.ConversationItemFooter; import org.thoughtcrime.securesms.database.Address; import org.thoughtcrime.securesms.linkpreview.LinkPreviewUtil; import org.thoughtcrime.securesms.recipients.Recipient; -import org.thoughtcrime.securesms.recipients.RecipientModifiedListener; -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.Util; import org.thoughtcrime.securesms.util.views.Stub; -public class LongMessageActivity extends PassphraseRequiredActionBarActivity implements RecipientModifiedListener { +import java.util.Locale; + +import network.loki.messenger.R; + +public class LongMessageActivity extends PassphraseRequiredActionBarActivity { private static final String KEY_ADDRESS = "address"; private static final String KEY_MESSAGE_ID = "message_id"; @@ -44,9 +42,6 @@ public class LongMessageActivity extends PassphraseRequiredActionBarActivity imp private static final int MAX_DISPLAY_LENGTH = 64 * 1024; - private final DynamicLanguage dynamicLanguage = new DynamicLanguage(); - private final DynamicTheme dynamicTheme = new DynamicTheme(); - private Stub sentBubble; private Stub receivedBubble; @@ -60,13 +55,6 @@ public class LongMessageActivity extends PassphraseRequiredActionBarActivity imp return intent; } - @Override - protected void onPreCreate() { - super.onPreCreate(); - dynamicLanguage.onCreate(this); - dynamicTheme.onCreate(this); - } - @Override protected void onCreate(Bundle savedInstanceState, boolean ready) { super.onCreate(savedInstanceState, ready); @@ -76,19 +64,6 @@ public class LongMessageActivity extends PassphraseRequiredActionBarActivity imp receivedBubble = new Stub<>(findViewById(R.id.longmessage_received_stub)); initViewModel(getIntent().getLongExtra(KEY_MESSAGE_ID, -1), getIntent().getBooleanExtra(KEY_IS_MMS, false)); - - Recipient conversationRecipient = Recipient.from(this, Address.fromSerialized(getIntent().getStringExtra(KEY_ADDRESS)), true); - conversationRecipient.addListener(this); - updateActionBarColor(conversationRecipient.getColor()); - - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - } - - @Override - protected void onResume() { - super.onResume(); - dynamicLanguage.onResume(this); - dynamicTheme.onResume(this); } @Override @@ -104,21 +79,8 @@ public class LongMessageActivity extends PassphraseRequiredActionBarActivity imp return false; } - @Override - public void onModified(final Recipient recipient) { - Util.runOnMain(() -> updateActionBarColor(recipient.getColor())); - } - - 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)); - } - } - private void initViewModel(long messageId, boolean isMms) { - viewModel = ViewModelProviders.of(this, new LongMessageViewModel.Factory(getApplication(), new LongMessageRepository(this), messageId, isMms)) + viewModel = new ViewModelProvider(this, new LongMessageViewModel.Factory(getApplication(), new LongMessageRepository(this), messageId, isMms)) .get(LongMessageViewModel.class); viewModel.getMessage().observe(this, message -> { @@ -143,10 +105,10 @@ public class LongMessageActivity extends PassphraseRequiredActionBarActivity imp if (message.get().getMessageRecord().isOutgoing()) { bubble = sentBubble.get(); - bubble.getBackground().setColorFilter(ThemeUtil.getThemedColor(this, R.attr.conversation_item_bubble_background), PorterDuff.Mode.MULTIPLY); + bubble.getBackground().setColorFilter(ThemeUtil.getThemedColor(this, R.attr.message_sent_background_color), PorterDuff.Mode.MULTIPLY); } else { bubble = receivedBubble.get(); - bubble.getBackground().setColorFilter(message.get().getMessageRecord().getRecipient().getColor().toConversationColor(this), PorterDuff.Mode.MULTIPLY); + bubble.getBackground().setColorFilter(ThemeUtil.getThemedColor(this, R.attr.message_received_background_color), PorterDuff.Mode.MULTIPLY); } TextView text = bubble.findViewById(R.id.longmessage_text); @@ -159,7 +121,7 @@ public class LongMessageActivity extends PassphraseRequiredActionBarActivity imp text.setText(styledBody); text.setMovementMethod(LinkMovementMethod.getInstance()); text.setTextSize(TypedValue.COMPLEX_UNIT_SP, TextSecurePreferences.getMessageBodyTextSize(this)); - footer.setMessageRecord(message.get().getMessageRecord(), dynamicLanguage.getCurrentLocale()); + footer.setMessageRecord(message.get().getMessageRecord(), Locale.getDefault()); }); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewActivity.java b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewActivity.java index 803f1ad19a..efe42f0795 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewActivity.java @@ -129,11 +129,6 @@ public final class StickerPackPreviewActivity extends PassphraseRequiredActionBa getSupportActionBar().setTitle(R.string.StickerPackPreviewActivity_stickers); toolbar.setNavigationOnClickListener(v -> onBackPressed()); - - if (!ThemeUtil.isDarkTheme(this) && Build.VERSION.SDK_INT >= 23) { - setStatusBarColor(ThemeUtil.getThemedColor(this, R.attr.sticker_preview_status_bar_color)); - getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); - } } private void initViewModel(@NonNull String packId, @NonNull String packKey) { diff --git a/app/src/main/res/layout/longmessage_bubble_received.xml b/app/src/main/res/layout/longmessage_bubble_received.xml index 49d7ca4dad..f13704218b 100644 --- a/app/src/main/res/layout/longmessage_bubble_received.xml +++ b/app/src/main/res/layout/longmessage_bubble_received.xml @@ -27,7 +27,7 @@