Merge pull request #271 from loki-project/push-notifications

Update PN Mode Screen Copy
pull/272/head
Niels Andriesse 4 years ago committed by GitHub
commit fc5eb99199
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,114 +1,116 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:background="@drawable/default_session_background"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:textSize="@dimen/very_large_font_size"
android:textStyle="bold"
android:textColor="@color/text"
android:text="Message Notifications" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="@dimen/large_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:textSize="@dimen/medium_font_size"
android:textColor="@color/text"
android:text="There are two ways Session can notify you of new messages." />
<LinearLayout
android:id="@+id/fcmOptionView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/default_session_background"
android:orientation="vertical">
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="@dimen/large_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:padding="12dp"
android:orientation="vertical"
android:background="@drawable/pn_option_background">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="@dimen/very_large_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:textSize="@dimen/very_large_font_size"
android:textStyle="bold"
android:textSize="@dimen/medium_font_size"
android:textColor="@color/text"
android:text="@string/activity_pn_mode_title" />
android:textStyle="bold"
android:text="Fast Mode" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="@dimen/medium_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:textSize="@dimen/medium_font_size"
android:layout_marginTop="4dp"
android:textSize="@dimen/very_small_font_size"
android:textColor="@color/text"
android:text="@string/activity_pn_mode_explanation" />
android:text="Youll be notified of new messages reliably and immediately using Googles notification servers. The contents of your messages, and who youre messaging, are never exposed to Google." />
<LinearLayout
android:id="@+id/fcmOptionView"
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="20dp"
android:layout_marginRight="@dimen/very_large_spacing"
android:padding="12dp"
android:orientation="vertical"
android:background="@drawable/pn_option_background">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="@dimen/medium_font_size"
android:textColor="@color/text"
android:textStyle="bold"
android:text="@string/activity_pn_mode_fcm_option_title" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:textSize="@dimen/very_small_font_size"
android:textColor="@color/text"
android:text="@string/activity_pn_mode_fcm_option_explanation" />
android:layout_marginTop="4dp"
android:textSize="@dimen/small_font_size"
android:textColor="@color/accent"
android:textStyle="bold"
android:text="@string/activity_pn_mode_recommended_option_tag" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:textSize="@dimen/very_small_font_size"
android:textColor="@color/accent"
android:textStyle="bold"
android:text="@string/activity_pn_mode_recommended_option_tag" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/backgroundPollingOptionView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="@dimen/small_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:padding="12dp"
android:orientation="vertical"
android:background="@drawable/pn_option_background">
<LinearLayout
android:id="@+id/backgroundPollingOptionView"
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="@dimen/small_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:padding="12dp"
android:orientation="vertical"
android:background="@drawable/pn_option_background">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="@dimen/medium_font_size"
android:textColor="@color/text"
android:textStyle="bold"
android:text="@string/activity_pn_mode_background_polling_option_title" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:textSize="@dimen/very_small_font_size"
android:textColor="@color/text"
android:text="@string/activity_pn_mode_background_polling_option_explanation" />
</LinearLayout>
android:textSize="@dimen/medium_font_size"
android:textColor="@color/text"
android:textStyle="bold"
android:text="Slow Mode" />
<Button
style="@style/MediumProminentFilledButton"
android:id="@+id/registerButton"
<TextView
android:layout_width="match_parent"
android:layout_height="@dimen/medium_button_height"
android:layout_marginLeft="@dimen/massive_spacing"
android:layout_marginTop="@dimen/medium_spacing"
android:layout_marginRight="@dimen/massive_spacing"
android:layout_marginBottom="@dimen/medium_spacing"
android:text="@string/continue_2" />
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:textSize="@dimen/very_small_font_size"
android:textColor="@color/text"
android:text="Session will occasionally check for new messages in the background. Full metadata protection is guaranteed, but message notifications will be unreliable." />
</LinearLayout>
</ScrollView>
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<Button
style="@style/MediumProminentFilledButton"
android:id="@+id/registerButton"
android:layout_width="match_parent"
android:layout_height="@dimen/medium_button_height"
android:layout_marginLeft="@dimen/massive_spacing"
android:layout_marginRight="@dimen/massive_spacing"
android:layout_marginBottom="@dimen/onboarding_button_bottom_offset"
android:text="@string/continue_2" />
</LinearLayout>

@ -1,118 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
app:behavior_hideable="true"
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
android:background="@drawable/default_bottom_sheet_background_inset">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="@dimen/medium_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:textSize="@dimen/very_large_font_size"
android:textStyle="bold"
android:textColor="@color/text"
android:text="@string/sheet_pn_mode_title" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="6dp"
android:layout_marginRight="@dimen/very_large_spacing"
android:textSize="@dimen/medium_font_size"
android:textColor="@color/text"
android:text="@string/sheet_pn_mode_explanation" />
<LinearLayout
android:id="@+id/fcmOptionView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="@dimen/medium_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:padding="12dp"
android:orientation="vertical"
android:background="@drawable/pn_option_background">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="@dimen/medium_font_size"
android:textColor="@color/text"
android:textStyle="bold"
android:text="@string/sheet_pn_mode_fcm_option_title" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:textSize="@dimen/very_small_font_size"
android:textColor="@color/text"
android:text="@string/sheet_pn_mode_fcm_option_explanation" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:textSize="@dimen/very_small_font_size"
android:textColor="@color/accent"
android:textStyle="bold"
android:text="@string/sheet_pn_mode_recommended_option_tag" />
</LinearLayout>
<LinearLayout
android:id="@+id/backgroundPollingOptionView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="@dimen/small_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:padding="12dp"
android:orientation="vertical"
android:background="@drawable/pn_option_background">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="@dimen/medium_font_size"
android:textColor="@color/text"
android:textStyle="bold"
android:text="@string/sheet_pn_mode_background_polling_option_title" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:textSize="@dimen/very_small_font_size"
android:textColor="@color/text"
android:text="@string/sheet_pn_mode_background_polling_option_explanation" />
</LinearLayout>
<Button
style="@style/MediumProminentOutlineButton"
android:id="@+id/confirmButton"
android:layout_width="240dp"
android:layout_height="@dimen/medium_button_height"
android:layout_marginTop="@dimen/medium_spacing"
android:text="@string/sheet_pn_mode_confirm_button_title" />
<Button
style="@style/MediumUnimportantOutlineButton"
android:id="@+id/skipButton"
android:layout_width="240dp"
android:layout_height="@dimen/medium_button_height"
android:layout_marginTop="@dimen/small_spacing"
android:layout_marginBottom="@dimen/medium_spacing"
android:text="@string/sheet_pn_mode_skip_button_title" />
</LinearLayout>

@ -1,114 +1,116 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="match_parent"
android:background="@drawable/default_session_background"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:textSize="@dimen/large_font_size"
android:textStyle="bold"
android:textColor="@color/text"
android:text="Message Notifications" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="@dimen/medium_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:textSize="@dimen/medium_font_size"
android:textColor="@color/text"
android:text="There are two ways Session can notify you of new messages." />
<LinearLayout
android:id="@+id/fcmOptionView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/default_session_background"
android:orientation="vertical">
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="@dimen/medium_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:padding="12dp"
android:orientation="vertical"
android:background="@drawable/pn_option_background">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="@dimen/very_large_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:textSize="@dimen/large_font_size"
android:textStyle="bold"
android:textSize="@dimen/medium_font_size"
android:textColor="@color/text"
android:text="@string/activity_pn_mode_title" />
android:textStyle="bold"
android:text="Fast Mode" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="@dimen/small_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:textSize="@dimen/small_font_size"
android:layout_marginTop="4dp"
android:textSize="@dimen/very_small_font_size"
android:textColor="@color/text"
android:text="@string/activity_pn_mode_explanation" />
android:text="Youll be notified of new messages reliably and immediately using Googles notification servers. The contents of your messages, and who youre messaging, are never exposed to Google." />
<LinearLayout
android:id="@+id/fcmOptionView"
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="12dp"
android:layout_marginRight="@dimen/very_large_spacing"
android:padding="12dp"
android:orientation="vertical"
android:background="@drawable/pn_option_background">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="@dimen/medium_spacing"
android:textColor="@color/text"
android:textStyle="bold"
android:text="@string/activity_pn_mode_fcm_option_title" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:textSize="@dimen/very_small_font_size"
android:textColor="@color/text"
android:text="@string/activity_pn_mode_fcm_option_explanation" />
android:layout_marginTop="4dp"
android:textSize="@dimen/small_font_size"
android:textColor="@color/accent"
android:textStyle="bold"
android:text="@string/activity_pn_mode_recommended_option_tag" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:textSize="@dimen/very_small_font_size"
android:textColor="@color/accent"
android:textStyle="bold"
android:text="@string/activity_pn_mode_recommended_option_tag" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/backgroundPollingOptionView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="@dimen/small_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:padding="12dp"
android:orientation="vertical"
android:background="@drawable/pn_option_background">
<LinearLayout
android:id="@+id/backgroundPollingOptionView"
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="@dimen/small_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:padding="12dp"
android:orientation="vertical"
android:background="@drawable/pn_option_background">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="@dimen/medium_spacing"
android:textColor="@color/text"
android:textStyle="bold"
android:text="@string/activity_pn_mode_background_polling_option_title" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:textSize="@dimen/very_small_font_size"
android:textColor="@color/text"
android:text="@string/activity_pn_mode_background_polling_option_explanation" />
</LinearLayout>
android:textSize="@dimen/medium_font_size"
android:textColor="@color/text"
android:textStyle="bold"
android:text="Slow Mode" />
<Button
style="@style/MediumProminentFilledButton"
android:id="@+id/registerButton"
<TextView
android:layout_width="match_parent"
android:layout_height="@dimen/medium_button_height"
android:layout_marginLeft="@dimen/massive_spacing"
android:layout_marginTop="@dimen/medium_spacing"
android:layout_marginRight="@dimen/massive_spacing"
android:layout_marginBottom="@dimen/medium_spacing"
android:text="@string/continue_2" />
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:textSize="@dimen/very_small_font_size"
android:textColor="@color/text"
android:text="Session will occasionally check for new messages in the background. Full metadata protection is guaranteed, but message notifications will be unreliable." />
</LinearLayout>
</ScrollView>
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<Button
style="@style/MediumProminentFilledButton"
android:id="@+id/registerButton"
android:layout_width="match_parent"
android:layout_height="@dimen/medium_button_height"
android:layout_marginLeft="@dimen/massive_spacing"
android:layout_marginRight="@dimen/massive_spacing"
android:layout_marginBottom="@dimen/onboarding_button_bottom_offset"
android:text="@string/continue_2" />
</LinearLayout>

