From a9541a936e59718ab26832a74581c3e113be6904 Mon Sep 17 00:00:00 2001 From: adbenitez Date: Tue, 15 Jul 2025 17:43:32 +0200 Subject: [PATCH 1/6] implement edge-to-edge --- build.gradle | 8 +++---- gradle/wrapper/gradle-wrapper.properties | 4 ++-- .../ApplicationPreferencesActivity.java | 8 ++++--- .../securesms/BaseActionBarActivity.java | 4 ++++ .../securesms/BlockedContactsActivity.java | 3 ++- .../securesms/ConversationFragment.java | 5 ++--- .../ConversationListArchiveActivity.java | 3 ++- .../securesms/qr/BackupTransferActivity.java | 4 ++-- .../org/thoughtcrime/securesms/util/Util.java | 21 +++++++++++++++++++ .../activity_application_preferences.xml | 6 ++++++ .../res/layout/activity_blocked_contacts.xml | 6 ++++++ .../activity_conversation_list_archive.xml | 6 ++++++ src/main/res/layout/activity_qr.xml | 1 + .../activity_registration_2nd_device_qr.xml | 1 + .../res/layout/activity_registration_qr.xml | 1 + .../activity_select_chat_background.xml | 1 + src/main/res/layout/all_media_activity.xml | 1 + .../res/layout/backup_provider_activity.xml | 1 + .../res/layout/contact_selection_activity.xml | 1 + src/main/res/layout/conversation_activity.xml | 4 +++- .../res/layout/conversation_list_activity.xml | 1 + src/main/res/layout/group_create_activity.xml | 1 + .../layout/instant_onboarding_activity.xml | 1 + src/main/res/layout/log_view_activity.xml | 6 ++++-- src/main/res/layout/new_contact_activity.xml | 1 + src/main/res/layout/profile_activity.xml | 1 + .../res/layout/profile_create_activity.xml | 1 + .../res/layout/proxy_settings_activity.xml | 1 + src/main/res/layout/registration_activity.xml | 1 + .../scribble_select_sticker_activity.xml | 1 + src/main/res/layout/share_activity.xml | 1 + src/main/res/layout/web_view_activity.xml | 1 + src/main/res/layout/welcome_activity.xml | 1 + 33 files changed, 88 insertions(+), 19 deletions(-) create mode 100644 src/main/res/layout/activity_application_preferences.xml create mode 100644 src/main/res/layout/activity_blocked_contacts.xml create mode 100644 src/main/res/layout/activity_conversation_list_archive.xml diff --git a/build.gradle b/build.gradle index f57a2e582..61cd598c4 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'com.android.application' version '8.5.2' + id 'com.android.application' version '8.11.1' id 'com.google.gms.google-services' version '4.4.1' } @@ -15,7 +15,7 @@ repositories { android { namespace "org.thoughtcrime.securesms" flavorDimensions "none" - compileSdk 34 + compileSdk 35 // Set NDK version to strip native libraries. // Even though we compile our libraries outside Gradle with `scripts/ndk-make.sh`, @@ -34,7 +34,7 @@ android { multiDexEnabled true minSdkVersion 21 - targetSdkVersion 34 + targetSdkVersion 35 vectorDrawables.useSupportLibrary = true @@ -151,7 +151,7 @@ dependencies { implementation 'androidx.sharetarget:sharetarget:1.2.0' implementation 'androidx.webkit:webkit:1.12.1' implementation 'androidx.multidex:multidex:2.0.1' - implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.appcompat:appcompat:1.7.1' implementation 'com.google.android.material:material:1.12.0' implementation 'androidx.legacy:legacy-support-v13:1.0.0' implementation ('androidx.preference:preference:1.2.1') { diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 43a6e163d..57939822b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=544c35d6bd849ae8a5ed0bcea39ba677dc40f49df7d1835561582da2009b961d -distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +distributionSha256Sum=20f1b1176237254a6fc204d8434196fa11a4cfb387567519c61556e8710aed78 +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java b/src/main/java/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java index 2602dc77e..b1b34bc39 100644 --- a/src/main/java/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java @@ -73,11 +73,13 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredActionBarA @Override protected void onCreate(Bundle icicle, boolean ready) { + setContentView(R.layout.activity_application_preferences); + //noinspection ConstantConditions this.getSupportActionBar().setDisplayHomeAsUpEnabled(true); if (icicle == null) { - initFragment(android.R.id.content, new ApplicationPreferenceFragment()); + initFragment(R.id.fragment, new ApplicationPreferenceFragment()); } } @@ -89,7 +91,7 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredActionBarA showBackupProvider(); return; } - Fragment fragment = getSupportFragmentManager().findFragmentById(android.R.id.content); + Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragment); fragment.onActivityResult(requestCode, resultCode, data); } @@ -262,7 +264,7 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredActionBarA FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); - fragmentTransaction.replace(android.R.id.content, fragment); + fragmentTransaction.replace(R.id.fragment, fragment); fragmentTransaction.addToBackStack(null); fragmentTransaction.commit(); } diff --git a/src/main/java/org/thoughtcrime/securesms/BaseActionBarActivity.java b/src/main/java/org/thoughtcrime/securesms/BaseActionBarActivity.java index 694911dd2..0af814bed 100644 --- a/src/main/java/org/thoughtcrime/securesms/BaseActionBarActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/BaseActionBarActivity.java @@ -7,10 +7,12 @@ import android.view.MenuItem; import android.view.ViewConfiguration; import android.view.WindowManager; +import androidx.activity.EdgeToEdge; import androidx.annotation.IdRes; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; +import androidx.core.view.WindowCompat; import androidx.fragment.app.Fragment; import org.thoughtcrime.securesms.util.DynamicTheme; @@ -31,7 +33,9 @@ public abstract class BaseActionBarActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { onPreCreate(); + EdgeToEdge.enable(this); // docs says to use: WindowCompat.enableEdgeToEdge(getWindow()); but it is not available super.onCreate(savedInstanceState); + WindowCompat.getInsetsController(getWindow(), getWindow().getDecorView()).setAppearanceLightStatusBars(false); // force white text in status bar } @Override diff --git a/src/main/java/org/thoughtcrime/securesms/BlockedContactsActivity.java b/src/main/java/org/thoughtcrime/securesms/BlockedContactsActivity.java index 388e071af..0767ef385 100644 --- a/src/main/java/org/thoughtcrime/securesms/BlockedContactsActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/BlockedContactsActivity.java @@ -30,9 +30,10 @@ public class BlockedContactsActivity extends PassphraseRequiredActionBarActivity @Override public void onCreate(Bundle bundle, boolean ready) { + setContentView(R.layout.activity_blocked_contacts); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setTitle(R.string.pref_blocked_contacts); - initFragment(android.R.id.content, new BlockedAndShareContactsFragment(), getIntent().getExtras()); + initFragment(R.id.fragment, new BlockedAndShareContactsFragment(), getIntent().getExtras()); } @Override diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationFragment.java b/src/main/java/org/thoughtcrime/securesms/ConversationFragment.java index 1644218c3..79d016212 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationFragment.java @@ -866,8 +866,7 @@ public class ConversationFragment extends MessageSelectorFragment Window window = getActivity().getWindow(); statusBarColor = window.getStatusBarColor(); - window.setStatusBarColor(getResources().getColor(R.color.action_mode_status_bar)); - + Util.setStatusBarColor(window, getResources().getColor(R.color.action_mode_status_bar)); Util.redMenuItem(menu, R.id.menu_context_delete_message); setCorrectMenuVisibility(menu); ConversationAdaptiveActionsToolbar.adjustMenuActions(menu, 10, requireActivity().getWindow().getDecorView().getMeasuredWidth()); @@ -884,7 +883,7 @@ public class ConversationFragment extends MessageSelectorFragment ((ConversationAdapter)list.getAdapter()).clearSelection(); list.getAdapter().notifyDataSetChanged(); - getActivity().getWindow().setStatusBarColor(statusBarColor); + Util.setStatusBarColor(getActivity().getWindow(), statusBarColor); actionMode = null; hideAddReactionView(); diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationListArchiveActivity.java b/src/main/java/org/thoughtcrime/securesms/ConversationListArchiveActivity.java index 0d55e3f95..b5e6ecdee 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationListArchiveActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationListArchiveActivity.java @@ -21,6 +21,7 @@ public class ConversationListArchiveActivity extends PassphraseRequiredActionBar { @Override protected void onCreate(Bundle icicle, boolean ready) { + setContentView(R.layout.activity_conversation_list_archive); getSupportActionBar().setDisplayHomeAsUpEnabled(true); if (isRelayingMessageContent(this)) { getSupportActionBar().setTitle(isSharing(this) ? R.string.chat_share_with_title : R.string.forward_to); @@ -31,7 +32,7 @@ public class ConversationListArchiveActivity extends PassphraseRequiredActionBar Bundle bundle = new Bundle(); bundle.putBoolean(ConversationListFragment.ARCHIVE, true); - initFragment(android.R.id.content, new ConversationListFragment(), bundle); + initFragment(R.id.fragment, new ConversationListFragment(), bundle); } @Override diff --git a/src/main/java/org/thoughtcrime/securesms/qr/BackupTransferActivity.java b/src/main/java/org/thoughtcrime/securesms/qr/BackupTransferActivity.java index 428b0ab33..c42c85533 100644 --- a/src/main/java/org/thoughtcrime/securesms/qr/BackupTransferActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/qr/BackupTransferActivity.java @@ -73,11 +73,11 @@ public class BackupTransferActivity extends BaseActionBarActivity { switch(transferMode) { case SENDER_SHOW_QR: - initFragment(android.R.id.content, new BackupProviderFragment(), icicle); + initFragment(R.id.backup_provider_fragment, new BackupProviderFragment(), icicle); break; case RECEIVER_SCAN_QR: - initFragment(android.R.id.content, new BackupReceiverFragment(), icicle); + initFragment(R.id.backup_provider_fragment, new BackupReceiverFragment(), icicle); break; } diff --git a/src/main/java/org/thoughtcrime/securesms/util/Util.java b/src/main/java/org/thoughtcrime/securesms/util/Util.java index 96757f110..158fe7777 100644 --- a/src/main/java/org/thoughtcrime/securesms/util/Util.java +++ b/src/main/java/org/thoughtcrime/securesms/util/Util.java @@ -23,9 +23,11 @@ import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Color; +import android.graphics.Insets; import android.graphics.Typeface; import android.net.Uri; import android.os.AsyncTask; +import android.os.Build; import android.os.Handler; import android.os.Looper; import android.text.Spannable; @@ -36,6 +38,8 @@ import android.text.style.StyleSpan; import android.util.Log; import android.view.Menu; import android.view.MenuItem; +import android.view.Window; +import android.view.WindowInsets; import android.view.accessibility.AccessibilityManager; import androidx.annotation.NonNull; @@ -111,6 +115,23 @@ public class Util { } } + public static void setStatusBarColor(Window window, int color) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.VANILLA_ICE_CREAM) { + // Android 15+ + window.getDecorView().setOnApplyWindowInsetsListener((view, insets) -> { + Insets statusBarInsets = insets.getInsets(WindowInsets.Type.statusBars()); + view.setBackgroundColor(color); + + // Adjust padding to avoid overlap + //view.setPadding(0, statusBarInsets.top, 0, 0); + return insets; + }); + } else { + // Android 14 and below + window.setStatusBarColor(color); + } + } + public static @NonNull int[] appendInt(@Nullable int[] cur, int val) { if (cur == null) { return new int[] { val }; diff --git a/src/main/res/layout/activity_application_preferences.xml b/src/main/res/layout/activity_application_preferences.xml new file mode 100644 index 000000000..2f9183508 --- /dev/null +++ b/src/main/res/layout/activity_application_preferences.xml @@ -0,0 +1,6 @@ + + diff --git a/src/main/res/layout/activity_blocked_contacts.xml b/src/main/res/layout/activity_blocked_contacts.xml new file mode 100644 index 000000000..2f9183508 --- /dev/null +++ b/src/main/res/layout/activity_blocked_contacts.xml @@ -0,0 +1,6 @@ + + diff --git a/src/main/res/layout/activity_conversation_list_archive.xml b/src/main/res/layout/activity_conversation_list_archive.xml new file mode 100644 index 000000000..2f9183508 --- /dev/null +++ b/src/main/res/layout/activity_conversation_list_archive.xml @@ -0,0 +1,6 @@ + + diff --git a/src/main/res/layout/activity_qr.xml b/src/main/res/layout/activity_qr.xml index 68530d76c..cd8cca61b 100644 --- a/src/main/res/layout/activity_qr.xml +++ b/src/main/res/layout/activity_qr.xml @@ -3,6 +3,7 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent" android:layout_width="match_parent" + android:fitsSystemWindows="true" xmlns:app="http://schemas.android.com/apk/res-auto"> diff --git a/src/main/res/layout/activity_registration_qr.xml b/src/main/res/layout/activity_registration_qr.xml index e520327ec..97febea4e 100644 --- a/src/main/res/layout/activity_registration_qr.xml +++ b/src/main/res/layout/activity_registration_qr.xml @@ -3,6 +3,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:fitsSystemWindows="true" android:orientation="vertical" android:gravity="center_horizontal" tools:context=".WelcomeActivity"> diff --git a/src/main/res/layout/activity_select_chat_background.xml b/src/main/res/layout/activity_select_chat_background.xml index 8175e2b72..4c70aac14 100644 --- a/src/main/res/layout/activity_select_chat_background.xml +++ b/src/main/res/layout/activity_select_chat_background.xml @@ -2,6 +2,7 @@ diff --git a/src/main/res/layout/all_media_activity.xml b/src/main/res/layout/all_media_activity.xml index d2c2e1a7a..7d17ede36 100644 --- a/src/main/res/layout/all_media_activity.xml +++ b/src/main/res/layout/all_media_activity.xml @@ -3,6 +3,7 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent" android:layout_width="match_parent" + android:fitsSystemWindows="true" xmlns:app="http://schemas.android.com/apk/res-auto"> diff --git a/src/main/res/layout/contact_selection_activity.xml b/src/main/res/layout/contact_selection_activity.xml index 748fef44c..8df56e0b6 100644 --- a/src/main/res/layout/contact_selection_activity.xml +++ b/src/main/res/layout/contact_selection_activity.xml @@ -2,6 +2,7 @@ diff --git a/src/main/res/layout/conversation_activity.xml b/src/main/res/layout/conversation_activity.xml index 3a3121f42..0c4839b26 100644 --- a/src/main/res/layout/conversation_activity.xml +++ b/src/main/res/layout/conversation_activity.xml @@ -1,6 +1,8 @@ - diff --git a/src/main/res/layout/group_create_activity.xml b/src/main/res/layout/group_create_activity.xml index bb15011c1..9058eae35 100644 --- a/src/main/res/layout/group_create_activity.xml +++ b/src/main/res/layout/group_create_activity.xml @@ -3,6 +3,7 @@ - diff --git a/src/main/res/layout/new_contact_activity.xml b/src/main/res/layout/new_contact_activity.xml index 75d230350..ecb15fcd4 100644 --- a/src/main/res/layout/new_contact_activity.xml +++ b/src/main/res/layout/new_contact_activity.xml @@ -4,6 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:fitsSystemWindows="true" android:fillViewport="true" tools:context=".contacts.NewContactActivity"> diff --git a/src/main/res/layout/profile_activity.xml b/src/main/res/layout/profile_activity.xml index a26676624..92fa87066 100644 --- a/src/main/res/layout/profile_activity.xml +++ b/src/main/res/layout/profile_activity.xml @@ -3,6 +3,7 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent" android:layout_width="match_parent" + android:fitsSystemWindows="true" xmlns:app="http://schemas.android.com/apk/res-auto"> diff --git a/src/main/res/layout/proxy_settings_activity.xml b/src/main/res/layout/proxy_settings_activity.xml index 4570f22f4..ff9731e71 100644 --- a/src/main/res/layout/proxy_settings_activity.xml +++ b/src/main/res/layout/proxy_settings_activity.xml @@ -4,6 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" + android:fitsSystemWindows="true" android:orientation="vertical" tools:context=".proxy.ProxySettingsActivity"> diff --git a/src/main/res/layout/registration_activity.xml b/src/main/res/layout/registration_activity.xml index e6047c32e..fdb287c44 100644 --- a/src/main/res/layout/registration_activity.xml +++ b/src/main/res/layout/registration_activity.xml @@ -4,6 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:fitsSystemWindows="true" android:fillViewport="true" tools:context=".RegistrationActivity"> diff --git a/src/main/res/layout/scribble_select_sticker_activity.xml b/src/main/res/layout/scribble_select_sticker_activity.xml index 6cb5b84d6..50b2e07cf 100644 --- a/src/main/res/layout/scribble_select_sticker_activity.xml +++ b/src/main/res/layout/scribble_select_sticker_activity.xml @@ -3,6 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" + android:fitsSystemWindows="true" android:orientation="vertical"> diff --git a/src/main/res/layout/web_view_activity.xml b/src/main/res/layout/web_view_activity.xml index ccb617a01..2d59077fd 100644 --- a/src/main/res/layout/web_view_activity.xml +++ b/src/main/res/layout/web_view_activity.xml @@ -3,6 +3,7 @@ From 08bb24891901b5f733763d897cb5822b8766264e Mon Sep 17 00:00:00 2001 From: adbenitez Date: Fri, 15 Aug 2025 23:23:02 +0200 Subject: [PATCH 2/6] revert status bar color hack --- .../securesms/ConversationFragment.java | 4 ++-- .../org/thoughtcrime/securesms/util/Util.java | 21 ------------------- 2 files changed, 2 insertions(+), 23 deletions(-) diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationFragment.java b/src/main/java/org/thoughtcrime/securesms/ConversationFragment.java index 13930b17c..571457178 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationFragment.java @@ -865,7 +865,7 @@ public class ConversationFragment extends MessageSelectorFragment Window window = getActivity().getWindow(); statusBarColor = window.getStatusBarColor(); - Util.setStatusBarColor(window, getResources().getColor(R.color.action_mode_status_bar)); + window.setStatusBarColor(getResources().getColor(R.color.action_mode_status_bar)); Util.redMenuItem(menu, R.id.menu_context_delete_message); setCorrectMenuVisibility(menu); ConversationAdaptiveActionsToolbar.adjustMenuActions(menu, 10, requireActivity().getWindow().getDecorView().getMeasuredWidth()); @@ -882,7 +882,7 @@ public class ConversationFragment extends MessageSelectorFragment ((ConversationAdapter)list.getAdapter()).clearSelection(); list.getAdapter().notifyDataSetChanged(); - Util.setStatusBarColor(getActivity().getWindow(), statusBarColor); + getActivity().getWindow().setStatusBarColor(statusBarColor); actionMode = null; hideAddReactionView(); diff --git a/src/main/java/org/thoughtcrime/securesms/util/Util.java b/src/main/java/org/thoughtcrime/securesms/util/Util.java index 158fe7777..96757f110 100644 --- a/src/main/java/org/thoughtcrime/securesms/util/Util.java +++ b/src/main/java/org/thoughtcrime/securesms/util/Util.java @@ -23,11 +23,9 @@ import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Color; -import android.graphics.Insets; import android.graphics.Typeface; import android.net.Uri; import android.os.AsyncTask; -import android.os.Build; import android.os.Handler; import android.os.Looper; import android.text.Spannable; @@ -38,8 +36,6 @@ import android.text.style.StyleSpan; import android.util.Log; import android.view.Menu; import android.view.MenuItem; -import android.view.Window; -import android.view.WindowInsets; import android.view.accessibility.AccessibilityManager; import androidx.annotation.NonNull; @@ -115,23 +111,6 @@ public class Util { } } - public static void setStatusBarColor(Window window, int color) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.VANILLA_ICE_CREAM) { - // Android 15+ - window.getDecorView().setOnApplyWindowInsetsListener((view, insets) -> { - Insets statusBarInsets = insets.getInsets(WindowInsets.Type.statusBars()); - view.setBackgroundColor(color); - - // Adjust padding to avoid overlap - //view.setPadding(0, statusBarInsets.top, 0, 0); - return insets; - }); - } else { - // Android 14 and below - window.setStatusBarColor(color); - } - } - public static @NonNull int[] appendInt(@Nullable int[] cur, int val) { if (cur == null) { return new int[] { val }; From 5faea5e40a611004332e4e2ded8a1e181764a416 Mon Sep 17 00:00:00 2001 From: adbenitez Date: Fri, 15 Aug 2025 23:24:19 +0200 Subject: [PATCH 3/6] revert empty line --- .../java/org/thoughtcrime/securesms/ConversationFragment.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationFragment.java b/src/main/java/org/thoughtcrime/securesms/ConversationFragment.java index 571457178..dcb88abf2 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationFragment.java @@ -866,6 +866,7 @@ public class ConversationFragment extends MessageSelectorFragment Window window = getActivity().getWindow(); statusBarColor = window.getStatusBarColor(); window.setStatusBarColor(getResources().getColor(R.color.action_mode_status_bar)); + Util.redMenuItem(menu, R.id.menu_context_delete_message); setCorrectMenuVisibility(menu); ConversationAdaptiveActionsToolbar.adjustMenuActions(menu, 10, requireActivity().getWindow().getDecorView().getMeasuredWidth()); From 396ed14067126e0ccda104b3599bc59c408e02be Mon Sep 17 00:00:00 2001 From: adbenitez Date: Sat, 16 Aug 2025 02:10:02 +0200 Subject: [PATCH 4/6] adapt activities to edge-to-edge --- .../ApplicationPreferencesActivity.java | 1 + .../securesms/BlockedContactsActivity.java | 1 + .../securesms/ConversationActivity.java | 1 + .../ConversationListArchiveActivity.java | 1 + .../securesms/CreateProfileActivity.java | 1 + .../securesms/GroupCreateActivity.java | 1 + .../securesms/InstantOnboardingActivity.java | 1 + .../securesms/LogViewActivity.java | 1 + .../securesms/RegistrationActivity.java | 1 + .../securesms/WebViewActivity.java | 1 + .../securesms/WebxdcStoreActivity.java | 1 + .../securesms/WelcomeActivity.java | 1 + .../contacts/NewContactActivity.java | 1 + .../preferences/ChatBackgroundActivity.java | 1 + .../proxy/ProxySettingsActivity.java | 1 + .../securesms/qr/BackupTransferActivity.java | 1 + .../securesms/qr/RegistrationQrActivity.java | 1 + .../activity_application_preferences.xml | 16 ++++++++++++---- .../res/layout/activity_blocked_contacts.xml | 16 ++++++++++++---- .../activity_conversation_list_archive.xml | 16 ++++++++++++---- src/main/res/layout/activity_qr.xml | 4 +++- .../activity_registration_2nd_device_qr.xml | 17 ++++++++++++----- .../res/layout/activity_registration_qr.xml | 17 ++++++++++++----- .../activity_select_chat_background.xml | 1 + src/main/res/layout/all_media_activity.xml | 4 +++- .../res/layout/backup_provider_activity.xml | 17 +++++++++++++---- .../res/layout/contact_selection_activity.xml | 10 +++++++++- src/main/res/layout/conversation_activity.xml | 2 +- .../res/layout/conversation_list_activity.xml | 5 ++++- src/main/res/layout/group_create_activity.xml | 18 +++++++++++++----- .../layout/instant_onboarding_activity.xml | 15 ++++++++++++--- src/main/res/layout/log_view_activity.xml | 15 ++++++++++----- src/main/res/layout/new_contact_activity.xml | 6 ++++-- src/main/res/layout/profile_activity.xml | 5 ++++- .../res/layout/profile_create_activity.xml | 4 +++- .../res/layout/proxy_settings_activity.xml | 14 +++++++++++--- src/main/res/layout/registration_activity.xml | 13 +++++++++++-- src/main/res/layout/share_activity.xml | 19 +++++++++++++------ src/main/res/layout/web_view_activity.xml | 1 + src/main/res/layout/welcome_activity.xml | 12 ++++++++++-- 40 files changed, 203 insertions(+), 61 deletions(-) diff --git a/src/main/java/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java b/src/main/java/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java index b1b34bc39..873b956ae 100644 --- a/src/main/java/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/ApplicationPreferencesActivity.java @@ -77,6 +77,7 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredActionBarA //noinspection ConstantConditions this.getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setElevation(0); // TODO: use custom toolbar instead if (icicle == null) { initFragment(R.id.fragment, new ApplicationPreferenceFragment()); diff --git a/src/main/java/org/thoughtcrime/securesms/BlockedContactsActivity.java b/src/main/java/org/thoughtcrime/securesms/BlockedContactsActivity.java index 0767ef385..aef21c16a 100644 --- a/src/main/java/org/thoughtcrime/securesms/BlockedContactsActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/BlockedContactsActivity.java @@ -33,6 +33,7 @@ public class BlockedContactsActivity extends PassphraseRequiredActionBarActivity setContentView(R.layout.activity_blocked_contacts); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setTitle(R.string.pref_blocked_contacts); + getSupportActionBar().setElevation(0); // TODO: use custom toolbar instead initFragment(R.id.fragment, new BlockedAndShareContactsFragment(), getIntent().getExtras()); } diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java b/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java index 681f82a95..08d0bd12e 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java @@ -920,6 +920,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity supportActionBar.setCustomView(R.layout.conversation_title_view); supportActionBar.setDisplayShowCustomEnabled(true); supportActionBar.setDisplayShowTitleEnabled(false); + supportActionBar.setElevation(0); // TODO: use custom toolbar instead Toolbar parent = (Toolbar) supportActionBar.getCustomView().getParent(); parent.setPadding(0,0,0,0); diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationListArchiveActivity.java b/src/main/java/org/thoughtcrime/securesms/ConversationListArchiveActivity.java index b5e6ecdee..68a29ff78 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationListArchiveActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationListArchiveActivity.java @@ -23,6 +23,7 @@ public class ConversationListArchiveActivity extends PassphraseRequiredActionBar protected void onCreate(Bundle icicle, boolean ready) { setContentView(R.layout.activity_conversation_list_archive); getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setElevation(0); // TODO: use custom toolbar instead if (isRelayingMessageContent(this)) { getSupportActionBar().setTitle(isSharing(this) ? R.string.chat_share_with_title : R.string.forward_to); getSupportActionBar().setSubtitle(R.string.chat_archived_label); diff --git a/src/main/java/org/thoughtcrime/securesms/CreateProfileActivity.java b/src/main/java/org/thoughtcrime/securesms/CreateProfileActivity.java index 5f5fbca4d..3f018f935 100644 --- a/src/main/java/org/thoughtcrime/securesms/CreateProfileActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/CreateProfileActivity.java @@ -76,6 +76,7 @@ public class CreateProfileActivity extends BaseActionBarActivity { getSupportActionBar().setTitle(R.string.pref_profile_info_headline); getSupportActionBar().setDisplayHomeAsUpEnabled(!this.fromWelcome); getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_close_white_24dp); + getSupportActionBar().setElevation(0); // TODO: use custom toolbar instead attachmentManager = new AttachmentManager(this, () -> {}); avatarChanged = false; diff --git a/src/main/java/org/thoughtcrime/securesms/GroupCreateActivity.java b/src/main/java/org/thoughtcrime/securesms/GroupCreateActivity.java index 58d041ca8..f85a525cd 100644 --- a/src/main/java/org/thoughtcrime/securesms/GroupCreateActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/GroupCreateActivity.java @@ -80,6 +80,7 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity unencrypted = getIntent().getBooleanExtra(UNENCRYPTED, false); Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_close_white_24dp); + getSupportActionBar().setElevation(0); // TODO: use custom toolbar instead groupChatId = getIntent().getIntExtra(EDIT_GROUP_CHAT_ID, 0); attachmentManager = new AttachmentManager(this, () -> {}); diff --git a/src/main/java/org/thoughtcrime/securesms/InstantOnboardingActivity.java b/src/main/java/org/thoughtcrime/securesms/InstantOnboardingActivity.java index bdc6b96fc..28b5257f2 100644 --- a/src/main/java/org/thoughtcrime/securesms/InstantOnboardingActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/InstantOnboardingActivity.java @@ -98,6 +98,7 @@ public class InstantOnboardingActivity extends BaseActionBarActivity implements Objects.requireNonNull(getSupportActionBar()).setTitle(R.string.onboarding_create_instant_account); getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setElevation(0); // TODO: use custom toolbar instead boolean fromWelcome = getIntent().getBooleanExtra(FROM_WELCOME, false); if (DcHelper.getContext(this).isConfigured() == 1) { diff --git a/src/main/java/org/thoughtcrime/securesms/LogViewActivity.java b/src/main/java/org/thoughtcrime/securesms/LogViewActivity.java index 0f6ff0b6c..4a08e35a9 100644 --- a/src/main/java/org/thoughtcrime/securesms/LogViewActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/LogViewActivity.java @@ -36,6 +36,7 @@ public class LogViewActivity extends BaseActionBarActivity { transaction.commit(); getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setElevation(0); // TODO: use custom toolbar instead } @Override diff --git a/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java b/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java index 7b6a405d4..019cedd33 100644 --- a/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java @@ -135,6 +135,7 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve actionBar.setTitle(R.string.login_header); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setHomeAsUpIndicator(R.drawable.ic_close_white_24dp); + actionBar.setElevation(0); // TODO: use custom toolbar instead } emailInput.addTextChangedListener(new TextWatcher() { diff --git a/src/main/java/org/thoughtcrime/securesms/WebViewActivity.java b/src/main/java/org/thoughtcrime/securesms/WebViewActivity.java index e6e870343..7cc852310 100644 --- a/src/main/java/org/thoughtcrime/securesms/WebViewActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/WebViewActivity.java @@ -55,6 +55,7 @@ public class WebViewActivity extends PassphraseRequiredActionBarActivity ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setDisplayHomeAsUpEnabled(true); + actionBar.setElevation(0); // TODO: use custom toolbar instead } webView = findViewById(R.id.webview); diff --git a/src/main/java/org/thoughtcrime/securesms/WebxdcStoreActivity.java b/src/main/java/org/thoughtcrime/securesms/WebxdcStoreActivity.java index 2c840ceec..2bb90a7e4 100644 --- a/src/main/java/org/thoughtcrime/securesms/WebxdcStoreActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/WebxdcStoreActivity.java @@ -48,6 +48,7 @@ public class WebxdcStoreActivity extends PassphraseRequiredActionBarActivity { if (actionBar != null) { actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setTitle(R.string.webxdc_apps); + actionBar.setElevation(0); // TODO: use custom toolbar instead } webView.setWebViewClient(new WebViewClient() { diff --git a/src/main/java/org/thoughtcrime/securesms/WelcomeActivity.java b/src/main/java/org/thoughtcrime/securesms/WelcomeActivity.java index 54760723b..8f0231a01 100644 --- a/src/main/java/org/thoughtcrime/securesms/WelcomeActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/WelcomeActivity.java @@ -107,6 +107,7 @@ public class WelcomeActivity extends BaseActionBarActivity implements DcEventCen boolean canGoBack = AccountManager.getInstance().canRollbackAccountCreation(this); supportActionBar.setDisplayHomeAsUpEnabled(canGoBack); getSupportActionBar().setTitle(canGoBack? R.string.add_account : R.string.welcome_desktop); + getSupportActionBar().setElevation(0); // TODO: use custom toolbar instead } private void registerForEvents() { diff --git a/src/main/java/org/thoughtcrime/securesms/contacts/NewContactActivity.java b/src/main/java/org/thoughtcrime/securesms/contacts/NewContactActivity.java index ae5a44eb9..b76151cb8 100644 --- a/src/main/java/org/thoughtcrime/securesms/contacts/NewContactActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/contacts/NewContactActivity.java @@ -42,6 +42,7 @@ public class NewContactActivity extends PassphraseRequiredActionBarActivity actionBar.setTitle(R.string.menu_new_classic_contact); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setHomeAsUpIndicator(R.drawable.ic_close_white_24dp); + actionBar.setElevation(0); // TODO: use custom toolbar instead } nameInput = ViewUtil.findById(this, R.id.name_text); diff --git a/src/main/java/org/thoughtcrime/securesms/preferences/ChatBackgroundActivity.java b/src/main/java/org/thoughtcrime/securesms/preferences/ChatBackgroundActivity.java index f4b58b581..b2d85c0d5 100644 --- a/src/main/java/org/thoughtcrime/securesms/preferences/ChatBackgroundActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/preferences/ChatBackgroundActivity.java @@ -71,6 +71,7 @@ public class ChatBackgroundActivity extends PassphraseRequiredActionBarActivity actionBar.setTitle(R.string.pref_background); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setHomeAsUpIndicator(R.drawable.ic_close_white_24dp); + actionBar.setElevation(0); // TODO: use custom toolbar instead } } diff --git a/src/main/java/org/thoughtcrime/securesms/proxy/ProxySettingsActivity.java b/src/main/java/org/thoughtcrime/securesms/proxy/ProxySettingsActivity.java index 6a9e8b63c..e21fe2404 100644 --- a/src/main/java/org/thoughtcrime/securesms/proxy/ProxySettingsActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/proxy/ProxySettingsActivity.java @@ -50,6 +50,7 @@ public class ProxySettingsActivity extends BaseActionBarActivity if (actionBar != null) { actionBar.setTitle(R.string.proxy_settings); actionBar.setDisplayHomeAsUpEnabled(true); + actionBar.setElevation(0); // TODO: use custom toolbar instead } adapter = new ProxyListAdapter(this); diff --git a/src/main/java/org/thoughtcrime/securesms/qr/BackupTransferActivity.java b/src/main/java/org/thoughtcrime/securesms/qr/BackupTransferActivity.java index c42c85533..6673c5999 100644 --- a/src/main/java/org/thoughtcrime/securesms/qr/BackupTransferActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/qr/BackupTransferActivity.java @@ -85,6 +85,7 @@ public class BackupTransferActivity extends BaseActionBarActivity { supportActionBar.setDisplayHomeAsUpEnabled(true); supportActionBar.setHomeAsUpIndicator(R.drawable.ic_close_white_24dp); supportActionBar.setTitle(title); + supportActionBar.setElevation(0); // TODO: use custom toolbar instead } @Override diff --git a/src/main/java/org/thoughtcrime/securesms/qr/RegistrationQrActivity.java b/src/main/java/org/thoughtcrime/securesms/qr/RegistrationQrActivity.java index ba27ce4a1..20d76ace3 100644 --- a/src/main/java/org/thoughtcrime/securesms/qr/RegistrationQrActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/qr/RegistrationQrActivity.java @@ -42,6 +42,7 @@ public class RegistrationQrActivity extends BaseActionBarActivity { getSupportActionBar().setTitle(R.string.scan_invitation_code); } getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setElevation(0); // TODO: use custom toolbar instead barcodeScannerView = findViewById(R.id.zxing_barcode_scanner); barcodeScannerView.setStatusText(getString(R.string.qrscan_hint) + "\n "); diff --git a/src/main/res/layout/activity_application_preferences.xml b/src/main/res/layout/activity_application_preferences.xml index 87e25a8d2..5dc280304 100644 --- a/src/main/res/layout/activity_application_preferences.xml +++ b/src/main/res/layout/activity_application_preferences.xml @@ -1,7 +1,15 @@ - \ No newline at end of file + android:layout_width="match_parent" + android:layout_height="match_parent"> + + + + diff --git a/src/main/res/layout/activity_blocked_contacts.xml b/src/main/res/layout/activity_blocked_contacts.xml index 3413157ec..5dc280304 100644 --- a/src/main/res/layout/activity_blocked_contacts.xml +++ b/src/main/res/layout/activity_blocked_contacts.xml @@ -1,7 +1,15 @@ - + android:layout_width="match_parent" + android:layout_height="match_parent"> + + + + diff --git a/src/main/res/layout/activity_conversation_list_archive.xml b/src/main/res/layout/activity_conversation_list_archive.xml index 3413157ec..5dc280304 100644 --- a/src/main/res/layout/activity_conversation_list_archive.xml +++ b/src/main/res/layout/activity_conversation_list_archive.xml @@ -1,7 +1,15 @@ - + android:layout_width="match_parent" + android:layout_height="match_parent"> + + + + diff --git a/src/main/res/layout/activity_qr.xml b/src/main/res/layout/activity_qr.xml index cd8cca61b..5420180f9 100644 --- a/src/main/res/layout/activity_qr.xml +++ b/src/main/res/layout/activity_qr.xml @@ -4,11 +4,13 @@ android:layout_height="match_parent" android:layout_width="match_parent" android:fitsSystemWindows="true" + android:background="?attr/colorPrimary" xmlns:app="http://schemas.android.com/apk/res-auto"> + android:layout_height="wrap_content" + app:elevation="0dp"> - + + + android:gravity="center_horizontal"> + + diff --git a/src/main/res/layout/activity_registration_qr.xml b/src/main/res/layout/activity_registration_qr.xml index 97febea4e..a55cec9a3 100644 --- a/src/main/res/layout/activity_registration_qr.xml +++ b/src/main/res/layout/activity_registration_qr.xml @@ -1,12 +1,17 @@ - + + + android:gravity="center_horizontal"> + + diff --git a/src/main/res/layout/activity_select_chat_background.xml b/src/main/res/layout/activity_select_chat_background.xml index 4c70aac14..aaec2e2d3 100644 --- a/src/main/res/layout/activity_select_chat_background.xml +++ b/src/main/res/layout/activity_select_chat_background.xml @@ -3,6 +3,7 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout_container" android:fitsSystemWindows="true" + android:background="?attr/colorPrimary" android:layout_width="match_parent" android:layout_height="match_parent"> diff --git a/src/main/res/layout/all_media_activity.xml b/src/main/res/layout/all_media_activity.xml index 7d17ede36..d09463246 100644 --- a/src/main/res/layout/all_media_activity.xml +++ b/src/main/res/layout/all_media_activity.xml @@ -4,11 +4,13 @@ android:layout_height="match_parent" android:layout_width="match_parent" android:fitsSystemWindows="true" + android:background="?attr/colorPrimary" xmlns:app="http://schemas.android.com/apk/res-auto"> + android:layout_height="wrap_content" + app:elevation="0dp"> - + android:layout_width="match_parent" + android:layout_height="match_parent"> + + + + diff --git a/src/main/res/layout/contact_selection_activity.xml b/src/main/res/layout/contact_selection_activity.xml index 8df56e0b6..34b7c13cb 100644 --- a/src/main/res/layout/contact_selection_activity.xml +++ b/src/main/res/layout/contact_selection_activity.xml @@ -3,6 +3,7 @@ android:layout_height="fill_parent" android:layout_width="fill_parent" android:fitsSystemWindows="true" + android:background="?attr/colorPrimary" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> @@ -17,9 +18,16 @@ android:theme="?attr/actionBarStyle" app:contentInsetStartWithNavigation="0dp"/> - + + + + \ No newline at end of file diff --git a/src/main/res/layout/conversation_activity.xml b/src/main/res/layout/conversation_activity.xml index 0c4839b26..dff2668e4 100644 --- a/src/main/res/layout/conversation_activity.xml +++ b/src/main/res/layout/conversation_activity.xml @@ -3,6 +3,7 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:fitsSystemWindows="true" + android:background="?attr/colorPrimary" android:layout_height="match_parent" android:layout_width="match_parent"> diff --git a/src/main/res/layout/conversation_list_activity.xml b/src/main/res/layout/conversation_list_activity.xml index eb37c5dd3..78e5b568c 100644 --- a/src/main/res/layout/conversation_list_activity.xml +++ b/src/main/res/layout/conversation_list_activity.xml @@ -4,6 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:id="@id/container" android:orientation="vertical" + android:background="?attr/colorPrimary" android:fitsSystemWindows="true" android:layout_width="match_parent" android:layout_height="match_parent"> @@ -94,7 +95,9 @@ + android:layout_height="match_parent" + android:background="?android:attr/windowBackground" + /> + - + + + diff --git a/src/main/res/layout/instant_onboarding_activity.xml b/src/main/res/layout/instant_onboarding_activity.xml index f5a51ef5e..6921c8b6b 100644 --- a/src/main/res/layout/instant_onboarding_activity.xml +++ b/src/main/res/layout/instant_onboarding_activity.xml @@ -1,8 +1,15 @@ - + android:layout_width="match_parent" + android:layout_height="match_parent"> + + + + diff --git a/src/main/res/layout/log_view_activity.xml b/src/main/res/layout/log_view_activity.xml index 0d2c5b6ee..9d6e1f4eb 100644 --- a/src/main/res/layout/log_view_activity.xml +++ b/src/main/res/layout/log_view_activity.xml @@ -1,11 +1,16 @@ - - - \ No newline at end of file + + + diff --git a/src/main/res/layout/new_contact_activity.xml b/src/main/res/layout/new_contact_activity.xml index ecb15fcd4..52bd86423 100644 --- a/src/main/res/layout/new_contact_activity.xml +++ b/src/main/res/layout/new_contact_activity.xml @@ -5,14 +5,16 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" + android:background="?attr/colorPrimary" android:fillViewport="true" tools:context=".contacts.NewContactActivity"> + android:layout_height="wrap_content" + app:elevation="0dp"> diff --git a/src/main/res/layout/profile_create_activity.xml b/src/main/res/layout/profile_create_activity.xml index b51b1b5fd..4bebd6258 100644 --- a/src/main/res/layout/profile_create_activity.xml +++ b/src/main/res/layout/profile_create_activity.xml @@ -3,14 +3,16 @@ - + + @@ -22,3 +28,5 @@ android:layout_height="wrap_content" /> + + diff --git a/src/main/res/layout/registration_activity.xml b/src/main/res/layout/registration_activity.xml index fdb287c44..500387aae 100644 --- a/src/main/res/layout/registration_activity.xml +++ b/src/main/res/layout/registration_activity.xml @@ -1,11 +1,18 @@ - + + + + diff --git a/src/main/res/layout/share_activity.xml b/src/main/res/layout/share_activity.xml index b3a3e0d69..6eb480227 100644 --- a/src/main/res/layout/share_activity.xml +++ b/src/main/res/layout/share_activity.xml @@ -1,11 +1,16 @@ + - + + + diff --git a/src/main/res/layout/web_view_activity.xml b/src/main/res/layout/web_view_activity.xml index 2d59077fd..7dccdb72a 100644 --- a/src/main/res/layout/web_view_activity.xml +++ b/src/main/res/layout/web_view_activity.xml @@ -4,6 +4,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" + android:background="?attr/colorPrimary" android:orientation="vertical"> - + + + From a803d472bf462968321bcad37e03ed10cfc73bf3 Mon Sep 17 00:00:00 2001 From: adbenitez Date: Sat, 16 Aug 2025 03:19:37 +0200 Subject: [PATCH 5/6] don't use setStatusBarColor --- .../securesms/AllMediaDocumentsFragment.java | 8 -------- .../thoughtcrime/securesms/AllMediaGalleryFragment.java | 8 -------- .../securesms/BaseConversationListFragment.java | 8 -------- .../securesms/ContactSelectionListFragment.java | 8 -------- .../org/thoughtcrime/securesms/ConversationFragment.java | 9 --------- .../java/org/thoughtcrime/securesms/ProfileFragment.java | 8 -------- src/main/res/values/themes.xml | 4 ++-- 7 files changed, 2 insertions(+), 51 deletions(-) diff --git a/src/main/java/org/thoughtcrime/securesms/AllMediaDocumentsFragment.java b/src/main/java/org/thoughtcrime/securesms/AllMediaDocumentsFragment.java index 32b8acdcd..96446d6f8 100644 --- a/src/main/java/org/thoughtcrime/securesms/AllMediaDocumentsFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/AllMediaDocumentsFragment.java @@ -11,7 +11,6 @@ import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.view.Window; import android.widget.TextView; import androidx.annotation.NonNull; @@ -221,16 +220,11 @@ public class AllMediaDocumentsFragment private class ActionModeCallback implements ActionMode.Callback { - private int originalStatusBarColor; - @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { mode.getMenuInflater().inflate(R.menu.profile_context, menu); mode.setTitle("1"); - Window window = getActivity().getWindow(); - originalStatusBarColor = window.getStatusBarColor(); - window.setStatusBarColor(getResources().getColor(R.color.action_mode_status_bar)); setCorrectMenuVisibility(menu); return true; } @@ -279,8 +273,6 @@ public class AllMediaDocumentsFragment public void onDestroyActionMode(ActionMode mode) { actionMode = null; getListAdapter().clearSelection(); - - getActivity().getWindow().setStatusBarColor(originalStatusBarColor); } } } diff --git a/src/main/java/org/thoughtcrime/securesms/AllMediaGalleryFragment.java b/src/main/java/org/thoughtcrime/securesms/AllMediaGalleryFragment.java index a3c742027..e9b533699 100644 --- a/src/main/java/org/thoughtcrime/securesms/AllMediaGalleryFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/AllMediaGalleryFragment.java @@ -11,7 +11,6 @@ import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.view.Window; import android.widget.TextView; import androidx.annotation.NonNull; @@ -212,16 +211,11 @@ public class AllMediaGalleryFragment private class ActionModeCallback implements ActionMode.Callback { - private int originalStatusBarColor; - @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { mode.getMenuInflater().inflate(R.menu.profile_context, menu); mode.setTitle("1"); - Window window = getActivity().getWindow(); - originalStatusBarColor = window.getStatusBarColor(); - window.setStatusBarColor(getResources().getColor(R.color.action_mode_status_bar)); setCorrectMenuVisibility(menu); return true; } @@ -266,8 +260,6 @@ public class AllMediaGalleryFragment public void onDestroyActionMode(ActionMode mode) { actionMode = null; getListAdapter().clearSelection(); - - getActivity().getWindow().setStatusBarColor(originalStatusBarColor); } } } diff --git a/src/main/java/org/thoughtcrime/securesms/BaseConversationListFragment.java b/src/main/java/org/thoughtcrime/securesms/BaseConversationListFragment.java index b6cca750f..e2f347f44 100644 --- a/src/main/java/org/thoughtcrime/securesms/BaseConversationListFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/BaseConversationListFragment.java @@ -10,9 +10,7 @@ import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; import android.content.Intent; -import android.content.res.TypedArray; import android.graphics.Bitmap; -import android.graphics.Color; import android.net.Uri; import android.os.AsyncTask; import android.view.Menu; @@ -401,8 +399,6 @@ public abstract class BaseConversationListFragment extends Fragment implements A mode.setTitle("1"); - requireActivity().getWindow().setStatusBarColor(getResources().getColor(R.color.action_mode_status_bar)); - return true; } @@ -445,10 +441,6 @@ public abstract class BaseConversationListFragment extends Fragment implements A actionMode = null; getListAdapter().initializeBatchMode(false); - TypedArray color = requireActivity().getTheme().obtainStyledAttributes(new int[]{android.R.attr.statusBarColor}); - requireActivity().getWindow().setStatusBarColor(color.getColor(0, Color.BLACK)); - color.recycle(); - Context context = getContext(); if (context != null) { fab.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.ic_add_white_24dp)); diff --git a/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java b/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java index c93ffcb07..24d1adaf5 100644 --- a/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/ContactSelectionListFragment.java @@ -23,8 +23,6 @@ import android.Manifest; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Intent; -import android.content.res.TypedArray; -import android.graphics.Color; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; @@ -35,7 +33,6 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.widget.Toast; import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; @@ -136,7 +133,6 @@ public class ContactSelectionListFragment extends Fragment public boolean onCreateActionMode(ActionMode actionMode, Menu menu) { MenuInflater inflater = getActivity().getMenuInflater(); inflater.inflate(R.menu.contact_list, menu); - getActivity().getWindow().setStatusBarColor(getResources().getColor(R.color.action_mode_status_bar)); setCorrectMenuVisibility(menu); actionMode.setTitle("1"); return true; @@ -167,10 +163,6 @@ public class ContactSelectionListFragment extends Fragment public void onDestroyActionMode(ActionMode actionMode) { ContactSelectionListFragment.this.actionMode = null; getContactSelectionListAdapter().resetActionModeSelection(); - - TypedArray color = getActivity().getTheme().obtainStyledAttributes(new int[]{android.R.attr.statusBarColor}); - getActivity().getWindow().setStatusBarColor(color.getColor(0, Color.BLACK)); - color.recycle(); } }; diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationFragment.java b/src/main/java/org/thoughtcrime/securesms/ConversationFragment.java index dcb88abf2..6e3bd7905 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationFragment.java @@ -32,7 +32,6 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.view.Window; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.TextView; @@ -854,8 +853,6 @@ public class ConversationFragment extends MessageSelectorFragment private class ActionModeCallback implements ActionMode.Callback { - private int statusBarColor; - @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { MenuInflater inflater = mode.getMenuInflater(); @@ -863,10 +860,6 @@ public class ConversationFragment extends MessageSelectorFragment mode.setTitle("1"); - Window window = getActivity().getWindow(); - statusBarColor = window.getStatusBarColor(); - window.setStatusBarColor(getResources().getColor(R.color.action_mode_status_bar)); - Util.redMenuItem(menu, R.id.menu_context_delete_message); setCorrectMenuVisibility(menu); ConversationAdaptiveActionsToolbar.adjustMenuActions(menu, 10, requireActivity().getWindow().getDecorView().getMeasuredWidth()); @@ -883,8 +876,6 @@ public class ConversationFragment extends MessageSelectorFragment ((ConversationAdapter)list.getAdapter()).clearSelection(); list.getAdapter().notifyDataSetChanged(); - getActivity().getWindow().setStatusBarColor(statusBarColor); - actionMode = null; hideAddReactionView(); } diff --git a/src/main/java/org/thoughtcrime/securesms/ProfileFragment.java b/src/main/java/org/thoughtcrime/securesms/ProfileFragment.java index fd63c3a0c..8f072a3cb 100644 --- a/src/main/java/org/thoughtcrime/securesms/ProfileFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/ProfileFragment.java @@ -3,14 +3,12 @@ package org.thoughtcrime.securesms; import android.app.Activity; import android.content.Context; import android.content.Intent; -import android.content.res.Configuration; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.view.Window; import android.widget.Toast; import androidx.annotation.NonNull; @@ -249,8 +247,6 @@ public class ProfileFragment extends Fragment private class ActionModeCallback implements ActionMode.Callback { - private int originalStatusBarColor; - @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { mode.getMenuInflater().inflate(R.menu.profile_context, menu); @@ -263,9 +259,6 @@ public class ProfileFragment extends Fragment menu.findItem(R.id.menu_select_all).setVisible(false); mode.setTitle("1"); - Window window = requireActivity().getWindow(); - originalStatusBarColor = window.getStatusBarColor(); - window.setStatusBarColor(getResources().getColor(R.color.action_mode_status_bar)); return true; } @@ -306,7 +299,6 @@ public class ProfileFragment extends Fragment public void onDestroyActionMode(ActionMode mode) { actionMode = null; adapter.clearSelection(); - requireActivity().getWindow().setStatusBarColor(originalStatusBarColor); } } diff --git a/src/main/res/values/themes.xml b/src/main/res/values/themes.xml index 1d665fc92..a79ef236d 100644 --- a/src/main/res/values/themes.xml +++ b/src/main/res/values/themes.xml @@ -37,7 +37,7 @@ light @style/TextSecure.LightActionBar @style/TextSecure.LightActionBar.TabBar - @color/action_mode_status_bar + @color/delta_primary @color/delta_primary @color/delta_primary @@ -152,7 +152,7 @@ @color/gray95 @color/gray95 @style/ThemeOverlay.AppCompat.Dark - @color/action_mode_status_bar + @color/gray95 @color/text_color_dark_theme @color/text_color_secondary_dark_theme From 4b20e3f41f89617be6b58e9a648b9f240d497dc8 Mon Sep 17 00:00:00 2001 From: adbenitez Date: Sat, 16 Aug 2025 16:15:23 +0200 Subject: [PATCH 6/6] update changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a685ba19..23618a7b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Delta Chat Android Changelog +## Unreleased + +* target Android 15 + ## v2.11.0 2025-08