From 427b2d7b5fc7ee0a22d61601005a5de0b0ec75e3 Mon Sep 17 00:00:00 2001 From: ceokot Date: Mon, 24 Oct 2022 15:45:26 +1100 Subject: [PATCH] fix: Selected message theme colours and crash fixes (#1025) * Fixed a bug where message requests could incorrectly appear in the thread list (#1009) * New app theming (#1010) * feat: start new app theming feature * feat: add some theming colours * refactor: start refactoring themes and colours to use dynamic attributes * feat: adding more colours and switching over default colours to be theme based instead of hard-coded or day/night specific * refactor: take a look at ocean light and logo colour * feat: global search colours for light and dark ocean * feat: more styling * feat: adding themes to conversation activity and refactoring the base theme to apply over the top of the activity's theme so it retains noActionBar etc * feat: add dynamic accent color * docs: add todo for changing how accent colour is applied * feat: update new theming to use override primary style so that the regular colorAccent attribute can be used in existing layouts * feat: coordinating styles across layouts, fixing up pinned icons and naming for conversation list items * refactor: re-styling layouts to match new themes and attributes. Need to figure out action mode close button * refactor: remove @color/text and replace with ?android:textColorPrimary to override in themes * refactor: add context theme wrapper to bottom sheet dialog that references accent color * fix: input bar bug fix and preference activity themes * refactor: new settings menu options * fix: crash for PNModeActivity.kt refactor: move ordering in seed dialog to match designs, copy changes to match new settings menu * feat: add new appearance settings activity * refactor: title and VM changes * fix: correct override * feat: add theme appearance screen UI features and start VM implementation. re-add legacy theme utils to get default for migration * fix: compile errors and missing themes from emoji features * refactor: remove background shape alteration and old bottom sheet styles, re-add the theme mode attr * feat: appearance screen wired up, just need to refresh theme * feat: add theme state recreation and fix match system settings option * refactor: add bottom margin * feat: explore custom preference category * feat: add the customized session theme for CorrectedPreferenceFragment * feat: replace AppProtectionPreferenceFragment to extend ListSummaryPreferenceFragment * refactor: change drawable style and remove explicit dividers * refactor: remove divider in CorrectedPreferenceFragment * feat: add theme state check on resume, might be jarring currently * feat: add preference divider elements for settings menu * refactor: settings menu redesigns * refactor: change led preference to integer and refactor TextSecurePreferences.kt * feat: add scroll parcel to save/restore hierarchy on restart with appearance changes * feat: add the conversations blocked contacts and refactor preference order and copy * feat: add blocked contacts activity, basic layout and vm * feat: add unblock DB functions and storage protocol, start working on the DB query state flow, might have to just implement recipient on modified listener * feat: add blocked contacts and notif recipient listeners * feat: add recipient db reader * feat: add blocked contact interactions and fix a theming crash for notifications * feat: introduce better equals and hashcode implementations to recipient, replace home diff util content check with hashcode-based comparison * feat: add settings menu vectors * fix: preview compile error * refactor: migrating settings menu to new designs * feat: help menu * refactor: simplify link opening * refactor: remove space * feat: refactor preferences and start theming for light mode options * refactor: fixing dark and light modes with dialogs * refactor: popup dialogs use proper themes now * refactor: alert dialogs and media edit fragments use attribute references * refactor: use input bar button attribute instead color control normal in vector tint * refactor: transparency, dialog fixes, notification fix * refactor: attrs and styles for buttons * fix: use prominent button color on the outline button's border * fix: fix the trash * refactor: remove the appearance * refactor: avatar placeholder generation, chips and element border styles * refactor: use colors instead of style references * refactor: theming changes to match designs and feedback * refactor: the titles are bold and the categories are tertiary coloured now * fix: appearance settings match preferences, search bottom bar uses themed attributes * refactor: increase setting button height * Update clear all data dialog * Update seed dialog * refactor: more qa feedback changes * feat: add new TLs and fa-rIR TLs * Update notification content dialog * Fix message requests clear all button text color * feat: re-add screenshot observer * refactor: make send tint accent color * feat: add unread background differences * fix: change unread count indicator * build: upgrade build numbers * Fix message requests popupmenu background color * fix: crash from attr reference in color attribute * build: upgrade build number * fix: message bubbles, thumbnail backgrounds, search bar visibility with input bar, attachment buttons * fix: tertiary text for keyboard page search view * fix: emoji overflow colour differences * fix: reaction pill dialog background is now correct colour * Add style to reactions tab layout * fix: appearance activity reverting primary color at correct time * fix: show call privacy warning every time instead of just once * fix: gradient background(?) and audio autoplay disable * fix: crash in all media containing documents * fix: reaction dialog heading fixes * Add style to reactions tab layout * fix: remove gradient backgrounds * fix: adding new reaction normal text attribute to try correct the tab layout * fix: ocean dark unread/read colours * build; update build number * build: update build number * Fix ocean light theme pin color * Update classic dark unread indicator text color * Reduce group name text size on join community screen * Restore tab indicator color on join community and all media screens * Home adapter rename * Updated the HomeViewModel to cancel old executors when new ones are added (#1) * Updated the HomeViewModel to cancel old executors when new ones are added * Removed a seemingly unneeded update * Explicitly remove observers when the HomeActivity is paused (#2) Co-authored-by: jubb Co-authored-by: charles Co-authored-by: Morgan Pretty * Play fixes (#1017) * fix: Prevent crash from recipient modification listener * fix: Add message selection highlight color * Handle crash from fingerprint auth * Update message selection highlight colors * Handle call answer/hangup processing appropriately * Add proguard rule for ContextMenuList * Handle more calls intents Co-authored-by: charles Co-authored-by: Morgan Pretty Co-authored-by: jubb Co-authored-by: charles --- app/proguard/proguard.pro | 1 + .../securesms/PassphrasePromptActivity.java | 11 +++++------ .../conversation/v2/ConversationActivityV2.kt | 2 +- .../securesms/service/WebRtcCallService.kt | 3 ++- .../securesms/webrtc/CallMessageProcessor.kt | 4 ++-- app/src/main/res/values/themes.xml | 4 ++++ 6 files changed, 15 insertions(+), 10 deletions(-) diff --git a/app/proguard/proguard.pro b/app/proguard/proguard.pro index 863701970c..bcbc8dadaf 100644 --- a/app/proguard/proguard.pro +++ b/app/proguard/proguard.pro @@ -2,6 +2,7 @@ -keepattributes SourceFile,LineNumberTable -keep class org.whispersystems.** { *; } -keep class org.thoughtcrime.securesms.** { *; } +-keep class org.thoughtcrime.securesms.components.menu.** { *; } -keep class org.session.** { *; } -keepclassmembers class ** { public void onEvent*(**); diff --git a/app/src/main/java/org/thoughtcrime/securesms/PassphrasePromptActivity.java b/app/src/main/java/org/thoughtcrime/securesms/PassphrasePromptActivity.java index 7f7f6f75db..63b42c4936 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/PassphrasePromptActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/PassphrasePromptActivity.java @@ -148,12 +148,11 @@ public class PassphrasePromptActivity extends BaseActionBarActivity { // Finish and proceed with the next intent. Intent nextIntent = getIntent().getParcelableExtra("next_intent"); if (nextIntent != null) { - startActivity(nextIntent); -// try { -// startActivity(nextIntent); -// } catch (java.lang.SecurityException e) { -// Log.w(TAG, "Access permission not passed from PassphraseActivity, retry sharing."); -// } + try { + startActivity(nextIntent); + } catch (java.lang.SecurityException e) { + Log.w(TAG, "Access permission not passed from PassphraseActivity, retry sharing.", e); + } } finish(); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt index 7fe583ddbc..a819c3fa22 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt @@ -660,7 +660,7 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe updateSubtitle() showOrHideInputIfNeeded() binding?.toolbarContent?.profilePictureView?.root?.update(threadRecipient) - binding!!.toolbarContent.conversationTitleView.text = when { + binding?.toolbarContent?.conversationTitleView?.text = when { threadRecipient.isLocalNumber -> getString(R.string.note_to_self) else -> threadRecipient.toShortString() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/WebRtcCallService.kt b/app/src/main/java/org/thoughtcrime/securesms/service/WebRtcCallService.kt index 079d7a21ad..0f10a93b0b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/WebRtcCallService.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/service/WebRtcCallService.kt @@ -12,6 +12,7 @@ import android.os.IBinder import android.os.ResultReceiver import android.telephony.PhoneStateListener import android.telephony.TelephonyManager +import androidx.core.content.ContextCompat import androidx.core.os.bundleOf import androidx.localbroadcastmanager.content.LocalBroadcastManager import dagger.hilt.android.AndroidEntryPoint @@ -199,7 +200,7 @@ class WebRtcCallService: Service(), CallManager.WebRtcListener { private val serviceExecutor = Executors.newSingleThreadExecutor() private val timeoutExecutor = Executors.newScheduledThreadPool(1) private val hangupOnCallAnswered = HangUpRtcOnPstnCallAnsweredListener { - startService(hangupIntent(this)) + ContextCompat.startForegroundService(this, hangupIntent(this)) } private var networkChangedReceiver: NetworkChangeReceiver? = null diff --git a/app/src/main/java/org/thoughtcrime/securesms/webrtc/CallMessageProcessor.kt b/app/src/main/java/org/thoughtcrime/securesms/webrtc/CallMessageProcessor.kt index a66dd591f6..f007ace976 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/webrtc/CallMessageProcessor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/webrtc/CallMessageProcessor.kt @@ -78,7 +78,7 @@ class CallMessageProcessor(private val context: Context, private val textSecureP private fun incomingHangup(callMessage: CallMessage) { val callId = callMessage.callId ?: return val hangupIntent = WebRtcCallService.remoteHangupIntent(context, callId) - context.startService(hangupIntent) + ContextCompat.startForegroundService(context, hangupIntent) } private fun incomingAnswer(callMessage: CallMessage) { @@ -91,7 +91,7 @@ class CallMessageProcessor(private val context: Context, private val textSecureP sdp = sdp, callId = callId ) - context.startService(answerIntent) + ContextCompat.startForegroundService(context, answerIntent) } private fun handleIceCandidates(callMessage: CallMessage) { diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 88f1a6a2f4..4c7dfd1db4 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -385,6 +385,7 @@ @color/classic_dark_1 @color/classic_dark_3 @color/classic_dark_4 + @color/classic_dark_1 @@ -548,6 +550,7 @@ @color/ocean_dark_4 ?colorPrimary @color/ocean_dark_4 + @color/ocean_dark_1 @@ -633,6 +636,7 @@ ?colorCellBackground @color/ocean_light_5 ?android:textColorPrimary + @color/ocean_light_5