@ -1,118 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
app:behavior_hideable="true"
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
android:background="@drawable/default_bottom_sheet_background_inset">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="@dimen/medium_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:textSize="@dimen/large_font_size"
android:textStyle="bold"
android:textColor="@color/text"
android:text="@string/sheet_pn_mode_title" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="6dp"
android:layout_marginRight="@dimen/very_large_spacing"
android:textSize="@dimen/small_font_size"
android:textColor="@color/text"
android:text="@string/sheet_pn_mode_explanation" />
<LinearLayout
android:id="@+id/fcmOptionView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="@dimen/small_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:padding="12dp"
android:orientation="vertical"
android:background="@drawable/pn_option_background">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="@dimen/medium_font_size"
android:textColor="@color/text"
android:textStyle="bold"
android:text="@string/sheet_pn_mode_fcm_option_title" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:textSize="@dimen/very_small_font_size"
android:textColor="@color/text"
android:text="@string/sheet_pn_mode_fcm_option_explanation" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:textSize="@dimen/very_small_font_size"
android:textColor="@color/accent"
android:textStyle="bold"
android:text="@string/sheet_pn_mode_recommended_option_tag" />
</LinearLayout>
<LinearLayout
android:id="@+id/backgroundPollingOptionView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="@dimen/small_spacing"
android:layout_marginRight="@dimen/very_large_spacing"
android:padding="12dp"
android:orientation="vertical"
android:background="@drawable/pn_option_background">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="@dimen/medium_font_size"
android:textColor="@color/text"
android:textStyle="bold"
android:text="@string/sheet_pn_mode_background_polling_option_title" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:textSize="@dimen/very_small_font_size"
android:textColor="@color/text"
android:text="@string/sheet_pn_mode_background_polling_option_explanation" />
</LinearLayout>
<Button
style="@style/MediumProminentOutlineButton"
android:id="@+id/confirmButton"
android:layout_width="240dp"
android:layout_height="@dimen/medium_button_height"
android:layout_marginTop="10dp"
android:text="@string/sheet_pn_mode_confirm_button_title" />
<Button
style="@style/MediumUnimportantOutlineButton"
android:id="@+id/skipButton"
android:layout_width="240dp"
android:layout_height="@dimen/medium_button_height"
android:layout_marginTop="@dimen/small_spacing"
android:layout_marginBottom="@dimen/medium_spacing"
android:text="@string/sheet_pn_mode_skip_button_title" />
</LinearLayout>

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:title="Learn More"
android:id="@+id/learnMoreButton"
android:icon="@drawable/ic_info_outline_white_24dp"
app:showAsAction="always" />
</menu>

@ -1341,12 +1341,6 @@ Schlüsselaustausch-Nachricht für eine ungültige Protokollversion empfangen</s
<string name="activity_display_name_display_name_invalid_error">Bitte wählen Sie einen Anzeigenamen, der nur aus den Zeichen a - z, A - Z, 0 - 9 und _ besteht.</string>
<string name="activity_display_name_display_name_too_long_error">Bitte wählen Sie einen kürzeren Anzeigenamen</string>
<string name="activity_pn_mode_title">Benachrichtigungen</string>
<string name="activity_pn_mode_explanation">Session verfügt über zwei Methoden zur Verarbeitung von Benachrichtigungen. Lesen Sie die Beschreibungen sorgfältig, bevor Sie sich entscheiden.</string>
<string name="activity_pn_mode_fcm_option_title">Firebase Cloud Messaging</string>
<string name="activity_pn_mode_fcm_option_explanation">Session verwendet den Firebase Cloud Messaging-Dienst, um Push-Benachrichtigungen zu empfangen. Sie werden zuverlässig und sofort über neue Nachrichten informiert. Die Verwendung von FCM bedeutet, dass Ihre IP-Adresse und Ihr Geräte-Token für Google verfügbar sind. Wenn Sie Push-Benachrichtigungen anderer Apps verwenden, ist dies auch der Fall. Auch Loki erfährt Ihre IP-Adresse und Ihren Geräte-Token, jedoch werden Ihre Nachrichten weiterhin per Onion geroutet und durchgängig verschlüsselt, sodass der Inhalt Ihrer Nachrichten vollständig privat bleibt.</string>
<string name="activity_pn_mode_background_polling_option_title">Hintergrundabfrage</string>
<string name="activity_pn_mode_background_polling_option_explanation">Session sucht von Zeit zu Zeit im Hintergrund nach neuen Nachrichten. Das garantiert einen vollständigen Schutz der Metadaten, aber Benachrichtigungen können sich jedoch erheblich verzögern.</string>
<string name="activity_pn_mode_recommended_option_tag">Empfohlen</string>
<string name="activity_pn_mode_no_option_picked_dialog_title">Bitte wählen Sie eine Option aus.</string>
@ -1357,17 +1351,6 @@ Schlüsselaustausch-Nachricht für eine ungültige Protokollversion empfangen</s
<string name="activity_home_delete_conversation_dialog_message">Möchten Sie diese Unterhaltung wirklich löschen?</string>
<string name="activity_home_conversation_deleted_message">Die Unterhaltung wurde gelöscht.</string>
<string name="sheet_pn_mode_title">Benachrichtigungen</string>
<string name="sheet_pn_mode_explanation">Session verfügt über zwei Methoden zur Verarbeitung von Benachrichtigungen. Lesen Sie die Beschreibungen sorgfältig, bevor Sie sich entscheiden.</string>
<string name="sheet_pn_mode_fcm_option_title">Firebase Cloud Messaging</string>
<string name="sheet_pn_mode_fcm_option_explanation">Session verwendet den Firebase Cloud Messaging-Dienst, um Push-Benachrichtigungen zu empfangen. Sie werden zuverlässig und sofort über neue Nachrichten informiert. Die Verwendung von FCM bedeutet, dass Ihre IP-Adresse und Ihr Geräte-Token für Google verfügbar sind. Wenn Sie Push-Benachrichtigungen anderer Apps verwenden, ist dies auch der Fall. Auch Loki erfährt Ihre IP-Adresse und Ihren Geräte-Token, jedoch werden Ihre Nachrichten weiterhin per Onion geroutet und durchgängig verschlüsselt, sodass der Inhalt Ihrer Nachrichten vollständig privat bleibt.</string>
<string name="sheet_pn_mode_background_polling_option_title">Hintergrundabfrage</string>
<string name="sheet_pn_mode_background_polling_option_explanation">Session sucht von Zeit zu Zeit im Hintergrund nach neuen Nachrichten. Das garantiert einen vollständigen Schutz der Metadaten, aber Benachrichtigungen können sich jedoch erheblich verzögern.</string>
<string name="sheet_pn_mode_recommended_option_tag">Empfohlen</string>
<string name="sheet_pn_mode_no_option_picked_dialog_title">Bitte wählen Sie eine Option aus.</string>
<string name="sheet_pn_mode_confirm_button_title">Bestätigen</string>
<string name="sheet_pn_mode_skip_button_title">Überspringen</string>
<string name="activity_seed_title">Ihr Wiederherstellungssatz</string>
<string name="activity_seed_title_2">Das ist Ihr Wiederherstellungssatz.</string>
<string name="activity_seed_explanation">Ihr Wiederherstellungssatz ist der Hauptschlüssel für Ihre Session ID. Mit diesem Satz können Sie Ihre Session ID wiederherstellen, wenn Sie den Zugriff auf Ihr Gerät verlieren. Bewahren Sie Ihren Wiederherstellungssatz an einem sicheren Ort auf und geben Sie ihn an niemandem weiter.</string>
@ -1414,7 +1397,6 @@ Schlüsselaustausch-Nachricht für eine ungültige Protokollversion empfangen</s
<string name="activity_join_public_chat_scan_qr_code_explanation">Scannen Sie den QR-Code der offenen Gruppe, der Sie beitreten möchten.</string>
<string name="fragment_enter_chat_url_edit_text_hint">Geben Sie eine offene Gruppen-URL ein.</string>
<string name="fragment_enter_chat_url_privacy_warning">Offenen Gruppen kann jeder beitreten und sie bieten keinen vollständigen Schutz der Privatsphäre.</string>
<string name="activity_settings_title">Einstellungen</string>
<string name="activity_settings_display_name_edit_text_hint">Geben Sie einen Anzeigenamen ein.</string>
@ -1446,8 +1428,6 @@ Schlüsselaustausch-Nachricht für eine ungültige Protokollversion empfangen</s
<string name="activity_linked_devices_empty_state_button_title">Gerät (Beta) verknüpfen</string>
<string name="preferences_notifications_strategy_category_title">Benachrichtigungsstrategie</string>
<string name="preferences_notifications_use_fcm_option_title">FCM verwenden</string>
<string name="preferences_notifications_use_fcm_option_explanation">Die Verwendung von Firebase Cloud Messaging ermöglicht zuverlässigere Push-Benachrichtigungen, Ihre IP- und Geräte-Token werden Google und Loki jedoch bekannt.</string>
<string name="dialog_link_device_slave_mode_title_1">Warten auf Autorisierung</string>
<string name="dialog_link_device_slave_mode_title_2">Geräteverbindung autorisiert</string>
@ -1481,16 +1461,6 @@ Schlüsselaustausch-Nachricht für eine ungültige Protokollversion empfangen</s
<string name="fragment_view_my_qr_code_explanation">Das ist Ihr QR-Code. Andere Benutzer können ihn scannen, um eine Session mit Ihnen zu starten.</string>
<string name="fragment_view_my_qr_code_share_title">QR-Code freigeben</string>
<string name="view_friend_request_accept_button_title">Akzeptieren</string>
<string name="view_friend_request_reject_button_title">Ablehnen</string>
<string name="view_friend_request_incoming_pending_message">%1$s hat Ihnen eine Session-Anfrage gesendet.</string>
<string name="view_friend_request_incoming_accepted_message">Sie haben die Session-Anfrage von %1$s akzeptiert.</string>
<string name="view_friend_request_incoming_declined_message">Sie haben die Session-Anfrage von %1$s abgelehnt.</string>
<string name="view_friend_request_incoming_expired_message">Die Session-Anfragte von %1$s ist abgelaufen.</string>
<string name="view_friend_request_outgoing_pending_message">Sie haben %1$s eine Session-Anfrage gesendet.</string>
<string name="view_friend_request_outgoing_accepted_message">%1$s hat Ihre Session-Anfrage akzeptiert.</string>
<string name="view_friend_request_outgoing_expired_message">Ihre Session-Anfrage an %1$s ist abgelaufen.</string>
<string name="session_reset_banner_message">Möchten Sie Ihre Session mit %s wiederherstellen?</string>
<string name="session_reset_banner_dismiss_button_title">Verwerfen</string>
<string name="session_reset_banner_restore_button_title">Wiederherstellen</string>

