mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-07-13 17:23:56 +01:00
Delete old megaphones.
This commit is contained in:
committed by
Alex Hart
parent
3922bfacf5
commit
62f5088553
-4
@@ -6,7 +6,6 @@ import org.thoughtcrime.securesms.database.SignalDatabase
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
||||
import org.thoughtcrime.securesms.jobs.MultiDeviceConfigurationUpdateJob
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.megaphone.Megaphones
|
||||
import org.thoughtcrime.securesms.recipients.Recipient
|
||||
import org.thoughtcrime.securesms.storage.StorageSyncHelper
|
||||
import org.thoughtcrime.securesms.util.TextSecurePreferences
|
||||
@@ -29,9 +28,6 @@ class ChatsSettingsRepository {
|
||||
isLinkPreviewsEnabled
|
||||
)
|
||||
)
|
||||
if (isLinkPreviewsEnabled) {
|
||||
ApplicationDependencies.getMegaphoneRepository().markFinished(Megaphones.Event.LINK_PREVIEWS)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
-48
@@ -1,48 +0,0 @@
|
||||
package org.thoughtcrime.securesms.linkpreview;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||
import org.thoughtcrime.securesms.megaphone.Megaphone;
|
||||
import org.thoughtcrime.securesms.megaphone.MegaphoneActionController;
|
||||
|
||||
public class LinkPreviewsMegaphoneView extends FrameLayout {
|
||||
|
||||
private View yesButton;
|
||||
private View noButton;
|
||||
|
||||
public LinkPreviewsMegaphoneView(Context context) {
|
||||
super(context);
|
||||
initialize(context);
|
||||
}
|
||||
|
||||
public LinkPreviewsMegaphoneView(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
initialize(context);
|
||||
}
|
||||
|
||||
private void initialize(@NonNull Context context) {
|
||||
inflate(context, R.layout.link_previews_megaphone, this);
|
||||
|
||||
this.yesButton = findViewById(R.id.linkpreview_megaphone_ok);
|
||||
this.noButton = findViewById(R.id.linkpreview_megaphone_disable);
|
||||
}
|
||||
|
||||
public void present(@NonNull Megaphone megaphone, @NonNull MegaphoneActionController listener) {
|
||||
this.yesButton.setOnClickListener(v -> {
|
||||
SignalStore.settings().setLinkPreviewsEnabled(true);
|
||||
listener.onMegaphoneCompleted(megaphone.getEvent());
|
||||
});
|
||||
|
||||
this.noButton.setOnClickListener(v -> {
|
||||
SignalStore.settings().setLinkPreviewsEnabled(false);
|
||||
listener.onMegaphoneCompleted(megaphone.getEvent());
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -215,12 +215,6 @@ public class Megaphone {
|
||||
}
|
||||
|
||||
enum Style {
|
||||
/** Specialized style for announcing reactions. */
|
||||
REACTIONS,
|
||||
|
||||
/** Specialized style for announcing link previews. */
|
||||
LINK_PREVIEWS,
|
||||
|
||||
/** Specialized style for onboarding. */
|
||||
ONBOARDING,
|
||||
|
||||
|
||||
@@ -50,11 +50,6 @@ public class MegaphoneRepository {
|
||||
@AnyThread
|
||||
public void onFirstEverAppLaunch() {
|
||||
executor.execute(() -> {
|
||||
database.markFinished(Event.REACTIONS);
|
||||
database.markFinished(Event.MESSAGE_REQUESTS);
|
||||
database.markFinished(Event.LINK_PREVIEWS);
|
||||
database.markFinished(Event.RESEARCH);
|
||||
database.markFinished(Event.GROUP_CALLING);
|
||||
database.markFinished(Event.CHAT_COLORS);
|
||||
database.markFinished(Event.ADD_A_PROFILE_PHOTO);
|
||||
database.markFinished(Event.NOTIFICATION_PROFILES);
|
||||
|
||||
@@ -6,9 +6,6 @@ import android.view.View;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import org.thoughtcrime.securesms.linkpreview.LinkPreviewsMegaphoneView;
|
||||
import org.thoughtcrime.securesms.reactions.ReactionsMegaphoneView;
|
||||
|
||||
public class MegaphoneViewBuilder {
|
||||
|
||||
public static @Nullable View build(@NonNull Context context,
|
||||
@@ -20,10 +17,6 @@ public class MegaphoneViewBuilder {
|
||||
return buildBasicMegaphone(context, megaphone, listener);
|
||||
case FULLSCREEN:
|
||||
return null;
|
||||
case REACTIONS:
|
||||
return buildReactionsMegaphone(context, megaphone, listener);
|
||||
case LINK_PREVIEWS:
|
||||
return buildLinkPreviewsMegaphone(context, megaphone, listener);
|
||||
case ONBOARDING:
|
||||
return buildOnboardingMegaphone(context, megaphone, listener);
|
||||
case POPUP:
|
||||
@@ -42,24 +35,6 @@ public class MegaphoneViewBuilder {
|
||||
return view;
|
||||
}
|
||||
|
||||
private static @NonNull View buildReactionsMegaphone(@NonNull Context context,
|
||||
@NonNull Megaphone megaphone,
|
||||
@NonNull MegaphoneActionController listener)
|
||||
{
|
||||
ReactionsMegaphoneView view = new ReactionsMegaphoneView(context);
|
||||
view.present(megaphone, listener);
|
||||
return view;
|
||||
}
|
||||
|
||||
private static @NonNull View buildLinkPreviewsMegaphone(@NonNull Context context,
|
||||
@NonNull Megaphone megaphone,
|
||||
@NonNull MegaphoneActionController listener)
|
||||
{
|
||||
LinkPreviewsMegaphoneView view = new LinkPreviewsMegaphoneView(context);
|
||||
view.present(megaphone, listener);
|
||||
return view;
|
||||
}
|
||||
|
||||
private static @NonNull View buildOnboardingMegaphone(@NonNull Context context,
|
||||
@NonNull Megaphone megaphone,
|
||||
@NonNull MegaphoneActionController listener)
|
||||
|
||||
@@ -96,14 +96,9 @@ public final class Megaphones {
|
||||
*/
|
||||
private static Map<Event, MegaphoneSchedule> buildDisplayOrder(@NonNull Context context) {
|
||||
return new LinkedHashMap<Event, MegaphoneSchedule>() {{
|
||||
put(Event.REACTIONS, ALWAYS);
|
||||
put(Event.PINS_FOR_ALL, new PinsForAllSchedule());
|
||||
put(Event.PIN_REMINDER, new SignalPinReminderSchedule());
|
||||
put(Event.MESSAGE_REQUESTS, shouldShowMessageRequestsMegaphone() ? ALWAYS : NEVER);
|
||||
put(Event.LINK_PREVIEWS, shouldShowLinkPreviewsMegaphone(context) ? ALWAYS : NEVER);
|
||||
put(Event.CLIENT_DEPRECATED, SignalStore.misc().isClientDeprecated() ? ALWAYS : NEVER);
|
||||
put(Event.RESEARCH, shouldShowResearchMegaphone(context) ? ShowForDurationSchedule.showForDays(7) : NEVER);
|
||||
put(Event.GROUP_CALLING, shouldShowGroupCallingMegaphone() ? ALWAYS : NEVER);
|
||||
put(Event.ONBOARDING, shouldShowOnboardingMegaphone(context) ? ALWAYS : NEVER);
|
||||
put(Event.NOTIFICATIONS, shouldShowNotificationsMegaphone(context) ? RecurringSchedule.every(TimeUnit.DAYS.toMillis(30)) : NEVER);
|
||||
put(Event.CHAT_COLORS, ALWAYS);
|
||||
@@ -115,22 +110,12 @@ public final class Megaphones {
|
||||
|
||||
private static @NonNull Megaphone forRecord(@NonNull Context context, @NonNull MegaphoneRecord record) {
|
||||
switch (record.getEvent()) {
|
||||
case REACTIONS:
|
||||
return buildReactionsMegaphone();
|
||||
case PINS_FOR_ALL:
|
||||
return buildPinsForAllMegaphone(record);
|
||||
case PIN_REMINDER:
|
||||
return buildPinReminderMegaphone(context);
|
||||
case MESSAGE_REQUESTS:
|
||||
return buildMessageRequestsMegaphone(context);
|
||||
case LINK_PREVIEWS:
|
||||
return buildLinkPreviewsMegaphone();
|
||||
case CLIENT_DEPRECATED:
|
||||
return buildClientDeprecatedMegaphone(context);
|
||||
case RESEARCH:
|
||||
return buildResearchMegaphone(context);
|
||||
case GROUP_CALLING:
|
||||
return buildGroupCallingMegaphone(context);
|
||||
case ONBOARDING:
|
||||
return buildOnboardingMegaphone();
|
||||
case NOTIFICATIONS:
|
||||
@@ -148,12 +133,6 @@ public final class Megaphones {
|
||||
}
|
||||
}
|
||||
|
||||
private static @NonNull Megaphone buildReactionsMegaphone() {
|
||||
return new Megaphone.Builder(Event.REACTIONS, Megaphone.Style.REACTIONS)
|
||||
.setPriority(Megaphone.Priority.DEFAULT)
|
||||
.build();
|
||||
}
|
||||
|
||||
private static @NonNull Megaphone buildPinsForAllMegaphone(@NonNull MegaphoneRecord record) {
|
||||
if (PinsForAllSchedule.shouldDisplayFullScreen(record.getFirstVisible(), System.currentTimeMillis())) {
|
||||
return new Megaphone.Builder(Event.PINS_FOR_ALL, Megaphone.Style.FULLSCREEN)
|
||||
@@ -213,24 +192,6 @@ public final class Megaphones {
|
||||
.build();
|
||||
}
|
||||
|
||||
@SuppressWarnings("CodeBlock2Expr")
|
||||
private static @NonNull Megaphone buildMessageRequestsMegaphone(@NonNull Context context) {
|
||||
return new Megaphone.Builder(Event.MESSAGE_REQUESTS, Megaphone.Style.FULLSCREEN)
|
||||
.disableSnooze()
|
||||
.setPriority(Megaphone.Priority.HIGH)
|
||||
.setOnVisibleListener(((megaphone, listener) -> {
|
||||
listener.onMegaphoneNavigationRequested(new Intent(context, MessageRequestMegaphoneActivity.class),
|
||||
ConversationListFragment.MESSAGE_REQUESTS_REQUEST_CODE_CREATE_NAME);
|
||||
}))
|
||||
.build();
|
||||
}
|
||||
|
||||
private static @NonNull Megaphone buildLinkPreviewsMegaphone() {
|
||||
return new Megaphone.Builder(Event.LINK_PREVIEWS, Megaphone.Style.LINK_PREVIEWS)
|
||||
.setPriority(Megaphone.Priority.HIGH)
|
||||
.build();
|
||||
}
|
||||
|
||||
private static @NonNull Megaphone buildClientDeprecatedMegaphone(@NonNull Context context) {
|
||||
return new Megaphone.Builder(Event.CLIENT_DEPRECATED, Megaphone.Style.FULLSCREEN)
|
||||
.disableSnooze()
|
||||
@@ -239,34 +200,6 @@ public final class Megaphones {
|
||||
.build();
|
||||
}
|
||||
|
||||
private static @NonNull Megaphone buildResearchMegaphone(@NonNull Context context) {
|
||||
return new Megaphone.Builder(Event.RESEARCH, Megaphone.Style.BASIC)
|
||||
.disableSnooze()
|
||||
.setTitle(R.string.ResearchMegaphone_tell_signal_what_you_think)
|
||||
.setBody(R.string.ResearchMegaphone_to_make_signal_the_best_messaging_app_on_the_planet)
|
||||
.setImage(R.drawable.ic_research_megaphone)
|
||||
.setActionButton(R.string.ResearchMegaphone_learn_more, (megaphone, controller) -> {
|
||||
controller.onMegaphoneCompleted(megaphone.getEvent());
|
||||
controller.onMegaphoneDialogFragmentRequested(new ResearchMegaphoneDialog());
|
||||
})
|
||||
.setSecondaryButton(R.string.ResearchMegaphone_dismiss, (megaphone, controller) -> controller.onMegaphoneCompleted(megaphone.getEvent()))
|
||||
.setPriority(Megaphone.Priority.DEFAULT)
|
||||
.build();
|
||||
}
|
||||
|
||||
private static @NonNull Megaphone buildGroupCallingMegaphone(@NonNull Context context) {
|
||||
return new Megaphone.Builder(Event.GROUP_CALLING, Megaphone.Style.BASIC)
|
||||
.disableSnooze()
|
||||
.setTitle(R.string.GroupCallingMegaphone__introducing_group_calls)
|
||||
.setBody(R.string.GroupCallingMegaphone__open_a_new_group_to_start)
|
||||
.setImage(R.drawable.ic_group_calls_megaphone)
|
||||
.setActionButton(android.R.string.ok, (megaphone, controller) -> {
|
||||
controller.onMegaphoneCompleted(megaphone.getEvent());
|
||||
})
|
||||
.setPriority(Megaphone.Priority.DEFAULT)
|
||||
.build();
|
||||
}
|
||||
|
||||
private static @NonNull Megaphone buildOnboardingMegaphone() {
|
||||
return new Megaphone.Builder(Event.ONBOARDING, Megaphone.Style.ONBOARDING)
|
||||
.setPriority(Megaphone.Priority.DEFAULT)
|
||||
@@ -359,14 +292,6 @@ public final class Megaphones {
|
||||
.build();
|
||||
}
|
||||
|
||||
private static boolean shouldShowMessageRequestsMegaphone() {
|
||||
return Recipient.self().getProfileName() == ProfileName.EMPTY;
|
||||
}
|
||||
|
||||
private static boolean shouldShowResearchMegaphone(@NonNull Context context) {
|
||||
return VersionTracker.getDaysSinceFirstInstalled(context) > 7 && LocaleFeatureFlags.isInResearchMegaphone();
|
||||
}
|
||||
|
||||
private static boolean shouldShowDonateMegaphone(@NonNull Context context) {
|
||||
return VersionTracker.getDaysSinceFirstInstalled(context) >= 3 &&
|
||||
LocaleFeatureFlags.isInDonateMegaphone() &&
|
||||
@@ -378,14 +303,6 @@ public final class Megaphones {
|
||||
.noneMatch(badge -> badge.getCategory() == Badge.Category.Donor);
|
||||
}
|
||||
|
||||
private static boolean shouldShowLinkPreviewsMegaphone(@NonNull Context context) {
|
||||
return TextSecurePreferences.wereLinkPreviewsEnabled(context) && !SignalStore.settings().isLinkPreviewsEnabled();
|
||||
}
|
||||
|
||||
private static boolean shouldShowGroupCallingMegaphone() {
|
||||
return Build.VERSION.SDK_INT > 19;
|
||||
}
|
||||
|
||||
private static boolean shouldShowOnboardingMegaphone(@NonNull Context context) {
|
||||
return SignalStore.onboarding().hasOnboarding(context);
|
||||
}
|
||||
@@ -424,14 +341,9 @@ public final class Megaphones {
|
||||
}
|
||||
|
||||
public enum Event {
|
||||
REACTIONS("reactions"),
|
||||
PINS_FOR_ALL("pins_for_all"),
|
||||
PIN_REMINDER("pin_reminder"),
|
||||
MESSAGE_REQUESTS("message_requests"),
|
||||
LINK_PREVIEWS("link_previews"),
|
||||
CLIENT_DEPRECATED("client_deprecated"),
|
||||
RESEARCH("research"),
|
||||
GROUP_CALLING("group_calling"),
|
||||
ONBOARDING("onboarding"),
|
||||
NOTIFICATIONS("notifications"),
|
||||
CHAT_COLORS("chat_colors"),
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
package org.thoughtcrime.securesms.megaphone;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.text.Html;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.StringRes;
|
||||
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.components.FullScreenDialogFragment;
|
||||
import org.thoughtcrime.securesms.util.CommunicationActions;
|
||||
|
||||
public class ResearchMegaphoneDialog extends FullScreenDialogFragment {
|
||||
|
||||
private static final String SURVEY_URL = "https://surveys.signalusers.org/s3";
|
||||
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
TextView content = view.findViewById(R.id.research_megaphone_content);
|
||||
content.setText(Html.fromHtml(requireContext().getString(R.string.ResearchMegaphoneDialog_we_believe_in_privacy)));
|
||||
|
||||
view.findViewById(R.id.research_megaphone_dialog_take_the_survey)
|
||||
.setOnClickListener(v -> CommunicationActions.openBrowserLink(requireContext(), SURVEY_URL));
|
||||
|
||||
view.findViewById(R.id.research_megaphone_dialog_no_thanks)
|
||||
.setOnClickListener(v -> dismissAllowingStateLoss());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected @StringRes int getTitle() {
|
||||
return R.string.ResearchMegaphoneDialog_signal_research;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getDialogLayoutResource() {
|
||||
return R.layout.research_megaphone_dialog;
|
||||
}
|
||||
}
|
||||
-1
@@ -54,7 +54,6 @@ public class MessageRequestMegaphoneActivity extends PassphraseRequiredActivity
|
||||
if (requestCode == EDIT_PROFILE_REQUEST_CODE &&
|
||||
resultCode == RESULT_OK &&
|
||||
Recipient.self().getProfileName() != ProfileName.EMPTY) {
|
||||
ApplicationDependencies.getMegaphoneRepository().markFinished(Megaphones.Event.MESSAGE_REQUESTS);
|
||||
setResult(RESULT_OK);
|
||||
finish();
|
||||
}
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
package org.thoughtcrime.securesms.reactions;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.megaphone.Megaphone;
|
||||
import org.thoughtcrime.securesms.megaphone.MegaphoneActionController;
|
||||
|
||||
public class ReactionsMegaphoneView extends FrameLayout {
|
||||
|
||||
private View closeButton;
|
||||
|
||||
public ReactionsMegaphoneView(Context context) {
|
||||
super(context);
|
||||
initialize(context);
|
||||
}
|
||||
|
||||
public ReactionsMegaphoneView(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
initialize(context);
|
||||
}
|
||||
|
||||
private void initialize(@NonNull Context context) {
|
||||
inflate(context, R.layout.reactions_megaphone, this);
|
||||
|
||||
this.closeButton = findViewById(R.id.reactions_megaphone_x);
|
||||
}
|
||||
|
||||
public void present(@NonNull Megaphone megaphone, @NonNull MegaphoneActionController listener) {
|
||||
this.closeButton.setOnClickListener(v -> listener.onMegaphoneCompleted(megaphone.getEvent()));
|
||||
}
|
||||
}
|
||||
@@ -30,13 +30,6 @@ public final class LocaleFeatureFlags {
|
||||
private static final String COUNTRY_WILDCARD = "*";
|
||||
private static final int NOT_FOUND = -1;
|
||||
|
||||
/**
|
||||
* In research megaphone group for given country code
|
||||
*/
|
||||
public static boolean isInResearchMegaphone() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* In donate megaphone group for given country code
|
||||
*/
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.2 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 2.5 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 3.9 KiB |
@@ -1,27 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="64dp"
|
||||
android:height="64dp"
|
||||
android:viewportWidth="64"
|
||||
android:viewportHeight="64">
|
||||
<path
|
||||
android:pathData="M4,0L60,0A4,4 0,0 1,64 4L64,60A4,4 0,0 1,60 64L4,64A4,4 0,0 1,0 60L0,4A4,4 0,0 1,4 0z"
|
||||
android:fillColor="#B9B9B9"/>
|
||||
<path
|
||||
android:pathData="M9.5,54L46.5,54A1.5,1.5 0,0 1,48 55.5L48,55.5A1.5,1.5 0,0 1,46.5 57L9.5,57A1.5,1.5 0,0 1,8 55.5L8,55.5A1.5,1.5 0,0 1,9.5 54z"
|
||||
android:fillColor="#F6F6F6"/>
|
||||
<path
|
||||
android:pathData="M9.5,47L54.5,47A1.5,1.5 0,0 1,56 48.5L56,48.5A1.5,1.5 0,0 1,54.5 50L9.5,50A1.5,1.5 0,0 1,8 48.5L8,48.5A1.5,1.5 0,0 1,9.5 47z"
|
||||
android:fillColor="#F6F6F6"/>
|
||||
<path
|
||||
android:pathData="M0,4C0,1.7909 1.7909,0 4,0H60C62.2091,0 64,1.7909 64,4V41H0V4Z"
|
||||
android:fillColor="#2C6BED"/>
|
||||
<path
|
||||
android:pathData="M16.6154,10.3077m-5.5385,0a5.5385,5.5385 0,1 1,11.0769 0a5.5385,5.5385 0,1 1,-11.0769 0"
|
||||
android:fillColor="#E9E9E9"/>
|
||||
<path
|
||||
android:pathData="M11.0126,20.8283C6.3833,20.6538 2.8877,20.8738 0,21.3893V41H64V30.4162C36.7234,28.2829 21.4363,21.2214 11.0126,20.8283Z"
|
||||
android:fillColor="#6191F3"/>
|
||||
<path
|
||||
android:pathData="M-0,41L-0,37.3314C19.2247,32.4502 29.3199,15.9214 49.8461,16.4615C54.8182,16.5924 59.5815,17.6245 64,19.1928V41H-0Z"
|
||||
android:fillColor="#7DA8FF"/>
|
||||
</vector>
|
||||
@@ -1,30 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="60dp"
|
||||
android:height="60dp"
|
||||
android:viewportWidth="60"
|
||||
android:viewportHeight="60">
|
||||
<group>
|
||||
<clip-path
|
||||
android:pathData="M6,0L54,0A6,6 0,0 1,60 6L60,54A6,6 0,0 1,54 60L6,60A6,6 0,0 1,0 54L0,6A6,6 0,0 1,6 0z"/>
|
||||
<path
|
||||
android:pathData="M6,0L54,0A6,6 0,0 1,60 6L60,54A6,6 0,0 1,54 60L6,60A6,6 0,0 1,0 54L0,6A6,6 0,0 1,6 0z"
|
||||
android:fillColor="#ffffff"/>
|
||||
<path
|
||||
android:pathData="M0,0h60v60h-60z"
|
||||
android:fillColor="#DFE9FD"/>
|
||||
<path
|
||||
android:pathData="M-6,13L5,13A8,8 0,0 1,13 21L13,38A8,8 0,0 1,5 46L-6,46A8,8 0,0 1,-14 38L-14,21A8,8 0,0 1,-6 13z"
|
||||
android:fillColor="#2C6BED"/>
|
||||
<path
|
||||
android:pathData="M28,13L83,13A8,8 0,0 1,91 21L91,38A8,8 0,0 1,83 46L28,46A8,8 0,0 1,20 38L20,21A8,8 0,0 1,28 13z"
|
||||
android:fillColor="#6191F3"/>
|
||||
<path
|
||||
android:pathData="M33.81,51.3213L30.0808,24.8698C30.0493,24.6463 30.2956,24.4897 30.4846,24.6131L53.8863,39.8865C54.0758,40.0102 54.0308,40.2996 53.8126,40.3598L46.2009,42.4617C46.031,42.5086 45.9546,42.7061 46.0486,42.8552L52.9586,53.8078C53.0337,53.9269 53.0017,54.084 52.8859,54.1641L48.3603,57.2976C48.2386,57.3818 48.0714,57.349 47.9905,57.225L40.4311,45.6269C40.3393,45.4861 40.1409,45.4664 40.0233,45.5864L34.2579,51.4685C34.1053,51.6242 33.8404,51.5371 33.81,51.3213Z"
|
||||
android:fillColor="#ffffff"/>
|
||||
<path
|
||||
android:pathData="M33.81,51.3213L30.0808,24.8698C30.0493,24.6463 30.2956,24.4897 30.4846,24.6131L53.8863,39.8865C54.0758,40.0102 54.0308,40.2996 53.8126,40.3598L46.2009,42.4617C46.031,42.5086 45.9546,42.7061 46.0486,42.8552L52.9586,53.8078C53.0337,53.9269 53.0017,54.084 52.8859,54.1641L48.3603,57.2976C48.2386,57.3818 48.0714,57.349 47.9905,57.225L40.4311,45.6269C40.3393,45.4861 40.1409,45.4664 40.0233,45.5864L34.2579,51.4685C34.1053,51.6242 33.8404,51.5371 33.81,51.3213Z"
|
||||
android:strokeWidth="1.57676"
|
||||
android:fillColor="#00000000"
|
||||
android:strokeColor="#000000"/>
|
||||
</group>
|
||||
</vector>
|
||||
@@ -1,10 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="200dp"
|
||||
android:height="125dp"
|
||||
android:viewportWidth="335"
|
||||
android:viewportHeight="210">
|
||||
<path
|
||||
android:pathData="M118.928,28.8C118.928,18.719 118.928,13.679 120.89,9.828C122.616,6.441 125.37,3.688 128.757,1.962C132.607,0 137.647,0 147.728,0H306.2C316.281,0 321.321,0 325.172,1.962C328.559,3.688 331.312,6.441 333.038,9.828C335,13.679 335,18.719 335,28.8V74.627C335,76.867 335,77.987 334.564,78.843C334.181,79.595 333.569,80.207 332.816,80.591C331.96,81.027 330.84,81.027 328.6,81.027H147.728C137.647,81.027 132.607,81.027 128.757,79.065C125.37,77.339 122.616,74.586 120.89,71.199C118.928,67.348 118.928,62.308 118.928,52.227V28.8ZM226.964,103.534C226.964,101.439 226.964,100.391 227.051,99.508C227.895,90.966 234.653,84.209 243.195,83.365C244.077,83.278 245.125,83.278 247.221,83.278H328.6C330.84,83.278 331.96,83.278 332.816,83.714C333.569,84.097 334.181,84.709 334.564,85.462C335,86.317 335,87.437 335,89.678V94.991C335,105.072 335,110.112 333.038,113.963C331.312,117.35 328.559,120.103 325.172,121.829C321.321,123.791 316.281,123.791 306.2,123.791H247.221C245.125,123.791 244.077,123.791 243.195,123.704C234.653,122.86 227.895,116.102 227.051,107.561C226.964,106.678 226.964,105.63 226.964,103.534ZM1.962,138.121C0,141.971 0,147.012 0,157.093V180.519C0,190.6 0,195.641 1.962,199.491C3.688,202.878 6.441,205.632 9.828,207.358C13.679,209.319 18.719,209.319 28.8,209.319H187.272C197.353,209.319 202.393,209.319 206.243,207.358C209.63,205.632 212.384,202.878 214.11,199.491C216.072,195.641 216.072,190.6 216.072,180.519V157.093C216.072,147.012 216.072,141.971 214.11,138.121C212.384,134.734 209.63,131.98 206.243,130.254C202.393,128.293 197.353,128.293 187.272,128.293H28.8C18.719,128.293 13.679,128.293 9.828,130.254C6.441,131.98 3.688,134.734 1.962,138.121Z"
|
||||
android:fillColor="#848484"
|
||||
android:fillType="evenOdd"/>
|
||||
</vector>
|
||||
@@ -1,105 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merge
|
||||
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="wrap_content"
|
||||
android:clipChildren="false"
|
||||
android:clipToPadding="false"
|
||||
android:paddingBottom="14dp"
|
||||
tools:parentTag="android.widget.FrameLayout">
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="8dp"
|
||||
android:clipChildren="false"
|
||||
android:clipToPadding="false"
|
||||
app:cardBackgroundColor="@color/megaphone_background_color"
|
||||
app:cardCornerRadius="8dp"
|
||||
app:cardElevation="6dp"
|
||||
app:cardPreventCornerOverlap="false"
|
||||
app:cardUseCompatPadding="true"
|
||||
app:contentPadding="0dp">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:clickable="true"
|
||||
android:paddingStart="8dp"
|
||||
android:paddingTop="16dp"
|
||||
android:paddingEnd="8dp"
|
||||
android:paddingBottom="8dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/linkpreview_megaphone_image"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:scaleType="centerInside"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:srcCompat="@drawable/ic_megaphone_link_previews" />
|
||||
|
||||
<org.thoughtcrime.securesms.components.emoji.EmojiTextView
|
||||
android:id="@+id/linkpreview_megaphone_title"
|
||||
style="@style/Signal.Text.Body"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="12dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:text="@string/LinkPreviewsMegaphone_preview_any_link"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/linkpreview_megaphone_image"
|
||||
app:layout_constraintTop_toTopOf="@id/linkpreview_megaphone_image" />
|
||||
|
||||
<org.thoughtcrime.securesms.components.emoji.EmojiTextView
|
||||
android:id="@+id/linkpreview_megaphone_body"
|
||||
style="@style/Signal.Text.Preview"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:text="@string/LinkPreviewsMegaphone_you_can_now_retrieve_link_previews_directly_from_any_website"
|
||||
android:textColor="@color/megaphone_body_text_color"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@id/linkpreview_megaphone_title"
|
||||
app:layout_constraintTop_toBottomOf="@id/linkpreview_megaphone_title" />
|
||||
|
||||
<androidx.constraintlayout.widget.Barrier
|
||||
android:id="@+id/linkpreview_megaphone_content_barrier"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:barrierDirection="bottom"
|
||||
app:constraint_referenced_ids="linkpreview_megaphone_image,linkpreview_megaphone_body,linkpreview_megaphone_title" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/linkpreview_megaphone_ok"
|
||||
style="@style/Button.Borderless"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
android:text="@string/ok"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/linkpreview_megaphone_disable"
|
||||
app:layout_constraintTop_toBottomOf="@id/linkpreview_megaphone_content_barrier"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/linkpreview_megaphone_disable"
|
||||
style="@style/Button.Borderless"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
android:text="@string/LinkPreviewsMegaphone_disable"
|
||||
app:layout_constraintEnd_toStartOf="@id/linkpreview_megaphone_ok"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/linkpreview_megaphone_content_barrier"
|
||||
tools:visibility="visible" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
</merge>
|
||||
@@ -1,100 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merge
|
||||
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="wrap_content"
|
||||
android:clipChildren="false"
|
||||
android:clipToPadding="false"
|
||||
tools:parentTag="android.widget.FrameLayout">
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="8dp"
|
||||
android:clipChildren="false"
|
||||
android:clipToPadding="false"
|
||||
app:cardBackgroundColor="@color/megaphone_background_color"
|
||||
app:cardCornerRadius="8dp"
|
||||
app:cardElevation="6dp"
|
||||
app:cardPreventCornerOverlap="false"
|
||||
app:cardUseCompatPadding="true"
|
||||
app:contentPadding="0dp">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="14dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/reactions_megaphone_banner_background"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="125dp"
|
||||
android:alpha="0.5"
|
||||
android:background="@color/megaphone_reactions_shade"
|
||||
android:paddingStart="16dp"
|
||||
android:paddingEnd="16dp"
|
||||
android:scaleType="centerCrop"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:srcCompat="@drawable/reactions_megaphone_background" />
|
||||
|
||||
<com.airbnb.lottie.LottieAnimationView
|
||||
android:id="@+id/reactions_megaphone_animation"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toBottomOf="@id/reactions_megaphone_banner_background"
|
||||
app:layout_constraintEnd_toEndOf="@id/reactions_megaphone_banner_background"
|
||||
app:layout_constraintStart_toStartOf="@id/reactions_megaphone_banner_background"
|
||||
app:layout_constraintTop_toTopOf="@id/reactions_megaphone_banner_background"
|
||||
app:lottie_autoPlay="true"
|
||||
app:lottie_rawRes="@raw/lottie_reactions_megaphone"
|
||||
app:lottie_repeatCount="3"
|
||||
tools:layout_height="50dp"
|
||||
tools:layout_width="200dp" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/reactions_megaphone_x"
|
||||
android:layout_width="46dp"
|
||||
android:layout_height="46dp"
|
||||
android:background="?selectableItemBackgroundBorderless"
|
||||
android:padding="13dp"
|
||||
android:tint="@color/megaphone_reactions_close_tint"
|
||||
app:layout_constraintEnd_toEndOf="@id/reactions_megaphone_banner_background"
|
||||
app:layout_constraintTop_toTopOf="@id/reactions_megaphone_banner_background"
|
||||
app:srcCompat="@drawable/ic_x" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/reactions_megaphone_title"
|
||||
style="@style/Signal.Text.Body"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="14dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:text="@string/Megaphones_introducing_reactions"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/reactions_megaphone_banner_background" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/reactions_megaphone_body"
|
||||
style="@style/Signal.Text.Preview"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:text="@string/Megaphones_tap_and_hold_any_message_to_quicky_share_how_you_feel"
|
||||
android:textColor="@color/megaphone_body_text_color"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/reactions_megaphone_title" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
</merge>
|
||||
@@ -1,61 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ScrollView
|
||||
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="match_parent">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="160dp"
|
||||
android:background="@color/blue_100"
|
||||
app:srcCompat="@drawable/signal_research" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/research_megaphone_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="32dp"
|
||||
android:layout_marginTop="22dp"
|
||||
android:layout_marginEnd="32dp"
|
||||
android:layout_marginBottom="24dp"
|
||||
android:text="@string/ResearchMegaphoneDialog_we_believe_in_privacy" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/research_megaphone_dialog_take_the_survey"
|
||||
style="@style/Signal.Widget.Button.Large.Primary"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="32dp"
|
||||
android:layout_marginEnd="32dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:text="@string/ResearchMegaphoneDialog_take_the_survey"
|
||||
app:icon="@drawable/ic_open_20" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/research_megaphone_dialog_no_thanks"
|
||||
style="@style/Signal.Widget.Button.Large.Secondary"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="32dp"
|
||||
android:layout_marginEnd="32dp"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:text="@string/ResearchMegaphoneDialog_no_thanks" />
|
||||
|
||||
<TextView
|
||||
style="@style/TextAppearance.Signal.Caption"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="32dp"
|
||||
android:layout_marginEnd="32dp"
|
||||
android:layout_marginBottom="32dp"
|
||||
android:gravity="center"
|
||||
android:text="@string/ResearchMegaphoneDialog_the_survey_is_hosted_by_alchemer_at_the_secure_domain" />
|
||||
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
@@ -516,10 +516,6 @@
|
||||
<!-- DocumentView -->
|
||||
<string name="DocumentView_unnamed_file">Unnamed file</string>
|
||||
|
||||
<!-- GroupCallingMegaphone -->
|
||||
<string name="GroupCallingMegaphone__introducing_group_calls">Introducing Group Calls</string>
|
||||
<string name="GroupCallingMegaphone__open_a_new_group_to_start">Open a New Group to start a free encrypted group call</string>
|
||||
|
||||
<!-- DozeReminder -->
|
||||
<string name="DozeReminder_optimize_for_missing_play_services">Optimize for missing Play Services</string>
|
||||
<string name="DozeReminder_this_device_does_not_support_play_services_tap_to_disable_system_battery">This device does not support Play Services. Tap to disable system battery optimizations that prevent Signal from retrieving messages while inactive.</string>
|
||||
@@ -664,11 +660,6 @@
|
||||
<string name="LeaveGroupDialog_before_you_leave_you_must_choose_at_least_one_new_admin_for_this_group">Before you leave, you must choose at least one new admin for this group.</string>
|
||||
<string name="LeaveGroupDialog_choose_admin">Choose admin</string>
|
||||
|
||||
<!-- LinkPreviewsMegaphone -->
|
||||
<string name="LinkPreviewsMegaphone_disable">Disable</string>
|
||||
<string name="LinkPreviewsMegaphone_preview_any_link">Preview any link</string>
|
||||
<string name="LinkPreviewsMegaphone_you_can_now_retrieve_link_previews_directly_from_any_website">You can now retrieve link previews directly from any website for messages you send.</string>
|
||||
|
||||
<!-- LinkPreviewView -->
|
||||
<string name="LinkPreviewView_no_link_preview_available">No link preview available</string>
|
||||
<string name="LinkPreviewView_this_group_link_is_not_active">This group link is not active</string>
|
||||
@@ -1007,8 +998,6 @@
|
||||
<string name="MediaOverviewActivity_sent_by_you_to_s">Sent by you to %1$s</string>
|
||||
|
||||
<!-- Megaphones -->
|
||||
<string name="Megaphones_introducing_reactions">Introducing Reactions</string>
|
||||
<string name="Megaphones_tap_and_hold_any_message_to_quicky_share_how_you_feel">Tap and hold any message to quickly share how you feel.</string>
|
||||
<string name="Megaphones_remind_me_later">Remind me later</string>
|
||||
<string name="Megaphones_verify_your_signal_pin">Verify your Signal PIN</string>
|
||||
<string name="Megaphones_well_occasionally_ask_you_to_verify_your_pin">We\'ll occasionally ask you to verify your PIN so that you remember it.</string>
|
||||
@@ -3026,18 +3015,6 @@
|
||||
<string name="KbsMegaphone__pins_keep_information_thats_stored_with_signal_encrytped">PINs keep information that’s stored with Signal encrypted.</string>
|
||||
<string name="KbsMegaphone__create_pin">Create PIN</string>
|
||||
|
||||
<!-- Research Megaphone -->
|
||||
<string name="ResearchMegaphone_tell_signal_what_you_think">Tell Signal what you think</string>
|
||||
<string name="ResearchMegaphone_to_make_signal_the_best_messaging_app_on_the_planet">To make Signal the best messaging app on the planet, we\'d love to hear your feedback.</string>
|
||||
<string name="ResearchMegaphone_learn_more">Learn more</string>
|
||||
<string name="ResearchMegaphone_dismiss">Dismiss</string>
|
||||
|
||||
<string name="ResearchMegaphoneDialog_signal_research">Signal Research</string>
|
||||
<string name="ResearchMegaphoneDialog_we_believe_in_privacy"><![CDATA[<p><b>We believe in privacy.</b></p><p>Signal doesn\'t track you or collect your data. To improve Signal for everyone, we rely on user feedback, <b>and we\'d love yours.</b></p><p>We\'re running a survey to understand how you use Signal. Our survey doesn\'t collect any data that will identify you. If you’re interested in sharing additional feedback, you\'ll have the option to provide contact information.</p><p>If you have a few minutes and feedback to offer, we\'d love to hear from you.</p>]]></string>
|
||||
<string name="ResearchMegaphoneDialog_take_the_survey">Take the survey</string>
|
||||
<string name="ResearchMegaphoneDialog_no_thanks">No thanks</string>
|
||||
<string name="ResearchMegaphoneDialog_the_survey_is_hosted_by_alchemer_at_the_secure_domain">The survey is hosted by Alchemer at the secure domain surveys.signalusers.org</string>
|
||||
|
||||
<!-- transport_selection_list_item -->
|
||||
<string name="transport_selection_list_item__transport_icon">Transport icon</string>
|
||||
<string name="ConversationListFragment_loading">Loading…</string>
|
||||
|
||||
Reference in New Issue
Block a user