diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/wrapped/SettingsWrapperFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/wrapped/SettingsWrapperFragment.kt
deleted file mode 100644
index a087a6224b..0000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/wrapped/SettingsWrapperFragment.kt
+++ /dev/null
@@ -1,52 +0,0 @@
-package org.thoughtcrime.securesms.components.settings.app.wrapped
-
-import android.os.Bundle
-import android.view.View
-import androidx.activity.OnBackPressedCallback
-import androidx.annotation.StringRes
-import androidx.appcompat.widget.Toolbar
-import androidx.fragment.app.Fragment
-import org.thoughtcrime.securesms.R
-
-/**
- * Wraps a fragment to give it a Settings style toolbar. This class should be used sparingly, and
- * is really only here as stop-gap as we migrate more settings screens to the new UI
- */
-abstract class SettingsWrapperFragment : Fragment(R.layout.settings_wrapper_fragment) {
-
- protected lateinit var toolbar: Toolbar
- private set
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- toolbar = view.findViewById(R.id.toolbar)
-
- toolbar.setNavigationOnClickListener {
- onBackPressed()
- }
-
- requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, OnBackPressed())
-
- childFragmentManager
- .beginTransaction()
- .replace(R.id.wrapped_fragment, getFragment())
- .commit()
- }
-
- abstract fun getFragment(): Fragment
-
- fun setTitle(@StringRes titleId: Int) {
- toolbar.setTitle(titleId)
- }
-
- private fun onBackPressed() {
- if (!childFragmentManager.popBackStackImmediate()) {
- requireActivity().onNavigateUp()
- }
- }
-
- private inner class OnBackPressed : OnBackPressedCallback(true) {
- override fun handleOnBackPressed() {
- onBackPressed()
- }
- }
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/wrapped/WrappedAdvancedPinPreferenceFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/wrapped/WrappedAdvancedPinPreferenceFragment.kt
deleted file mode 100644
index 4547118207..0000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/wrapped/WrappedAdvancedPinPreferenceFragment.kt
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.thoughtcrime.securesms.components.settings.app.wrapped
-
-import androidx.fragment.app.Fragment
-import org.thoughtcrime.securesms.R
-import org.thoughtcrime.securesms.preferences.AdvancedPinPreferenceFragment
-
-class WrappedAdvancedPinPreferenceFragment : SettingsWrapperFragment() {
- override fun getFragment(): Fragment {
- toolbar.setTitle(R.string.preferences__advanced_pin_settings_title)
- return AdvancedPinPreferenceFragment()
- }
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/wrapped/WrappedBackupsPreferenceFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/wrapped/WrappedBackupsPreferenceFragment.kt
deleted file mode 100644
index c8fdd15e35..0000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/wrapped/WrappedBackupsPreferenceFragment.kt
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.thoughtcrime.securesms.components.settings.app.wrapped
-
-import androidx.fragment.app.Fragment
-import org.thoughtcrime.securesms.R
-import org.thoughtcrime.securesms.preferences.BackupsPreferenceFragment
-
-class WrappedBackupsPreferenceFragment : SettingsWrapperFragment() {
- override fun getFragment(): Fragment {
- toolbar.setTitle(R.string.BackupsPreferenceFragment__chat_backups)
- return BackupsPreferenceFragment()
- }
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/wrapped/WrappedDeleteAccountFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/wrapped/WrappedDeleteAccountFragment.kt
deleted file mode 100644
index f07b2a22d1..0000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/wrapped/WrappedDeleteAccountFragment.kt
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.thoughtcrime.securesms.components.settings.app.wrapped
-
-import androidx.fragment.app.Fragment
-import org.thoughtcrime.securesms.R
-import org.thoughtcrime.securesms.delete.DeleteAccountFragment
-
-class WrappedDeleteAccountFragment : SettingsWrapperFragment() {
- override fun getFragment(): Fragment {
- toolbar.setTitle(R.string.preferences__delete_account)
- return DeleteAccountFragment()
- }
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/wrapped/WrappedEditProxyFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/wrapped/WrappedEditProxyFragment.kt
deleted file mode 100644
index 033189ccff..0000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/wrapped/WrappedEditProxyFragment.kt
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.thoughtcrime.securesms.components.settings.app.wrapped
-
-import androidx.fragment.app.Fragment
-import org.thoughtcrime.securesms.R
-import org.thoughtcrime.securesms.preferences.EditProxyFragment
-
-class WrappedEditProxyFragment : SettingsWrapperFragment() {
- override fun getFragment(): Fragment {
- toolbar.setTitle(R.string.preferences_use_proxy)
- return EditProxyFragment()
- }
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/wrapped/WrappedHelpFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/wrapped/WrappedHelpFragment.kt
deleted file mode 100644
index 8fc7d626ef..0000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/wrapped/WrappedHelpFragment.kt
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.thoughtcrime.securesms.components.settings.app.wrapped
-
-import androidx.fragment.app.Fragment
-import org.thoughtcrime.securesms.R
-import org.thoughtcrime.securesms.help.HelpFragment
-
-class WrappedHelpFragment : SettingsWrapperFragment() {
- override fun getFragment(): Fragment {
- toolbar.title = getString(R.string.preferences__help)
-
- val fragment = HelpFragment()
- fragment.arguments = arguments
-
- return fragment
- }
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/delete/DeleteAccountFragment.java b/app/src/main/java/org/thoughtcrime/securesms/delete/DeleteAccountFragment.java
index 49af8570a9..e8c5c9924f 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/delete/DeleteAccountFragment.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/delete/DeleteAccountFragment.java
@@ -24,8 +24,10 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
+import androidx.navigation.Navigation;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.snackbar.Snackbar;
@@ -60,6 +62,7 @@ public class DeleteAccountFragment extends Fragment {
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
Spinner countrySpinner = view.findViewById(R.id.delete_account_fragment_country_spinner);
View confirm = view.findViewById(R.id.delete_account_fragment_delete);
+ Toolbar toolbar = view.findViewById(R.id.toolbar);
bullets = view.findViewById(R.id.delete_account_fragment_bullets);
countryCode = view.findViewById(R.id.delete_account_fragment_country_code);
@@ -76,6 +79,7 @@ public class DeleteAccountFragment extends Fragment {
countryCode.getInput().addTextChangedListener(new AfterTextChanged(this::afterCountryCodeChanged));
countryCode.getInput().setImeOptions(EditorInfo.IME_ACTION_NEXT);
confirm.setOnClickListener(unused -> viewModel.submit());
+ toolbar.setNavigationOnClickListener(v -> Navigation.findNavController(v).popBackStack());
initializeSpinner(countrySpinner);
}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/help/HelpFragment.java b/app/src/main/java/org/thoughtcrime/securesms/help/HelpFragment.java
index 30c0bc413d..a32d2dc30c 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/help/HelpFragment.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/help/HelpFragment.java
@@ -18,7 +18,9 @@ import androidx.annotation.IdRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
+import androidx.appcompat.widget.Toolbar;
import androidx.lifecycle.ViewModelProvider;
+import androidx.navigation.Navigation;
import com.annimon.stream.Stream;
@@ -61,6 +63,7 @@ public class HelpFragment extends LoggingFragment {
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
initializeViewModels();
+ initializeToolbar(view);
initializeViews(view);
initializeListeners();
initializeObservers();
@@ -138,6 +141,11 @@ public class HelpFragment extends LoggingFragment {
});
}
+ private void initializeToolbar(@NonNull View view) {
+ Toolbar toolbar = view.findViewById(R.id.toolbar);
+ toolbar.setNavigationOnClickListener(v -> Navigation.findNavController(v).navigateUp());
+ }
+
private void handleEmojiClicked(@NonNull View clicked) {
if (clicked.isSelected()) {
clicked.setSelected(false);
diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/BackupsPreferenceFragment.java b/app/src/main/java/org/thoughtcrime/securesms/preferences/BackupsPreferenceFragment.java
index 07f8ec95d2..2f147d8a3d 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/preferences/BackupsPreferenceFragment.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/BackupsPreferenceFragment.java
@@ -17,8 +17,10 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
+import androidx.appcompat.widget.Toolbar;
import androidx.core.text.HtmlCompat;
import androidx.fragment.app.Fragment;
+import androidx.navigation.Navigation;
import com.google.android.material.timepicker.MaterialTimePicker;
import com.google.android.material.timepicker.TimeFormat;
@@ -74,6 +76,9 @@ public class BackupsPreferenceFragment extends Fragment {
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+ Toolbar toolbar = view.findViewById(R.id.toolbar);
+ toolbar.setNavigationOnClickListener(v -> Navigation.findNavController(v).popBackStack());
+
create = view.findViewById(R.id.fragment_backup_create);
folder = view.findViewById(R.id.fragment_backup_folder);
verify = view.findViewById(R.id.fragment_backup_verify);
diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/EditProxyFragment.java b/app/src/main/java/org/thoughtcrime/securesms/preferences/EditProxyFragment.java
index 2ba8164c87..2dccb7e197 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/preferences/EditProxyFragment.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/EditProxyFragment.java
@@ -11,9 +11,11 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.SwitchCompat;
+import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ShareCompat;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
+import androidx.navigation.Navigation;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
@@ -54,6 +56,9 @@ public class EditProxyFragment extends Fragment {
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+ Toolbar toolbar = view.findViewById(R.id.toolbar);
+ toolbar.setNavigationOnClickListener(v -> Navigation.findNavController(v).popBackStack());
+
this.proxySwitch = view.findViewById(R.id.edit_proxy_switch);
this.proxyTitle = view.findViewById(R.id.edit_proxy_address_title);
this.proxyText = view.findViewById(R.id.edit_proxy_host);
diff --git a/app/src/main/res/layout/delete_account_fragment.xml b/app/src/main/res/layout/delete_account_fragment.xml
index e5f78f2a71..c00f3c316c 100644
--- a/app/src/main/res/layout/delete_account_fragment.xml
+++ b/app/src/main/res/layout/delete_account_fragment.xml
@@ -11,6 +11,17 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
+
+
+
diff --git a/app/src/main/res/layout/edit_proxy_fragment.xml b/app/src/main/res/layout/edit_proxy_fragment.xml
index 06826c4a3d..eb3992beab 100644
--- a/app/src/main/res/layout/edit_proxy_fragment.xml
+++ b/app/src/main/res/layout/edit_proxy_fragment.xml
@@ -5,8 +5,17 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:padding="16dp">
+ android:layout_height="match_parent">
+
+
@@ -25,6 +35,7 @@
android:text="@string/preferences_only_use_a_proxy_if"
style="@style/Signal.Text.Preview"
android:textColor="@color/signal_text_secondary"
+ android:layout_marginStart="16dp"
app:layout_constraintTop_toBottomOf="@id/edit_proxy_switch_title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/edit_proxy_switch"/>
@@ -34,6 +45,7 @@
android:id="@+id/edit_proxy_switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:layout_marginEnd="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/edit_proxy_switch_title"
app:layout_constraintBottom_toBottomOf="@id/edit_proxy_switch_title_description"/>
@@ -43,6 +55,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="25dp"
+ android:layout_marginHorizontal="16dp"
style="@style/Signal.Text.Preview"
android:fontFamily="sans-serif-medium"
android:textColor="@color/signal_accent_primary"
@@ -53,8 +66,8 @@
android:id="@+id/edit_proxy_host"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="-2dp"
android:hint="@string/preferences_enter_proxy_address"
+ android:layout_marginHorizontal="16dp"
app:layout_constraintTop_toBottomOf="@id/edit_proxy_address_title"
tools:hint="https://proxy.parker.org"/>
@@ -63,6 +76,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
+ android:layout_marginHorizontal="16dp"
style="@style/Signal.Text.Caption"
app:layout_constraintTop_toBottomOf="@id/edit_proxy_host"
tools:text="@string/preferences_connected_to_proxy"/>
@@ -72,6 +86,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="19dp"
+ android:layout_marginHorizontal="16dp"
style="@style/Signal.Text.Body"
android:text="@string/preferences_share"
app:drawableStartCompat="@drawable/symbol_share_android_24"
@@ -90,8 +105,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
- android:layout_marginEnd="16dp"
- android:layout_marginBottom="16dp"
+ android:layout_marginEnd="32dp"
+ android:layout_marginBottom="32dp"
android:textColor="@color/white"
android:text="@string/preferences_save"
app:cornerRadius="80dp"
diff --git a/app/src/main/res/layout/fragment_backups.xml b/app/src/main/res/layout/fragment_backups.xml
index d3a076875b..62f2ca53e2 100644
--- a/app/src/main/res/layout/fragment_backups.xml
+++ b/app/src/main/res/layout/fragment_backups.xml
@@ -11,6 +11,16 @@
android:layout_height="match_parent"
android:orientation="vertical">
+
+
+
+
+ app:layout_constraintTop_toBottomOf="@id/toolbar" />
@@ -387,7 +387,7 @@
@@ -504,7 +504,7 @@
@@ -539,7 +539,7 @@