@ -1353,12 +1353,6 @@ Se recibió un mensaje de intercambio de claves para una versión no válida del
<string name="activity_display_name_display_name_invalid_error">Por favor, elige un nombre para mostrar que contenga solo caracteres a-z, A-Z, 0-9 y _</string>
<string name="activity_display_name_display_name_too_long_error">Por favor, elige un nombre para mostrar más corto</string>
<string name="activity_pn_mode_title">Notificaciones Push</string>
<string name="activity_pn_mode_explanation">Session tiene dos tipos de notificaciones push. Asegúrate de leer cuidadosamente las descripciones antes de elegir.</string>
<string name="activity_pn_mode_fcm_option_title">Firebase Cloud Messaging</string>
<string name="activity_pn_mode_fcm_option_explanation">Session usará el servicio Firebase Cloud Messaging para recibir notificaciones push. Recibirás notificaciones de nuevos mensajes de manera segura e inmediata. Usar FCM significa que tu dirección IP y device token serán compartidos con Google. Este sería ya el caso si recibes notificaciones push con otras aplicaciones. Tu dirección IP y device token serán compartidos con Loki, pero tus mensajes seguirán teniendo enrutamiento cebolla y encriptación de extremo a extremo, por lo que el contenido de tus mensajes seguirá siendo completamente privado.</string>
<string name="activity_pn_mode_background_polling_option_title">Sondeo en segundo plano</string>
<string name="activity_pn_mode_background_polling_option_explanation">Session revisará si hay nuevos mensajes en segundo plano y de manera ocasional. Esto garantiza una protección total de la privacidad, pero las notificaciones de mensajes pueden retrasarse significativamente.</string>
<string name="activity_pn_mode_recommended_option_tag">Recomendado</string>
<string name="activity_pn_mode_no_option_picked_dialog_title">Por favor, elige una opción</string>
@ -1369,17 +1363,6 @@ Se recibió un mensaje de intercambio de claves para una versión no válida del
<string name="activity_home_delete_conversation_dialog_message">¿Seguro que quieres eliminar esta conversación?</string>
<string name="activity_home_conversation_deleted_message">Conversación eliminada</string>
<string name="sheet_pn_mode_title">Notificaciones Push</string>
<string name="sheet_pn_mode_explanation">Session ahora tiene dos formas de manejar las notificaciones push. Asegúrate de leer las descripciones cuidadosamente antes de elegir.</string>
<string name="sheet_pn_mode_fcm_option_title">Firebase Cloud Messaging</string>
<string name="sheet_pn_mode_fcm_option_explanation">Session usará el servicio Firebase Cloud Messaging para recibir las notificaciones push. Recibirás notificaciones de nuevos mensajes de manera confiable e inmediata. Usar FCM significa que este dispositivo se comunicará directamente con los servidores de Google para recuperar las notificaciones push, lo que expondrá tu dirección IP a Google. A tus mensajes se les seguirá realizando enrutamiento cebolla y cifrado de extremo a extremo, por lo que el contenido de tus mensajes permanecerá completamente privado.</string>
<string name="sheet_pn_mode_background_polling_option_title">Sondeo en segundo plano</string>
<string name="sheet_pn_mode_background_polling_option_explanation">Session revisará si hay nuevos mensajes en segundo plano y de manera ocasional. Esto garantiza una protección total de los metadatos, pero las notificaciónes de nuevos mensajes pueden retrasarse significativamente.</string>
<string name="sheet_pn_mode_recommended_option_tag">Recomendado</string>
<string name="sheet_pn_mode_no_option_picked_dialog_title">Por favor, elige una opción</string>
<string name="sheet_pn_mode_confirm_button_title">Confirmar</string>
<string name="sheet_pn_mode_skip_button_title">Omitir</string>
<string name="activity_seed_title">Tu frase de recuperación</string>
<string name="activity_seed_title_2">Guarda tu frase de recuperación</string>
<string name="activity_seed_explanation">Tu frase de recuperación es la llave maestra de tu ID de Session, puedes usarla para recuperar tu ID de Session en caso de pérdida de acceso a tu dispositivo. Guarda tu frase de recuperación en un lugar seguro y no se la digas a nadie.</string>
@ -1426,7 +1409,6 @@ Se recibió un mensaje de intercambio de claves para una versión no válida del
<string name="activity_join_public_chat_scan_qr_code_explanation">Escanea el código QR del grupo abierto al que quieras unirte</string>
<string name="fragment_enter_chat_url_edit_text_hint">Ingresa una URL de grupo abierto</string>
<string name="fragment_enter_chat_url_privacy_warning">Cualquiera puede unirse a los grupos abiertos. Esto no brinda una protección completa de privacidad</string>
<string name="activity_settings_title">Ajustes</string>
<string name="activity_settings_display_name_edit_text_hint">Ingresa un nombre para mostrar</string>
@ -1458,8 +1440,6 @@ Se recibió un mensaje de intercambio de claves para una versión no válida del
<string name="activity_linked_devices_empty_state_button_title">Enlazar un dispositivo</string>
<string name="preferences_notifications_strategy_category_title">Estrategia de notificación</string>
<string name="preferences_notifications_use_fcm_option_title">Utilizar FCM</string>
<string name="preferences_notifications_use_fcm_option_explanation">El uso de Firebase Cloud Messaging permite notificaciones push más seguras, pero expone tu IP a Google.</string>
<string name="dialog_link_device_slave_mode_title_1">Esperando la autorización</string>
<string name="dialog_link_device_slave_mode_title_2">Vinculación de dispositivo autorizada</string>
@ -1493,16 +1473,6 @@ Se recibió un mensaje de intercambio de claves para una versión no válida del
<string name="fragment_view_my_qr_code_explanation">Este es tu código QR. Otros usuarios pueden escanearlo para empezar una Session contigo.</string>
<string name="fragment_view_my_qr_code_share_title">Compartir código QR</string>
<string name="view_friend_request_accept_button_title">Aceptar</string>
<string name="view_friend_request_reject_button_title">Rechazar</string>
<string name="view_friend_request_incoming_pending_message">%1$s te envió una solicitud de Session</string>
<string name="view_friend_request_incoming_accepted_message">Has aceptado la solicitud de Session de %1$s</string>
<string name="view_friend_request_incoming_declined_message">Has rechazado la solicitud de Session de %1$s</string>
<string name="view_friend_request_incoming_expired_message">La solicitud de Session de %1$s ha expirado</string>
<string name="view_friend_request_outgoing_pending_message">Le has enviado una solicitud de Session a %1$s</string>
<string name="view_friend_request_outgoing_accepted_message">%1$s aceptó tu solicitud de Session</string>
<string name="view_friend_request_outgoing_expired_message">Tu solicitud de Session para %1$s ha expirado</string>
<string name="session_reset_banner_message">¿Quieres restaurar tu Session con %s?</string>
<string name="session_reset_banner_dismiss_button_title">Descartar</string>
<string name="session_reset_banner_restore_button_title">Restaurar</string>

