diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationSettingsDialog.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationSettingsDialog.java index 0f38d964e1f077a9a707744d87177906dccee444..4806a4e7a02a01299942d0c6c30ea060b7d0d9ba 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationSettingsDialog.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationSettingsDialog.java @@ -5,7 +5,7 @@ import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.TextView; +import android.widget.Button; import org.briarproject.bramble.api.contact.ContactId; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; @@ -13,6 +13,7 @@ import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.fragment.BaseFragment; +import org.briarproject.briar.android.widget.OnboardingFullDialogFragment; import java.util.logging.Logger; @@ -95,7 +96,7 @@ public class ConversationSettingsDialog extends DialogFragment { switchDisappearingMessages.setOnCheckedChangeListener( (button, value) -> viewModel.setAutoDeleteTimerEnabled(value)); - TextView buttonLearnMore = + Button buttonLearnMore = view.findViewById(R.id.buttonLearnMore); buttonLearnMore.setOnClickListener(e -> showLearnMoreDialog()); @@ -113,10 +114,10 @@ public class ConversationSettingsDialog extends DialogFragment { } private void showLearnMoreDialog() { - ConversationSettingsLearnMoreDialog - dialog = new ConversationSettingsLearnMoreDialog(); - dialog.show(getChildFragmentManager(), - ConversationSettingsLearnMoreDialog.TAG); + OnboardingFullDialogFragment.newInstance( + R.string.disappearing_messages_title, + R.string.disappearing_messages_explanation_long + ).show(getChildFragmentManager(), OnboardingFullDialogFragment.TAG); } } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationSettingsLearnMoreDialog.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationSettingsLearnMoreDialog.java deleted file mode 100644 index 5f5b960fd01c837d37697c86afd72ce2269abeef..0000000000000000000000000000000000000000 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationSettingsLearnMoreDialog.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.briarproject.briar.android.conversation; - -import android.app.Dialog; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; - -import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; -import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; -import org.briarproject.briar.R; - -import androidx.annotation.Nullable; -import androidx.appcompat.app.AlertDialog; -import androidx.fragment.app.DialogFragment; -import androidx.fragment.app.FragmentActivity; - -@MethodsNotNullByDefault -@ParametersNotNullByDefault -public class ConversationSettingsLearnMoreDialog extends DialogFragment { - - final static String TAG = - ConversationSettingsLearnMoreDialog.class.getName(); - - @Override - public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { - FragmentActivity activity = requireActivity(); - - AlertDialog.Builder builder = new AlertDialog.Builder(activity, - R.style.OnboardingDialogTheme); - - LayoutInflater inflater = LayoutInflater.from(builder.getContext()); - View view = inflater.inflate( - R.layout.fragment_conversation_settings_learn_more, null); - builder.setView(view); - - builder.setTitle(R.string.disappearing_messages_title); - builder.setPositiveButton(R.string.ok, null); - - return builder.create(); - } - - -} diff --git a/briar-android/src/main/java/org/briarproject/briar/android/widget/OnboardingFullDialogFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/widget/OnboardingFullDialogFragment.java new file mode 100644 index 0000000000000000000000000000000000000000..cf2fd2d72f8e51dbaa0b78e643e41b82908a13e9 --- /dev/null +++ b/briar-android/src/main/java/org/briarproject/briar/android/widget/OnboardingFullDialogFragment.java @@ -0,0 +1,66 @@ +package org.briarproject.briar.android.widget; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import org.briarproject.bramble.api.nullsafety.NotNullByDefault; +import org.briarproject.briar.R; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import androidx.appcompat.widget.Toolbar; +import androidx.fragment.app.DialogFragment; + +@NotNullByDefault +public class OnboardingFullDialogFragment extends DialogFragment { + + public final static String TAG = + OnboardingFullDialogFragment.class.getName(); + + private final static String RES_TITLE = "resTitle"; + private final static String RES_CONTENT = "resContent"; + + public static OnboardingFullDialogFragment newInstance(@StringRes int title, + @StringRes int content) { + Bundle args = new Bundle(); + args.putInt(RES_TITLE, title); + args.putInt(RES_CONTENT, content); + OnboardingFullDialogFragment f = new OnboardingFullDialogFragment(); + f.setArguments(args); + return f; + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setStyle(DialogFragment.STYLE_NORMAL, + R.style.BriarFullScreenDialogTheme); + } + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, + @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_onboarding_full, + container, false); + + Bundle args = requireArguments(); + + Toolbar toolbar = view.findViewById(R.id.toolbar); + toolbar.setNavigationOnClickListener(v -> dismiss()); + toolbar.setTitle(args.getInt(RES_TITLE)); + + TextView contentView = view.findViewById(R.id.contentView); + contentView.setText(args.getInt(RES_CONTENT)); + + view.findViewById(R.id.button).setOnClickListener(v -> dismiss()); + + return view; + } + +} diff --git a/briar-android/src/main/res/layout/fragment_conversation_settings.xml b/briar-android/src/main/res/layout/fragment_conversation_settings.xml index c363d9b097d43f0d15aa079f9b892a8f3773b164..698840626dc9d4c34f99540793fce3f90ce39e1c 100644 --- a/briar-android/src/main/res/layout/fragment_conversation_settings.xml +++ b/briar-android/src/main/res/layout/fragment_conversation_settings.xml @@ -19,7 +19,6 @@ + app:layout_constraintTop_toBottomOf="@+id/imageViewBomb" + tools:enabled="true" /> - @@ -68,4 +68,4 @@ - \ No newline at end of file + diff --git a/briar-android/src/main/res/layout/fragment_conversation_settings_learn_more.xml b/briar-android/src/main/res/layout/fragment_conversation_settings_learn_more.xml deleted file mode 100644 index 3e3c6260d31cd51fb54a673dff09e77733f98009..0000000000000000000000000000000000000000 --- a/briar-android/src/main/res/layout/fragment_conversation_settings_learn_more.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/briar-android/src/main/res/layout/fragment_onboarding_full.xml b/briar-android/src/main/res/layout/fragment_onboarding_full.xml new file mode 100644 index 0000000000000000000000000000000000000000..82ae00f6939af7e7b353809a4ee064d59520b56c --- /dev/null +++ b/briar-android/src/main/res/layout/fragment_onboarding_full.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + +