kopia lustrzana https://github.com/ryukoposting/Signal-Android
Add screen to set Signal as default SMS.
rodzic
83905dd6a6
commit
23a328f12d
|
@ -1,11 +1,9 @@
|
||||||
package org.thoughtcrime.securesms.exporter.flow
|
package org.thoughtcrime.securesms.exporter.flow
|
||||||
|
|
||||||
import android.content.Intent
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.navigation.fragment.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
import org.signal.smsexporter.BecomeSmsAppFailure
|
|
||||||
import org.signal.smsexporter.DefaultSmsHelper
|
import org.signal.smsexporter.DefaultSmsHelper
|
||||||
import org.thoughtcrime.securesms.R
|
import org.thoughtcrime.securesms.R
|
||||||
import org.thoughtcrime.securesms.databinding.ExportYourSmsMessagesFragmentBinding
|
import org.thoughtcrime.securesms.databinding.ExportYourSmsMessagesFragmentBinding
|
||||||
|
@ -16,10 +14,6 @@ import org.thoughtcrime.securesms.util.navigation.safeNavigate
|
||||||
*/
|
*/
|
||||||
class ExportYourSmsMessagesFragment : Fragment(R.layout.export_your_sms_messages_fragment) {
|
class ExportYourSmsMessagesFragment : Fragment(R.layout.export_your_sms_messages_fragment) {
|
||||||
|
|
||||||
companion object {
|
|
||||||
private val REQUEST_CODE = 1
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
val binding = ExportYourSmsMessagesFragmentBinding.bind(view)
|
val binding = ExportYourSmsMessagesFragmentBinding.bind(view)
|
||||||
|
|
||||||
|
@ -27,34 +21,12 @@ class ExportYourSmsMessagesFragment : Fragment(R.layout.export_your_sms_messages
|
||||||
requireActivity().finish()
|
requireActivity().finish()
|
||||||
}
|
}
|
||||||
|
|
||||||
DefaultSmsHelper.becomeDefaultSms(requireContext()).either(
|
binding.continueButton.setOnClickListener {
|
||||||
onSuccess = {
|
if (DefaultSmsHelper.isDefaultSms(requireContext())) {
|
||||||
binding.continueButton.setOnClickListener { _ ->
|
findNavController().safeNavigate(ExportYourSmsMessagesFragmentDirections.actionExportYourSmsMessagesFragmentToExportingSmsMessagesFragment())
|
||||||
startActivityForResult(it, REQUEST_CODE)
|
} else {
|
||||||
}
|
findNavController().safeNavigate(ExportYourSmsMessagesFragmentDirections.actionExportYourSmsMessagesFragmentToSetSignalAsDefaultSmsAppFragment())
|
||||||
},
|
|
||||||
onFailure = {
|
|
||||||
when (it) {
|
|
||||||
BecomeSmsAppFailure.ALREADY_DEFAULT_SMS -> {
|
|
||||||
binding.continueButton.setOnClickListener {
|
|
||||||
navigateToExporter()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
BecomeSmsAppFailure.ROLE_IS_NOT_AVAILABLE -> {
|
|
||||||
error("Should never happen.")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
|
||||||
if (requestCode == REQUEST_CODE && DefaultSmsHelper.isDefaultSms(requireContext())) {
|
|
||||||
navigateToExporter()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun navigateToExporter() {
|
|
||||||
findNavController().safeNavigate(ExportYourSmsMessagesFragmentDirections.actionExportYourSmsMessagesFragmentToExportingSmsMessagesFragment())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
package org.thoughtcrime.securesms.exporter.flow
|
||||||
|
|
||||||
|
import android.content.Intent
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.view.View
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
|
import androidx.navigation.fragment.findNavController
|
||||||
|
import org.signal.smsexporter.BecomeSmsAppFailure
|
||||||
|
import org.signal.smsexporter.DefaultSmsHelper
|
||||||
|
import org.thoughtcrime.securesms.R
|
||||||
|
import org.thoughtcrime.securesms.databinding.SetSignalAsDefaultSmsAppFragmentBinding
|
||||||
|
import org.thoughtcrime.securesms.util.navigation.safeNavigate
|
||||||
|
|
||||||
|
class SetSignalAsDefaultSmsAppFragment : Fragment(R.layout.set_signal_as_default_sms_app_fragment) {
|
||||||
|
companion object {
|
||||||
|
private const val REQUEST_CODE = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
|
val binding = SetSignalAsDefaultSmsAppFragmentBinding.bind(view)
|
||||||
|
|
||||||
|
binding.continueButton.setOnClickListener {
|
||||||
|
DefaultSmsHelper.becomeDefaultSms(requireContext()).either(
|
||||||
|
onSuccess = {
|
||||||
|
startActivityForResult(it, REQUEST_CODE)
|
||||||
|
},
|
||||||
|
onFailure = {
|
||||||
|
when (it) {
|
||||||
|
BecomeSmsAppFailure.ALREADY_DEFAULT_SMS -> navigateToExporter()
|
||||||
|
BecomeSmsAppFailure.ROLE_IS_NOT_AVAILABLE -> error("Should never happen")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||||
|
if (requestCode == REQUEST_CODE && DefaultSmsHelper.isDefaultSms(requireContext())) {
|
||||||
|
navigateToExporter()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun navigateToExporter() {
|
||||||
|
findNavController().safeNavigate(SetSignalAsDefaultSmsAppFragmentDirections.actionSetSignalAsDefaultSmsAppFragmentToExportingSmsMessagesFragment())
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,64 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
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">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.Toolbar
|
||||||
|
android:id="@+id/toolbar"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="64dp"
|
||||||
|
android:minHeight="64dp"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:navigationIcon="@drawable/ic_arrow_left_24" />
|
||||||
|
|
||||||
|
<!-- TODO [alex] - Image -->
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/image"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="70dp"
|
||||||
|
android:importantForAccessibility="no"
|
||||||
|
android:scaleType="centerInside"
|
||||||
|
app:layout_constraintBottom_toTopOf="@id/continue_button"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/description"
|
||||||
|
app:layout_constraintVertical_bias="0" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/headline"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="32dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="@string/SetSignalAsDefaultSmsAppFragment__first_set_signal_as_the_default_sms_app"
|
||||||
|
android:textAppearance="@style/Signal.Text.HeadlineLarge"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/toolbar" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/description"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="32dp"
|
||||||
|
android:layout_marginTop="24dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:textAppearance="@style/Signal.Text.BodyLarge"
|
||||||
|
android:textColor="@color/signal_colorOnSurfaceVariant"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/headline"
|
||||||
|
tools:text="WIP Placeholder text" />
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/continue_button"
|
||||||
|
style="@style/Signal.Widget.Button.Large.Tonal"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="44dp"
|
||||||
|
android:minWidth="221dp"
|
||||||
|
android:text="@string/SetSignalAsDefaultSmsAppFragment__next"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/description"
|
||||||
|
app:layout_constraintVertical_bias="1" />
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -17,6 +17,24 @@
|
||||||
app:exitAnim="@anim/fragment_open_exit"
|
app:exitAnim="@anim/fragment_open_exit"
|
||||||
app:popEnterAnim="@anim/fragment_close_enter"
|
app:popEnterAnim="@anim/fragment_close_enter"
|
||||||
app:popExitAnim="@anim/fragment_close_exit" />
|
app:popExitAnim="@anim/fragment_close_exit" />
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_exportYourSmsMessagesFragment_to_setSignalAsDefaultSmsAppFragment"
|
||||||
|
app:destination="@id/setSignalAsDefaultSmsAppFragment" />
|
||||||
|
</fragment>
|
||||||
|
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/setSignalAsDefaultSmsAppFragment"
|
||||||
|
android:name="org.thoughtcrime.securesms.exporter.flow.SetSignalAsDefaultSmsAppFragment"
|
||||||
|
android:label="fragment_set_signal_as_default_sms_app"
|
||||||
|
tools:layout="@layout/choose_a_new_default_sms_app_fragment">
|
||||||
|
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_setSignalAsDefaultSmsAppFragment_to_exportingSmsMessagesFragment"
|
||||||
|
app:destination="@id/exportingSmsMessagesFragment"
|
||||||
|
app:enterAnim="@anim/fragment_open_enter"
|
||||||
|
app:exitAnim="@anim/fragment_open_exit"
|
||||||
|
app:popEnterAnim="@anim/fragment_close_enter"
|
||||||
|
app:popExitAnim="@anim/fragment_close_exit" />
|
||||||
</fragment>
|
</fragment>
|
||||||
|
|
||||||
<fragment
|
<fragment
|
||||||
|
|
|
@ -5198,6 +5198,12 @@
|
||||||
<!-- Message of dialog -->
|
<!-- Message of dialog -->
|
||||||
<string name="RemoveSmsMessagesDialogFragment__you_have_changed">You have changed the default SMS app, do you want to remove SMS messages from Signal?</string>
|
<string name="RemoveSmsMessagesDialogFragment__you_have_changed">You have changed the default SMS app, do you want to remove SMS messages from Signal?</string>
|
||||||
|
|
||||||
|
<!-- SetSignalAsDefaultSmsAppFragment -->
|
||||||
|
<!-- Title of the screen -->
|
||||||
|
<string name="SetSignalAsDefaultSmsAppFragment__first_set_signal_as_the_default_sms_app">First, set Signal as the default SMS app</string>
|
||||||
|
<!-- Button label to start export -->
|
||||||
|
<string name="SetSignalAsDefaultSmsAppFragment__next">Next</string>
|
||||||
|
|
||||||
<!-- EOF -->
|
<!-- EOF -->
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
Ładowanie…
Reference in New Issue