@ -1348,12 +1348,6 @@ Vous avez reçu un message déchange de clés pour une version de protocole i
<string name="activity_display_name_display_name_invalid_error">Veuillez choisir un nom d\'utilisateur composé uniquement de caractères a-z, A-Z, 0-9 et _</string>
<string name="activity_display_name_display_name_too_long_error">Veuillez choisir un nom d\'utilisateur plus court</string>
<string name="activity_pn_mode_title">Notifications push</string>
<string name="activity_pn_mode_explanation">Session peut gérer les notifications push de deux manières. Assurez-vous de lire attentivement les détails avant de faire votre choix.</string>
<string name="activity_pn_mode_fcm_option_title">Firebase Cloud Messaging</string>
<string name="activity_pn_mode_fcm_option_explanation">Session utilisera le service Firebase Cloud Messaging pour la réception des notifications. Vous serez notifié immédiatement des nouveaux messages. L\'utilisation de FCM signifie que votre adresse IP et votre jeton d\'appareil seront exposés à Google. Cela est déjà le cas si vous utilisez des notifications push dans dautres applications. Ceux-ci seront également exposés à Loki. Vos messages seront toujours routés anonymement et chiffrés de bout en bout, ainsi leur contenu restera totalement confidentiel.</string>
<string name="activity_pn_mode_background_polling_option_title">Consultation d\'arrière-plan</string>
<string name="activity_pn_mode_background_polling_option_explanation">Session vérifiera de temps en temps les nouveaux messages en arrière-plan. Cette option garantit une confidentialité totale, mais les notifications de messages peuvent être retardées.</string>
<string name="activity_pn_mode_recommended_option_tag">Recommandé</string>
<string name="activity_pn_mode_no_option_picked_dialog_title">Veuillez choisir une option</string>
@ -1364,17 +1358,6 @@ Vous avez reçu un message déchange de clés pour une version de protocole i
<string name="activity_home_delete_conversation_dialog_message">Voulez-vous vraiment supprimer cette conversation ?</string>
<string name="activity_home_conversation_deleted_message">Conversation supprimée</string>
<string name="sheet_pn_mode_title">Notifications push</string>
<string name="sheet_pn_mode_explanation">Session propose désormais deux façons de gérer les notifications push. Assurez-vous de lire attentivement les descriptions avant de choisir.</string>
<string name="sheet_pn_mode_fcm_option_title">Messagerie Cloud Firebase</string>
<string name="sheet_pn_mode_fcm_option_explanation">Session utilisera le service Firebase Cloud Messaging pour la réception des notifications. Vous serez notifié immédiatement des nouveaux messages. L\'utilisation de FCM signifie que votre adresse IP et votre jeton d\'appareil seront exposés à Google. Cela est déjà le cas si vous utilisez des notifications push dans dautres applications. Ceux-ci seront également exposés à Loki. Vos messages seront toujours routés anonymement et chiffrés de bout en bout, ainsi leur contenu restera totalement confidentiel.</string>
<string name="sheet_pn_mode_background_polling_option_title">Consultation d\'arrière-plan</string>
<string name="sheet_pn_mode_background_polling_option_explanation">Session vérifiera de temps en temps les nouveaux messages en arrière-plan. Cette option garantit une confidentialité totale, mais les notifications de messages peuvent être retardées.</string>
<string name="sheet_pn_mode_recommended_option_tag">Recommandé</string>
<string name="sheet_pn_mode_no_option_picked_dialog_title">Veuillez choisir une option</string>
<string name="sheet_pn_mode_confirm_button_title">Confirmer</string>
<string name="sheet_pn_mode_skip_button_title">Ignorer</string>
<string name="activity_seed_title">Votre phrase de récupération</string>
<string name="activity_seed_title_2">Voici votre phrase de récupération</string>
<string name="activity_seed_explanation">Votre phrase de récupération est la clé principale de votre Session ID - vous pouvez l\'utiliser pour restaurer votre Session ID si vous perdez l\'accès à votre appareil. Conservez la dans un endroit sûr et ne la donnez à personne.</string>
@ -1421,7 +1404,6 @@ Vous avez reçu un message déchange de clés pour une version de protocole i
<string name="activity_join_public_chat_scan_qr_code_explanation">Scannez le code QR du groupe public que vous souhaitez rejoindre</string>
<string name="fragment_enter_chat_url_edit_text_hint">Saisissez une URL de groupe public</string>
<string name="fragment_enter_chat_url_privacy_warning">Les groupes publics peuvent être rejoints par n\'importe qui et ne fournissent pas une confidentialité totale</string>
<string name="activity_settings_title">Paramètres</string>
<string name="activity_settings_display_name_edit_text_hint">Saisissez un nom d\'utilisateur</string>
@ -1453,8 +1435,6 @@ Vous avez reçu un message déchange de clés pour une version de protocole i
<string name="activity_linked_devices_empty_state_button_title">Relier un appareil</string>
<string name="preferences_notifications_strategy_category_title">Stratégie de notification</string>
<string name="preferences_notifications_use_fcm_option_title">Utiliser FCM</string>
<string name="preferences_notifications_use_fcm_option_explanation">L\'utilisation de Firebase Cloud Messaging permet des notifications push plus fiables, mais expose votre IP et votre jeton d\'appareil à Google et à Loki.</string>
<string name="dialog_link_device_slave_mode_title_1">En attente d\'autorisation</string>
<string name="dialog_link_device_slave_mode_title_2">Liaison de l\'appareil autorisée</string>
@ -1488,16 +1468,6 @@ Vous avez reçu un message déchange de clés pour une version de protocole i
<string name="fragment_view_my_qr_code_explanation">Ceci est votre code QR. Les autres utilisateurs peuvent le scanner pour démarrer une session avec vous.</string>
<string name="fragment_view_my_qr_code_share_title">Partager le code QR</string>
<string name="view_friend_request_accept_button_title">Accepter</string>
<string name="view_friend_request_reject_button_title">Refuser</string>
<string name="view_friend_request_incoming_pending_message">%1$s vous a envoyé une demande de Session</string>
<string name="view_friend_request_incoming_accepted_message">Vous avez accepté la demande de Session de %1$s</string>
<string name="view_friend_request_incoming_declined_message">Vous avez refusé la demande de Session de %1$s</string>
<string name="view_friend_request_incoming_expired_message">La demande de Session de %1$s a expiré</string>
<string name="view_friend_request_outgoing_pending_message">Vous avez envoyé une demande de Session à %1$s</string>
<string name="view_friend_request_outgoing_accepted_message">%1$s a accepté votre demande de Session</string>
<string name="view_friend_request_outgoing_expired_message">Votre demande de Session à %1$s a expiré</string>
<string name="session_reset_banner_message">Voulez-vous restaurer votre session avec %s ?</string>
<string name="session_reset_banner_dismiss_button_title">Fermer</string>
<string name="session_reset_banner_restore_button_title">Restaurer</string>

@ -1349,12 +1349,6 @@ Ricevuto un messaggio di scambio chiavi per una versione di protocollo non valid
<string name="activity_display_name_display_name_invalid_error">Il nome visualizzare può contenere solo i caratteri a-z, AZ, 0-9 e _ </string>
<string name="activity_display_name_display_name_too_long_error">Scegli un nome più breve</string>
<string name="activity_pn_mode_title">Notifiche push</string>
<string name="activity_pn_mode_explanation">La Sessione può gestire le notifiche push in due modi. Assicurati di leggere attentamente le descrizioni prima di scegliere.</string>
<string name="activity_pn_mode_fcm_option_title">Firebase Cloud Messaging</string>
<string name="activity_pn_mode_fcm_option_explanation">La Sessione utilizzerà il Firebase Cloud Messaging per ricevere notifiche push. Riceverai una notifica per i nuovi messaggi in modo affidabile e immediato. L\'utilizzo di FCM implica che il tuo indirizzo IP e il token del dispositivo siano esposti a Google. Se usi le notifiche push per altre app, ciò succede già. Il tuo indirizzo IP e il token del dispositivo saranno esposti anche a Loki, ma i messaggi saranno comunque resi anonimi tramite onion routing e crittografia end-to-end, pertanto il contenuto dei messaggi rimarrà completamente privato.</string>
<string name="activity_pn_mode_background_polling_option_title">Polling nel background</string>
<string name="activity_pn_mode_background_polling_option_explanation">Occasionalmente la Sessione verificherà la presenza di nuovi messaggi in background. Ciò garantisce la protezione completa dei metadati, ma le notifiche dei messaggi potrebbero subire notevoli ritardi.</string>
<string name="activity_pn_mode_recommended_option_tag">Consigliato</string>
<string name="activity_pn_mode_no_option_picked_dialog_title">Scegli un\'opzione</string>
@ -1365,17 +1359,6 @@ Ricevuto un messaggio di scambio chiavi per una versione di protocollo non valid
<string name="activity_home_delete_conversation_dialog_message">Sei sicuro di voler eliminare questa conversazione?</string>
<string name="activity_home_conversation_deleted_message">Conversazione eliminata</string>
<string name="sheet_pn_mode_title">Notifiche push</string>
<string name="sheet_pn_mode_explanation">Ora la Sessione offre due modi per gestire le notifiche push. Assicurati di leggere attentamente le descrizioni prima di scegliere.</string>
<string name="sheet_pn_mode_fcm_option_title">Firebase Cloud Messaging</string>
<string name="sheet_pn_mode_fcm_option_explanation">La Sessione utilizzerà il Firebase Cloud Messaging per ricevere notifiche push. Riceverai una notifica per i nuovi messaggi in modo affidabile e immediato. L\'utilizzo di FCM implica che il tuo indirizzo IP e il token del dispositivo siano esposti a Google. Se usi le notifiche push per altre app, ciò succede già. Il tuo indirizzo IP e il token del dispositivo saranno esposti anche a Loki, ma i messaggi saranno comunque resi anonimi tramite onion routing e crittografia end-to-end, pertanto il contenuto dei messaggi rimarrà completamente privato.</string>
<string name="sheet_pn_mode_background_polling_option_title">Polling nel background</string>
<string name="sheet_pn_mode_background_polling_option_explanation">Occasionalmente la Sessione verificherà la presenza di nuovi messaggi in background. Ciò garantisce la protezione completa dei metadati, ma le notifiche dei messaggi potrebbero subire notevoli ritardi.</string>
<string name="sheet_pn_mode_recommended_option_tag">Consigliato</string>
<string name="sheet_pn_mode_no_option_picked_dialog_title">Scegli un\'opzione</string>
<string name="sheet_pn_mode_confirm_button_title">Conferma</string>
<string name="sheet_pn_mode_skip_button_title">Salta</string>
<string name="activity_seed_title">Frase di recupero</string>
<string name="activity_seed_title_2">La frase di recupero</string>
<string name="activity_seed_explanation">La frase di recupero è la chiave principale per la Sessione ID: puoi usarla per ripristinare la Sessione ID se perdi l\'accesso al dispositivo. Conserva la frase di recupero in un luogo sicuro e non rivelarla a nessuno.</string>
@ -1422,7 +1405,6 @@ Ricevuto un messaggio di scambio chiavi per una versione di protocollo non valid
<string name="activity_join_public_chat_scan_qr_code_explanation">Scansiona il codice QR del gruppo aperto a cui desideri partecipare</string>
<string name="fragment_enter_chat_url_edit_text_hint">Inserisci l\'URL di un gruppo aperto</string>
<string name="fragment_enter_chat_url_privacy_warning">I gruppi aperti non offrono una protezione completa della privacy e chiunque può unirsi ad essi</string>
<string name="activity_settings_title">Impostazioni</string>
<string name="activity_settings_display_name_edit_text_hint">Inserisci il nome da visualizzare</string>
@ -1454,8 +1436,6 @@ Ricevuto un messaggio di scambio chiavi per una versione di protocollo non valid
<string name="activity_linked_devices_empty_state_button_title">Collega un dispositivo</string>
<string name="preferences_notifications_strategy_category_title">Strategia di notifica</string>
<string name="preferences_notifications_use_fcm_option_title">Usa FCM</string>
<string name="preferences_notifications_use_fcm_option_explanation">L\'uso di Firebase Cloud Messaging consente notifiche push più affidabili, ma espone l\'IP e il token del dispositivo a Google e Loki.</string>
<string name="dialog_link_device_slave_mode_title_1">In attesa di autorizzazione</string>
<string name="dialog_link_device_slave_mode_title_2">Collegamento al dispositivo autorizzato</string>
@ -1489,16 +1469,6 @@ Ricevuto un messaggio di scambio chiavi per una versione di protocollo non valid
<string name="fragment_view_my_qr_code_explanation">Questo è il tuo codice QR. Altri utenti possono scansionarlo per iniziare una sessione con te.</string>
<string name="fragment_view_my_qr_code_share_title">Condividi codice QR</string>
<string name="view_friend_request_accept_button_title">Accetta</string>
<string name="view_friend_request_reject_button_title">Rifiuta</string>
<string name="view_friend_request_incoming_pending_message">%1$s ti ha inviato una richiesta</string>
<string name="view_friend_request_incoming_accepted_message">Hai accettato la richiesta di %1$s</string>
<string name="view_friend_request_incoming_declined_message">Hai rifiutato la richiesta di %1$s</string>
<string name="view_friend_request_incoming_expired_message">La richiesta di %1$s è scaduta</string>
<string name="view_friend_request_outgoing_pending_message">Hai inviato una richiesta a %1$s</string>
<string name="view_friend_request_outgoing_accepted_message">%1$s ha accettato la richiesta</string>
<string name="view_friend_request_outgoing_expired_message">La tua richiesta a %1$s è scaduta</string>
<string name="session_reset_banner_message">Desideri ripristinare la sessione con %s?</string>
<string name="session_reset_banner_dismiss_button_title">Rimuovi</string>
<string name="session_reset_banner_restore_button_title">Ripristina</string>

@ -1352,12 +1352,6 @@
<string name="activity_display_name_display_name_invalid_error">Escolha um nome de exibição que contenha apenas caracteres az, AZ, 0-9 e _</string>
<string name="activity_display_name_display_name_too_long_error">Escolha um nome de exibição mais curto</string>
<string name="activity_pn_mode_title">Notificações via push</string>
<string name="activity_pn_mode_explanation">Há duas maneiras pelas quais o Session pode lidar com notificações push. Certifique-se de ler as descrições cuidadosamente antes de escolher.</string>
<string name="activity_pn_mode_fcm_option_title">Firebase Cloud Messaging</string>
<string name="activity_pn_mode_fcm_option_explanation">O Session usará o serviço Firebase Cloud Messaging para receber notificações push. Você será notificado sobre novas mensagens de maneira confiável e imediata. Usar o FCM significa que seu endereço IP e token do dispositivo serão expostos ao Google. Se você usar notificações push para outros aplicativos, esse já será o caso. Seu endereço IP e o token do dispositivo também serão expostos ao Loki, mas suas mensagens ainda serão roteadas anonimamente e criptografadas de ponta a ponta, para que o conteúdo de suas mensagens permaneça completamente privado.</string>
<string name="activity_pn_mode_background_polling_option_title">Pesquisa profunda</string>
<string name="activity_pn_mode_background_polling_option_explanation">Ocasionalmente, o Session verifica novas mensagens em segundo plano. Isso garante proteção total aos metadados, mas as notificações de mensagens podem sofrer um atraso significativo.</string>
<string name="activity_pn_mode_recommended_option_tag">Recomendado</string>
<string name="activity_pn_mode_no_option_picked_dialog_title">Escolha uma opção</string>
@ -1368,17 +1362,6 @@
<string name="activity_home_delete_conversation_dialog_message">Tem certeza de que deseja excluir esta conversa?</string>
<string name="activity_home_conversation_deleted_message">Conversa excluída</string>
<string name="sheet_pn_mode_title">Notificações via push</string>
<string name="sheet_pn_mode_explanation">O Session agora apresenta duas maneiras de lidar com notificações push. Certifique-se de ler as descrições cuidadosamente antes de escolher.</string>
<string name="sheet_pn_mode_fcm_option_title">Firebase Cloud Messaging</string>
<string name="sheet_pn_mode_fcm_option_explanation">O Session usará o serviço Firebase Cloud Messaging para receber notificações push. Você será notificado sobre novas mensagens de maneira confiável e imediata. Usar o FCM significa que seu endereço IP e token do dispositivo serão expostos ao Google. Se você usar notificações push para outros aplicativos, esse já será o caso. Seu endereço IP e o token do dispositivo também serão expostos ao Loki, mas suas mensagens ainda serão roteadas anonimamente e criptografadas de ponta a ponta, para que o conteúdo de suas mensagens permaneça completamente privado.</string>
<string name="sheet_pn_mode_background_polling_option_title">Pesquisa profunda</string>
<string name="sheet_pn_mode_background_polling_option_explanation">Ocasionalmente, o Session verificará novas mensagens em segundo plano. Isso garante proteção total aos metadados, mas as notificações de mensagens podem sofrer um atraso significativo.</string>
<string name="sheet_pn_mode_recommended_option_tag">Recomendado</string>
<string name="sheet_pn_mode_no_option_picked_dialog_title">Escolha uma opção</string>
<string name="sheet_pn_mode_confirm_button_title">Confirmar</string>
<string name="sheet_pn_mode_skip_button_title">Pular</string>
<string name="activity_seed_title">Sua frase de recuperação</string>
<string name="activity_seed_title_2">Revele sua frase de recuperação</string>
<string name="activity_seed_explanation">Sua frase de recuperação é a chave mestra do seu ID Session - você pode usá-la para restaurar seu ID Session se perder o acesso ao seu dispositivo. Armazene sua frase de recuperação em um local seguro e não a entregue a ninguém.</string>
@ -1425,7 +1408,6 @@
<string name="activity_join_public_chat_scan_qr_code_explanation">Escaneie o código QR do grupo aberto no qual você deseja entrar</string>
<string name="fragment_enter_chat_url_edit_text_hint">Digite a URL do grupo aberto</string>
<string name="fragment_enter_chat_url_privacy_warning">Grupos abertos podem ser compostos por qualquer pessoa e não oferecem proteção total à privacidade</string>
<string name="activity_settings_title">Configurações</string>
<string name="activity_settings_display_name_edit_text_hint">Digite um nome de exibição</string>
@ -1457,8 +1439,6 @@
<string name="activity_linked_devices_empty_state_button_title">Sincronizar um dispositivo</string>
<string name="preferences_notifications_strategy_category_title">Estratégia de notificação</string>
<string name="preferences_notifications_use_fcm_option_title">Usar FCM</string>
<string name="preferences_notifications_use_fcm_option_explanation">O uso do Firebase Cloud Messaging permite notificações push mais confiáveis, mas expõe seu IP e token de dispositivo ao Google e ao Loki.</string>
<string name="dialog_link_device_slave_mode_title_1">Esperando autorização</string>
<string name="dialog_link_device_slave_mode_title_2">sincronização de dispositivo autorizada</string>
@ -1492,16 +1472,6 @@
<string name="fragment_view_my_qr_code_explanation">Este é o seu código QR. Outros usuários podem escaneá-lo para iniciar uma sessão com você.</string>
<string name="fragment_view_my_qr_code_share_title">Compartilhar código QR</string>
<string name="view_friend_request_accept_button_title">Aceitar</string>
<string name="view_friend_request_reject_button_title">Recusar</string>
<string name="view_friend_request_incoming_pending_message">%1$s enviou uma solicitação de sessão para você</string>
<string name="view_friend_request_incoming_accepted_message">Você aceitou a solicitação de sessão de %1$s</string>
<string name="view_friend_request_incoming_declined_message">Você recusou a solicitação de sessão de %1$s</string>
<string name="view_friend_request_incoming_expired_message">A solicitação de sessão de %1$s expirou</string>
<string name="view_friend_request_outgoing_pending_message">Você enviou a %1$s uma solicitação de sessão</string>
<string name="view_friend_request_outgoing_accepted_message">%1$s aceitou sua solicitação de sessão</string>
<string name="view_friend_request_outgoing_expired_message">Sua solicitação de sessão para %1$s expirou</string>
<string name="session_reset_banner_message">Deseja restaurar sua sessão com %s?</string>
<string name="session_reset_banner_dismiss_button_title">Dispensar</string>
<string name="session_reset_banner_restore_button_title">Restaurar</string>

@ -1406,12 +1406,6 @@
<string name="activity_display_name_display_name_invalid_error">Пожалуйста, выберите отображаемое имя состоящее только из символов a-z, A-Z, 0-9 и _</string>
<string name="activity_display_name_display_name_too_long_error">Пожалуйста, выберите более короткое отображаемое имя</string>
<string name="activity_pn_mode_title">Всплывающие уведомления</string>
<string name="activity_pn_mode_explanation">Есть два метода, при помощи которых Session может присылать всплывающие уведомления. Внимательно прочитайте их отличия прежде чем сделать выбор.</string>
<string name="activity_pn_mode_fcm_option_title">Firebase Cloud Messaging</string>
<string name="activity_pn_mode_fcm_option_explanation">Session будет использовать сервис Firebase Cloud Messaging (FCM) для получения всплывающих уведомлений. Вы будете надежно и незамедлительно получать уведомления о новых сообщениях. Использование FCM означает, что ваш IP-адрес и токен устройства будут доступны Google. Обратите внимание что эта информация уже доступна Google если вы используете всплывающие уведомления в других приложениях. Ваш IP-адрес и токен устройства также будут доступны Loki, но ваши сообщения будут по-прежнему маршрутизироваться и шифроваться, поэтому содержимое ваших сообщений останется полностью конфиденциальным.</string>
<string name="activity_pn_mode_background_polling_option_title">Фоновые запросы</string>
<string name="activity_pn_mode_background_polling_option_explanation">Session в фоновом режиме будет периодически проверять наличие новых сообщений. При этом гарантируется полная защита метаданных, однако возможна значительная задержка при уведомлении о сообщениях.</string>
<string name="activity_pn_mode_recommended_option_tag">Рекомендуется</string>
<string name="activity_pn_mode_no_option_picked_dialog_title">Пожалуйста, выберите метод</string>
@ -1422,17 +1416,6 @@
<string name="activity_home_delete_conversation_dialog_message">Вы уверены, что хотите удалить этот разговор?</string>
<string name="activity_home_conversation_deleted_message">Разговор удален</string>
<string name="sheet_pn_mode_title">Всплывающее уведомление</string>
<string name="sheet_pn_mode_explanation">Теперь при работе Session имеется два метода обработки всплывающих уведомлений. Внимательно прочитайте их отличия прежде чем сделать выбор.</string>
<string name="sheet_pn_mode_fcm_option_title">Firebase Cloud Messaging</string>
<string name="sheet_pn_mode_fcm_option_explanation">Session будет использовать сервис Firebase Cloud Messaging для получения всплывающих уведомлений. Вы будете надежно и незамедлительно получать уведомления о новых сообщениях. Использование FCM означает, что ваш IP-адрес и токен устройства будут доступны Google. Так будет, если вы используете всплывающие уведомления для других приложений. Ваш IP-адрес и токен устройства также будут доступны Loki, но ваши сообщения будут по-прежнему маршрутизироваться и шифроваться, поэтому содержимое ваших сообщений останется полностью конфиденциальным.</string>
<string name="sheet_pn_mode_background_polling_option_title">Фоновые запросы</string>
<string name="sheet_pn_mode_background_polling_option_explanation">Session в фоновом режиме будет периодически проверять наличие новых сообщений. При этом гарантируется полная защита метаданных, однако возможна значительная задержка при уведомлении о сообщениях.</string>
<string name="sheet_pn_mode_recommended_option_tag">Рекомендуется</string>
<string name="sheet_pn_mode_no_option_picked_dialog_title">Пожалуйста, выберите метод</string>
<string name="sheet_pn_mode_confirm_button_title">Подтвердить</string>
<string name="sheet_pn_mode_skip_button_title">Пропустить</string>
<string name="activity_seed_title">Ваша секретная фраза для восстановления</string>
<string name="activity_seed_title_2">А вот и ваша секретная фраза для восстановления</string>
<string name="activity_seed_explanation">Ваша секретная фраза является главным ключом к вашему Session ID. Вы можете использовать ее для восстановления Session ID, если потеряете доступ к своему устройству. Сохраните свою секретную фразу в безопасном месте, и никому её не передавайте.</string>
@ -1479,7 +1462,6 @@
<string name="activity_join_public_chat_scan_qr_code_explanation">Отсканируйте QR-код открытой группы, в которую вы хотите вступить</string>
<string name="fragment_enter_chat_url_edit_text_hint">Введите URL открытой группы</string>
<string name="fragment_enter_chat_url_privacy_warning">К открытым группам может присоединиться кто угодно. Они не обеспечивают полной защиты конфиденциальности</string>
<string name="activity_settings_title">Настройки</string>
<string name="activity_settings_display_name_edit_text_hint">Введите отображаемое имя</string>
@ -1511,8 +1493,6 @@
<string name="activity_linked_devices_empty_state_button_title">Привязать устройство</string>
<string name="preferences_notifications_strategy_category_title">Метод уведомлений</string>
<string name="preferences_notifications_use_fcm_option_title">Использовать FCM</string>
<string name="preferences_notifications_use_fcm_option_explanation">Использование Firebase Cloud Messaging позволяет получать более надежные всплывающие уведомления, но предоставляет ваш IP и токен устройства в адрес Google и Loki.</string>
<string name="dialog_link_device_slave_mode_title_1">Ожидание авторизации</string>
<string name="dialog_link_device_slave_mode_title_2">Привязка устройства авторизована</string>
@ -1546,16 +1526,6 @@
<string name="fragment_view_my_qr_code_explanation">Это ваш QR-код. Другие пользователи могут сканировать его, чтобы начать диалог с вами.</string>
<string name="fragment_view_my_qr_code_share_title">Поделиться QR-кодом</string>
<string name="view_friend_request_accept_button_title">Принять</string>
<string name="view_friend_request_reject_button_title">Отклонить</string>
<string name="view_friend_request_incoming_pending_message">%1$s отправил(а) вам запрос на сессию</string>
<string name="view_friend_request_incoming_accepted_message">Вы приняли запрос на сессию от %1$s</string>
<string name="view_friend_request_incoming_declined_message">Вы отклонили запрос на сессию от %1$s</string>
<string name="view_friend_request_incoming_expired_message">Время запроса на сессию от %1$s истекло</string>
<string name="view_friend_request_outgoing_pending_message">Вы отправили %1$s запрос на сессию</string>
<string name="view_friend_request_outgoing_accepted_message">%1$s принял ваш запрос на сессию</string>
<string name="view_friend_request_outgoing_expired_message">Время вашего запроса на сессию с %1$s истекло</string>
<string name="session_reset_banner_message">Хотите восстановить сессию с %s?</string>
<string name="session_reset_banner_dismiss_button_title">Отклонить</string>
<string name="session_reset_banner_restore_button_title">Восстановить</string>

@ -1319,12 +1319,6 @@
<string name="activity_display_name_display_name_invalid_error">请选择一个仅包含 azAZ0-9 和_字符的显示名称</string>
<string name="activity_display_name_display_name_too_long_error">请选择一个较短的显示名称</string>
<string name="activity_pn_mode_title">推送通知</string>
<string name="activity_pn_mode_explanation">Session可以通过两种方式处理推送通知。选择之前请务必仔细阅读说明。</string>
<string name="activity_pn_mode_fcm_option_title">Firebase云消息传递</string>
<string name="activity_pn_mode_fcm_option_explanation">会话将使用 Firebase 云消息服务接收推送通知。您会立即可靠地收到新消息的通知。使用 FCM 意味着您的 IP 地址和设备令牌将向 Google 公开。如果您对其他应用程序使用推送通知,则情况也如此。您的 IP 地址和设备令牌也将向 Loki 公开,但是您的消息仍将经过洋葱路由和端到端加密,因此消息的内容将完全保密。</string>
<string name="activity_pn_mode_background_polling_option_title">背景轮询</string>
<string name="activity_pn_mode_background_polling_option_explanation">Session偶尔会在后台检查新消息。这样可以保证完整的元数据保护但是消息通知可能会大大延迟。</string>
<string name="activity_pn_mode_recommended_option_tag">推荐的选项</string>
<string name="activity_pn_mode_no_option_picked_dialog_title">请选择一个选项</string>
@ -1335,17 +1329,6 @@
<string name="activity_home_delete_conversation_dialog_message">您确定要删除此对话吗?</string>
<string name="activity_home_conversation_deleted_message">对话已删除</string>
<string name="sheet_pn_mode_title">推送通知</string>
<string name="sheet_pn_mode_explanation">会话现在具有两种处理推送通知的方式。选择之前,请务必仔细阅读说明。</string>
<string name="sheet_pn_mode_fcm_option_title">Firebase 云消息传递</string>
<string name="sheet_pn_mode_fcm_option_explanation">会话将使用 Firebase 云消息服务接收推送通知。您会立即可靠地收到新消息的通知。使用 FCM 意味着您的 IP 地址和设备令牌将向 Google 公开。如果您对其他应用程序使用推送通知,则情况也如此。您的 IP 地址和设备令牌也将向 Loki 公开,但是您的消息仍将经过洋葱路由和端到端加密,因此消息的内容将完全保密。</string>
<string name="sheet_pn_mode_background_polling_option_title">背景轮询</string>
<string name="sheet_pn_mode_background_polling_option_explanation">Session偶尔会在后台检查新消息。这样可以保证完整的元数据保护但是消息通知可能会大大延迟。</string>
<string name="sheet_pn_mode_recommended_option_tag">推荐的</string>
<string name="sheet_pn_mode_no_option_picked_dialog_title">请选择一个选项</string>
<string name="sheet_pn_mode_confirm_button_title">确认</string>
<string name="sheet_pn_mode_skip_button_title">跳过</string>
<string name="activity_seed_title">您的恢复短语</string>
<string name="activity_seed_title_2">符合您的恢复短语</string>
<string name="activity_seed_explanation">恢复短语是Session ID 的主密钥 - 如果您无法访问设备则可以使用它来恢复Session ID。将您的恢复用语存储在安全的地方不要将其提供给任何人。</string>
@ -1392,7 +1375,6 @@
<string name="activity_join_public_chat_scan_qr_code_explanation">扫描您想加入的公开群组的二维码</string>
<string name="fragment_enter_chat_url_edit_text_hint">输入一个公开群组网址</string>
<string name="fragment_enter_chat_url_privacy_warning">公开群组可以被任何人加入,并且不能提供全面的隐私保护</string>
<string name="activity_settings_title">设置</string>
<string name="activity_settings_display_name_edit_text_hint">输入显示的名称</string>
@ -1424,8 +1406,6 @@
<string name="activity_linked_devices_empty_state_button_title">链接设备(测试版)</string>
<string name="preferences_notifications_strategy_category_title">通知选项</string>
<string name="preferences_notifications_use_fcm_option_title">使用 FCM</string>
<string name="preferences_notifications_use_fcm_option_explanation">使用 Firebase 云消息可以提供更可靠的推送通知,但会将您的 IP 和设备令牌公开给 Google 和 Loki。</string>
<string name="dialog_link_device_slave_mode_title_1">等待授权</string>
<string name="dialog_link_device_slave_mode_title_2">设备链接授权</string>
@ -1459,16 +1439,6 @@
<string name="fragment_view_my_qr_code_explanation">这是您的二维码。其他用户可以对其进行扫描以开始对话。</string>
<string name="fragment_view_my_qr_code_share_title">分享二维码</string>
<string name="view_friend_request_accept_button_title">接受</string>
<string name="view_friend_request_reject_button_title">拒绝</string>
<string name="view_friend_request_incoming_pending_message">%1$s向您发送了一个会话请求</string>
<string name="view_friend_request_incoming_accepted_message">您已接受%1$s的会话请求</string>
<string name="view_friend_request_incoming_declined_message">您拒绝了%1$s的会话请求</string>
<string name="view_friend_request_incoming_expired_message">%1$s的会话请求已过期</string>
<string name="view_friend_request_outgoing_pending_message">您已向%1$s发送了会话请求</string>
<string name="view_friend_request_outgoing_accepted_message">%1$s接受了会话请求</string>
<string name="view_friend_request_outgoing_expired_message">您对%1$s的会话请求已过期</string>
<string name="session_reset_banner_message">您要恢复与%s的会话吗</string>
<string name="session_reset_banner_dismiss_button_title">解散</string>
<string name="session_reset_banner_restore_button_title">恢复</string>

@ -1702,12 +1702,6 @@
<string name="activity_display_name_display_name_invalid_error">Please pick a display name that consists of only a-z, A-Z, 0-9 and _ characters</string>
<string name="activity_display_name_display_name_too_long_error">Please pick a shorter display name</string>
<string name="activity_pn_mode_title">Push Notifications</string>
<string name="activity_pn_mode_explanation">There are two ways Session can handle push notifications. Make sure to read the descriptions carefully before you choose.</string>
<string name="activity_pn_mode_fcm_option_title">Firebase Cloud Messaging</string>
<string name="activity_pn_mode_fcm_option_explanation">Session will use the Firebase Cloud Messaging service to receive push notifications. You\'ll be notified of new messages reliably and immediately. Using FCM means that your IP address and device token will be exposed to Google. If you use push notifications for other apps, this will already be the case. Your IP address and device token will also be exposed to Loki, but your messages will still be onion-routed and end-to-end encrypted, so the contents of your messages will remain completely private.</string>
<string name="activity_pn_mode_background_polling_option_title">Background Polling</string>
<string name="activity_pn_mode_background_polling_option_explanation">Session will occasionally check for new messages in the background. This guarantees full metadata protection, but message notifications may be significantly delayed.</string>
<string name="activity_pn_mode_recommended_option_tag">Recommended</string>
<string name="activity_pn_mode_no_option_picked_dialog_title">Please Pick an Option</string>
@ -1718,17 +1712,6 @@
<string name="activity_home_delete_conversation_dialog_message">Are you sure you want to delete this conversation?</string>
<string name="activity_home_conversation_deleted_message">Conversation deleted</string>
<string name="sheet_pn_mode_title">Push Notifications</string>
<string name="sheet_pn_mode_explanation">Session now features two ways to handle push notifications. Make sure to read the descriptions carefully before you choose.</string>
<string name="sheet_pn_mode_fcm_option_title">Firebase Cloud Messaging</string>
<string name="sheet_pn_mode_fcm_option_explanation">Session will use the Firebase Cloud Messaging service to receive push notifications. You\'ll be notified of new messages reliably and immediately. Using FCM means that your IP address and device token will be exposed to Google. If you use push notifications for other apps, this will already be the case. Your IP address and device token will also be exposed to Loki, but your messages will still be onion-routed and end-to-end encrypted, so the contents of your messages will remain completely private.</string>
<string name="sheet_pn_mode_background_polling_option_title">Background Polling</string>
<string name="sheet_pn_mode_background_polling_option_explanation">Session will occasionally check for new messages in the background. This guarantees full metadata protection, but message notifications may be significantly delayed.</string>
<string name="sheet_pn_mode_recommended_option_tag">Recommended</string>
<string name="sheet_pn_mode_no_option_picked_dialog_title">Please Pick an Option</string>
<string name="sheet_pn_mode_confirm_button_title">Confirm</string>
<string name="sheet_pn_mode_skip_button_title">Skip</string>
<string name="activity_seed_title">Your Recovery Phrase</string>
<string name="activity_seed_title_2">Meet your recovery phrase</string>
<string name="activity_seed_explanation">Your recovery phrase is the master key to your Session ID — you can use it to restore your Session ID if you lose access to your device. Store your recovery phrase in a safe place, and don\t give it to anyone.</string>
@ -1775,7 +1758,6 @@
<string name="activity_join_public_chat_scan_qr_code_explanation">Scan the QR code of the open group you\'d like to join</string>
<string name="fragment_enter_chat_url_edit_text_hint">Enter an open group URL</string>
<string name="fragment_enter_chat_url_privacy_warning">Open groups can be joined by anyone and do not provide full privacy protection</string>
<string name="activity_settings_title">Settings</string>
<string name="activity_settings_display_name_edit_text_hint">Enter a display name</string>
@ -1807,8 +1789,6 @@
<string name="activity_linked_devices_empty_state_button_title">Link a Device (Beta)</string>
<string name="preferences_notifications_strategy_category_title">Notification Strategy</string>
<string name="preferences_notifications_use_fcm_option_title">Use FCM</string>
<string name="preferences_notifications_use_fcm_option_explanation">Using Firebase Cloud Messaging allows for more reliable push notifications, but exposes your IP and device token to Google and Loki.</string>
<string name="dialog_link_device_slave_mode_title_1">Waiting for Authorization</string>
<string name="dialog_link_device_slave_mode_title_2">Device Link Authorized</string>
@ -1842,16 +1822,6 @@
<string name="fragment_view_my_qr_code_explanation">This is your QR code. Other users can scan it to start a session with you.</string>
<string name="fragment_view_my_qr_code_share_title">Share QR Code</string>
<string name="view_friend_request_accept_button_title">Accept</string>
<string name="view_friend_request_reject_button_title">Decline</string>
<string name="view_friend_request_incoming_pending_message">%1$s sent you a session request</string>
<string name="view_friend_request_incoming_accepted_message">You\'ve accepted %1$s\'s session request</string>
<string name="view_friend_request_incoming_declined_message">You\'ve declined %1$s\'s session request</string>
<string name="view_friend_request_incoming_expired_message">%1$s\'s session request has expired</string>
<string name="view_friend_request_outgoing_pending_message">You\'ve sent %1$s a session request</string>
<string name="view_friend_request_outgoing_accepted_message">%1$s accepted your session request</string>
<string name="view_friend_request_outgoing_expired_message">Your session request to %1$s has expired</string>
<string name="session_reset_banner_message">Would you like to restore your session with %s?</string>
<string name="session_reset_banner_dismiss_button_title">Dismiss</string>
<string name="session_reset_banner_restore_button_title">Restore</string>

@ -26,8 +26,8 @@
<org.thoughtcrime.securesms.components.SwitchPreferenceCompat
android:dependency="pref_key_enable_notifications"
android:key="pref_key_use_fcm"
android:title="@string/preferences_notifications_use_fcm_option_title"
android:summary="@string/preferences_notifications_use_fcm_option_explanation"
android:title="Use Fast Mode"
android:summary="Youll be notified of new messages reliably and immediately using Googles notification servers. The contents of your messages, and who youre messaging, are never exposed to Google."
android:defaultValue="false" />
</PreferenceCategory>

@ -31,7 +31,6 @@ import org.thoughtcrime.securesms.database.ThreadDatabase
import org.thoughtcrime.securesms.database.model.ThreadRecord
import org.thoughtcrime.securesms.jobs.MultiDeviceBlockedUpdateJob
import org.thoughtcrime.securesms.loki.dialogs.ConversationOptionsBottomSheet
import org.thoughtcrime.securesms.loki.dialogs.PNModeBottomSheet
import org.thoughtcrime.securesms.loki.protocol.ClosedGroupsProtocol
import org.thoughtcrime.securesms.loki.protocol.SessionResetImplementation
import org.thoughtcrime.securesms.loki.utilities.*
@ -190,20 +189,6 @@ class HomeActivity : PassphraseRequiredActionBarActivity, ConversationClickListe
if (hasViewedSeed || !isMasterDevice) {
seedReminderView.visibility = View.GONE
}
if (!TextSecurePreferences.hasSeenPNModeSheet(this)) {
val bottomSheet = PNModeBottomSheet()
bottomSheet.onConfirmTapped = { isUsingFCM ->
TextSecurePreferences.setHasSeenPNModeSheet(this, true)
TextSecurePreferences.setIsUsingFCM(this, isUsingFCM)
ApplicationContext.getInstance(this).registerForFCMIfNeeded(true)
bottomSheet.dismiss()
}
bottomSheet.onSkipTapped = {
TextSecurePreferences.setHasSeenPNModeSheet(this, true)
bottomSheet.dismiss()
}
bottomSheet.show(supportFragmentManager, bottomSheet.tag)
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {

@ -3,10 +3,14 @@ package org.thoughtcrime.securesms.loki.activities
import android.app.AlertDialog
import android.content.Intent
import android.graphics.drawable.TransitionDrawable
import android.net.Uri
import android.os.Bundle
import android.support.annotation.DrawableRes
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.widget.LinearLayout
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_display_name.registerButton
import kotlinx.android.synthetic.main.activity_pn_mode.*
import network.loki.messenger.R
@ -28,6 +32,11 @@ class PNModeActivity : BaseActionBarActivity() {
backgroundPollingOptionView.setOnClickListener { toggleBackgroundPolling() }
registerButton.setOnClickListener { register() }
}
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.menu_pn_mode, menu)
return true
}
// endregion
// region Animation
@ -39,6 +48,25 @@ class PNModeActivity : BaseActionBarActivity() {
// endregion
// region Interaction
override fun onOptionsItemSelected(item: MenuItem): Boolean {
val id = item.itemId
when(id) {
R.id.learnMoreButton -> learnMore()
else -> { /* Do nothing */ }
}
return super.onOptionsItemSelected(item)
}
private fun learnMore() {
try {
val url = "https://getsession.org/faq/#privacy"
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
startActivity(intent)
} catch (e: Exception) {
Toast.makeText(this, R.string.invalid_url, Toast.LENGTH_SHORT).show()
}
}
private fun toggleFCM() {
when (selectedOptionView) {
null -> {

@ -1,100 +0,0 @@
package org.thoughtcrime.securesms.loki.dialogs
import android.app.AlertDialog
import android.content.DialogInterface
import android.graphics.drawable.TransitionDrawable
import android.os.Bundle
import android.support.annotation.DrawableRes
import android.support.design.widget.BottomSheetDialogFragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.LinearLayout
import kotlinx.android.synthetic.main.fragment_pn_mode_bottom_sheet.*
import network.loki.messenger.R
import org.thoughtcrime.securesms.util.TextSecurePreferences
class PNModeBottomSheet : BottomSheetDialogFragment() {
private var selectedOptionView: LinearLayout? = null
var onConfirmTapped: ((Boolean) -> Unit)? = null
var onSkipTapped: (() -> Unit)? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setStyle(STYLE_NORMAL, R.style.SessionBottomSheetDialogTheme)
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_pn_mode_bottom_sheet, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
fcmOptionView.setOnClickListener { toggleFCM() }
backgroundPollingOptionView.setOnClickListener { toggleBackgroundPolling() }
confirmButton.setOnClickListener { confirm() }
skipButton.setOnClickListener { onSkipTapped?.invoke() }
}
override fun onDismiss(dialog: DialogInterface?) {
TextSecurePreferences.setHasSeenPNModeSheet(context, true)
super.onDismiss(dialog)
}
// region Animation
private fun performTransition(@DrawableRes transitionID: Int, subject: View) {
val drawable = resources.getDrawable(transitionID, context!!.theme) as TransitionDrawable
subject.background = drawable
drawable.startTransition(250)
}
// endregion
// region Interaction
private fun toggleFCM() {
when (selectedOptionView) {
null -> {
performTransition(R.drawable.pn_option_background_select_transition, fcmOptionView)
selectedOptionView = fcmOptionView
}
fcmOptionView -> {
performTransition(R.drawable.pn_option_background_deselect_transition, fcmOptionView)
selectedOptionView = null
}
backgroundPollingOptionView -> {
performTransition(R.drawable.pn_option_background_select_transition, fcmOptionView)
performTransition(R.drawable.pn_option_background_deselect_transition, backgroundPollingOptionView)
selectedOptionView = fcmOptionView
}
}
}
private fun toggleBackgroundPolling() {
when (selectedOptionView) {
null -> {
performTransition(R.drawable.pn_option_background_select_transition, backgroundPollingOptionView)
selectedOptionView = backgroundPollingOptionView
}
backgroundPollingOptionView -> {
performTransition(R.drawable.pn_option_background_deselect_transition, backgroundPollingOptionView)
selectedOptionView = null
}
fcmOptionView -> {
performTransition(R.drawable.pn_option_background_select_transition, backgroundPollingOptionView)
performTransition(R.drawable.pn_option_background_deselect_transition, fcmOptionView)
selectedOptionView = backgroundPollingOptionView
}
}
}
private fun confirm() {
if (selectedOptionView == null) {
val dialog = AlertDialog.Builder(context)
dialog.setTitle(R.string.sheet_pn_mode_no_option_picked_dialog_title)
dialog.setPositiveButton(R.string.ok) { _, _ -> }
dialog.create().show()
return
}
onConfirmTapped?.invoke(selectedOptionView == fcmOptionView)
}
// endregion
}
Loading…
Cancel
Save