diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1b6f8620bf..3f2d5d5038 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -261,12 +261,7 @@
android:launchMode="singleTask"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/java/org/thoughtcrime/securesms/BasicIntroFragment.java b/app/src/main/java/org/thoughtcrime/securesms/BasicIntroFragment.java
deleted file mode 100644
index d73a678023..0000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/BasicIntroFragment.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.thoughtcrime.securesms;
-
-import android.os.Bundle;
-import androidx.annotation.NonNull;
-import androidx.fragment.app.Fragment;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-public class BasicIntroFragment extends Fragment {
-
- private static final String ARG_DRAWABLE = "drawable";
- private static final String ARG_TEXT = "text";
- private static final String ARG_SUBTEXT = "subtext";
-
- private int drawable;
- private int text;
- private int subtext;
-
- public static BasicIntroFragment newInstance(int drawable, int text, int subtext) {
- BasicIntroFragment fragment = new BasicIntroFragment();
- Bundle args = new Bundle();
- args.putInt(ARG_DRAWABLE, drawable);
- args.putInt(ARG_TEXT, text);
- args.putInt(ARG_SUBTEXT, subtext);
- fragment.setArguments(args);
- return fragment;
- }
-
- public BasicIntroFragment() {}
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- if (getArguments() != null) {
- drawable = getArguments().getInt(ARG_DRAWABLE);
- text = getArguments().getInt(ARG_TEXT);
- subtext = getArguments().getInt(ARG_SUBTEXT);
- }
- }
-
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View v = inflater.inflate(R.layout.color_fragment, container, false);
-
- ((ImageView)v.findViewById(R.id.watermark)).setImageResource(drawable);
- ((TextView)v.findViewById(R.id.blurb)).setText(text);
- ((TextView)v.findViewById(R.id.subblurb)).setText(subtext);
-
- return v;
- }
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/ExperienceUpgradeActivity.java b/app/src/main/java/org/thoughtcrime/securesms/ExperienceUpgradeActivity.java
deleted file mode 100644
index eaa3ee5a4b..0000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/ExperienceUpgradeActivity.java
+++ /dev/null
@@ -1,322 +0,0 @@
-package org.thoughtcrime.securesms;
-
-import android.app.Notification;
-import android.app.PendingIntent;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.drawable.ColorDrawable;
-import android.os.Bundle;
-import android.view.View;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.annotation.StringRes;
-import androidx.core.app.NotificationCompat;
-import androidx.viewpager.widget.ViewPager;
-
-import com.melnykov.fab.FloatingActionButton;
-
-import org.thoughtcrime.securesms.IntroPagerAdapter.IntroPage;
-import org.thoughtcrime.securesms.experienceupgrades.StickersIntroFragment;
-import org.thoughtcrime.securesms.logging.Log;
-import org.thoughtcrime.securesms.notifications.NotificationChannels;
-import org.thoughtcrime.securesms.notifications.NotificationIds;
-import org.thoughtcrime.securesms.profiles.edit.EditProfileActivity;
-import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme;
-import org.thoughtcrime.securesms.util.DynamicTheme;
-import org.thoughtcrime.securesms.util.ServiceUtil;
-import org.thoughtcrime.securesms.util.TextSecurePreferences;
-import org.thoughtcrime.securesms.util.Util;
-import org.thoughtcrime.securesms.util.ViewUtil;
-import org.whispersystems.libsignal.util.guava.Optional;
-
-import java.util.Collections;
-import java.util.List;
-
-public class ExperienceUpgradeActivity extends BaseActionBarActivity
- implements TypingIndicatorIntroFragment.Controller,
- LinkPreviewsIntroFragment.Controller,
- StickersIntroFragment.Controller
-{
- private static final String TAG = ExperienceUpgradeActivity.class.getSimpleName();
- private static final String DISMISS_ACTION = "org.thoughtcrime.securesms.ExperienceUpgradeActivity.DISMISS_ACTION";
-
- private final DynamicTheme dynamicTheme = new DynamicNoActionBarTheme();
-
- private enum ExperienceUpgrade {
- SIGNAL_REBRANDING(157,
- new IntroPage(0xFF2090EA,
- BasicIntroFragment.newInstance(R.drawable.splash_logo,
- R.string.ExperienceUpgradeActivity_welcome_to_signal_dgaf,
- R.string.ExperienceUpgradeActivity_textsecure_is_now_called_signal)),
- R.string.ExperienceUpgradeActivity_welcome_to_signal_excited,
- R.string.ExperienceUpgradeActivity_textsecure_is_now_signal,
- R.string.ExperienceUpgradeActivity_textsecure_is_now_signal_long,
- null,
- false),
- VIDEO_CALLS(245,
- new IntroPage(0xFF2090EA,
- BasicIntroFragment.newInstance(R.drawable.video_splash,
- R.string.ExperienceUpgradeActivity_say_hello_to_video_calls,
- R.string.ExperienceUpgradeActivity_signal_now_supports_secure_video_calls)),
- R.string.ExperienceUpgradeActivity_say_hello_to_video_calls,
- R.string.ExperienceUpgradeActivity_signal_now_supports_secure_video_calling,
- R.string.ExperienceUpgradeActivity_signal_now_supports_secure_video_calling_long,
- null,
- false),
- PROFILES(286,
- new IntroPage(0xFF2090EA,
- BasicIntroFragment.newInstance(R.drawable.profile_splash,
- R.string.ExperienceUpgradeActivity_ready_for_your_closeup,
- R.string.ExperienceUpgradeActivity_now_you_can_share_a_profile_photo_and_name_with_friends_on_signal)),
- R.string.ExperienceUpgradeActivity_signal_profiles_are_here,
- R.string.ExperienceUpgradeActivity_now_you_can_share_a_profile_photo_and_name_with_friends_on_signal,
- R.string.ExperienceUpgradeActivity_now_you_can_share_a_profile_photo_and_name_with_friends_on_signal,
- EditProfileActivity.class,
- false),
- READ_RECEIPTS(299,
- new IntroPage(0xFF2090EA,
- ReadReceiptsIntroFragment.newInstance()),
- R.string.experience_upgrade_preference_fragment__read_receipts_are_here,
- R.string.experience_upgrade_preference_fragment__optionally_see_and_share_when_messages_have_been_read,
- R.string.experience_upgrade_preference_fragment__optionally_see_and_share_when_messages_have_been_read,
- null,
- false),
- TYPING_INDICATORS(432,
- new IntroPage(0xFF2090EA,
- TypingIndicatorIntroFragment.newInstance()),
- R.string.ExperienceUpgradeActivity_introducing_typing_indicators,
- R.string.ExperienceUpgradeActivity_now_you_can_optionally_see_and_share_when_messages_are_being_typed,
- R.string.ExperienceUpgradeActivity_now_you_can_optionally_see_and_share_when_messages_are_being_typed,
- null,
- true),
- LINK_PREVIEWS(449,
- new IntroPage(0xFF2090EA, LinkPreviewsIntroFragment.newInstance()),
- R.string.ExperienceUpgradeActivity_introducing_link_previews,
- R.string.ExperienceUpgradeActivity_optional_link_previews_are_now_supported,
- R.string.ExperienceUpgradeActivity_optional_link_previews_are_now_supported,
- null,
- true),
- STICKERS(580,
- new IntroPage(0xFF2090EA, StickersIntroFragment.newInstance()),
- R.string.ExperienceUpgradeActivity_introducing_stickers,
- R.string.ExperienceUpgradeActivity_why_use_words_when_you_can_use_stickers,
- R.string.ExperienceUpgradeActivity_why_use_words_when_you_can_use_stickers,
- null,
- true);
-
- private int version;
- private List pages;
- private @StringRes int notificationTitle;
- private @StringRes int notificationText;
- private @StringRes int notificationBigText;
- private @Nullable Class nextIntent;
- private boolean handlesNavigation;
-
- ExperienceUpgrade(int version,
- @NonNull List pages,
- @StringRes int notificationTitle,
- @StringRes int notificationText,
- @StringRes int notificationBigText,
- @Nullable Class nextIntent,
- boolean handlesNavigation)
- {
- this.version = version;
- this.pages = pages;
- this.notificationTitle = notificationTitle;
- this.notificationText = notificationText;
- this.notificationBigText = notificationBigText;
- this.nextIntent = nextIntent;
- this.handlesNavigation = handlesNavigation;
- }
-
- ExperienceUpgrade(int version,
- @NonNull IntroPage page,
- @StringRes int notificationTitle,
- @StringRes int notificationText,
- @StringRes int notificationBigText,
- @Nullable Class nextIntent,
- boolean handlesNavigation)
- {
- this(version, Collections.singletonList(page), notificationTitle, notificationText, notificationBigText, nextIntent, handlesNavigation);
- }
-
- public int getVersion() {
- return version;
- }
-
- public List getPages() {
- return pages;
- }
-
- public IntroPage getPage(int i) {
- return pages.get(i);
- }
-
- public int getNotificationTitle() {
- return notificationTitle;
- }
-
- public int getNotificationText() {
- return notificationText;
- }
-
- public int getNotificationBigText() {
- return notificationBigText;
- }
-
- public boolean handlesNavigation() {
- return handlesNavigation;
- }
- }
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- dynamicTheme.onCreate(this);
-
- final Optional upgrade = getExperienceUpgrade(this);
- if (!upgrade.isPresent()) {
- onContinue(upgrade);
- return;
- }
-
- setContentView(R.layout.experience_upgrade_activity);
- final ViewPager pager = ViewUtil.findById(this, R.id.pager);
- final FloatingActionButton fab = ViewUtil.findById(this, R.id.fab);
-
- pager.setAdapter(new IntroPagerAdapter(getSupportFragmentManager(), upgrade.get().getPages()));
-
- if (upgrade.get().handlesNavigation()) {
- fab.setVisibility(View.GONE);
- } else {
- fab.setVisibility(View.VISIBLE);
- fab.setOnClickListener(v -> onContinue(upgrade));
- }
-
- getWindow().setBackgroundDrawable(new ColorDrawable(upgrade.get().getPage(0).backgroundColor));
- ServiceUtil.getNotificationManager(this).cancel(NotificationIds.EXPERIENCE_UPGRADE);
- }
-
- @Override
- protected void onResume() {
- super.onResume();
- dynamicTheme.onResume(this);
- }
-
- private void onContinue(Optional seenUpgrade) {
- ServiceUtil.getNotificationManager(this).cancel(NotificationIds.EXPERIENCE_UPGRADE);
- int latestVersion = seenUpgrade.isPresent() ? seenUpgrade.get().getVersion()
- : Util.getCanonicalVersionCode();
- TextSecurePreferences.setLastExperienceVersionCode(this, latestVersion);
- if (seenUpgrade.isPresent() && seenUpgrade.get().nextIntent != null) {
- Intent intent = new Intent(this, seenUpgrade.get().nextIntent);
- // TODO [greyson] Navigation
- Intent nextIntent = new Intent(this, MainActivity.class);
- intent.putExtra("next_intent", nextIntent);
- startActivity(intent);
- } else {
- startActivity(getIntent().getParcelableExtra("next_intent"));
- }
-
- finish();
- }
-
- public static boolean isUpdate(Context context) {
- return getExperienceUpgrade(context).isPresent();
- }
-
- public static Optional getExperienceUpgrade(Context context) {
- final int currentVersionCode = Util.getCanonicalVersionCode();
- final int lastSeenVersion = TextSecurePreferences.getLastExperienceVersionCode(context);
- Log.i(TAG, "getExperienceUpgrade(" + lastSeenVersion + ")");
-
- if (lastSeenVersion >= currentVersionCode) {
- TextSecurePreferences.setLastExperienceVersionCode(context, currentVersionCode);
- return Optional.absent();
- }
-
- Optional eligibleUpgrade = Optional.absent();
- for (ExperienceUpgrade upgrade : ExperienceUpgrade.values()) {
- if (lastSeenVersion < upgrade.getVersion()) eligibleUpgrade = Optional.of(upgrade);
- }
-
- return eligibleUpgrade;
- }
-
- @Override
- public void onTypingIndicatorsFinished() {
- onContinue(Optional.of(ExperienceUpgrade.TYPING_INDICATORS));
- }
-
- @Override
- public void onLinkPreviewsFinished() {
- onContinue(Optional.of(ExperienceUpgrade.LINK_PREVIEWS));
- }
-
- @Override
- public void onStickersFinished() {
- onContinue(Optional.of(ExperienceUpgrade.STICKERS));
- }
-
- public static class AppUpgradeReceiver extends BroadcastReceiver {
- @Override
- public void onReceive(Context context, Intent intent) {
- if (Intent.ACTION_MY_PACKAGE_REPLACED.equals(intent.getAction()) &&
- intent.getData().getSchemeSpecificPart().equals(context.getPackageName()))
- {
- if (TextSecurePreferences.getLastExperienceVersionCode(context) < 339 &&
- !TextSecurePreferences.isPasswordDisabled(context))
- {
- Notification notification = new NotificationCompat.Builder(context, NotificationChannels.OTHER)
- .setSmallIcon(R.drawable.ic_notification)
- .setColor(context.getResources().getColor(R.color.core_ultramarine))
- .setContentTitle(context.getString(R.string.ExperienceUpgradeActivity_unlock_to_complete_update))
- .setContentText(context.getString(R.string.ExperienceUpgradeActivity_please_unlock_signal_to_complete_update))
- .setStyle(new NotificationCompat.BigTextStyle().bigText(context.getString(R.string.ExperienceUpgradeActivity_please_unlock_signal_to_complete_update)))
- .setAutoCancel(true)
- .setContentIntent(PendingIntent.getActivity(context, 0,
- context.getPackageManager().getLaunchIntentForPackage(context.getPackageName()),
- PendingIntent.FLAG_UPDATE_CURRENT))
- .build();
-
- ServiceUtil.getNotificationManager(context).notify(NotificationIds.EXPERIENCE_UPGRADE, notification);
- }
-
- Optional experienceUpgrade = getExperienceUpgrade(context);
-
- if (!experienceUpgrade.isPresent()) {
- return;
- }
-
- if (experienceUpgrade.get().getVersion() == TextSecurePreferences.getExperienceDismissedVersionCode(context)) {
- return;
- }
-
- Intent targetIntent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
- Intent dismissIntent = new Intent(context, AppUpgradeReceiver.class);
- dismissIntent.setAction(DISMISS_ACTION);
-
- Notification notification = new NotificationCompat.Builder(context, NotificationChannels.OTHER)
- .setSmallIcon(R.drawable.ic_notification)
- .setColor(context.getResources().getColor(R.color.core_ultramarine))
- .setContentTitle(context.getString(experienceUpgrade.get().getNotificationTitle()))
- .setContentText(context.getString(experienceUpgrade.get().getNotificationText()))
- .setStyle(new NotificationCompat.BigTextStyle().bigText(context.getString(experienceUpgrade.get().getNotificationBigText())))
- .setAutoCancel(true)
- .setContentIntent(PendingIntent.getActivity(context, 0,
- targetIntent,
- PendingIntent.FLAG_UPDATE_CURRENT))
-
- .setDeleteIntent(PendingIntent.getBroadcast(context, 0,
- dismissIntent,
- PendingIntent.FLAG_UPDATE_CURRENT))
- .build();
- ServiceUtil.getNotificationManager(context).notify(NotificationIds.EXPERIENCE_UPGRADE, notification);
- } else if (DISMISS_ACTION.equals(intent.getAction())) {
- TextSecurePreferences.setExperienceDismissedVersionCode(context, Util.getCanonicalVersionCode());
- }
- }
- }
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/IntroPagerAdapter.java b/app/src/main/java/org/thoughtcrime/securesms/IntroPagerAdapter.java
deleted file mode 100644
index a176c28bbc..0000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/IntroPagerAdapter.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package org.thoughtcrime.securesms;
-
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentManager;
-import androidx.fragment.app.FragmentStatePagerAdapter;
-
-import java.util.List;
-
-public class IntroPagerAdapter extends FragmentStatePagerAdapter {
-
- public static class IntroPage {
- final int backgroundColor;
- final Fragment fragment;
-
- public IntroPage(int backgroundColor, Fragment fragment) {
- this.backgroundColor = backgroundColor;
- this.fragment = fragment;
- }
- }
-
- private List pages;
-
- public IntroPagerAdapter(FragmentManager fm, List pages) {
- super(fm);
- this.pages = pages;
- }
-
- @Override
- public Fragment getItem(int i) {
- IntroPage page = pages.get(i);
- return page.fragment;
- }
-
- @Override
- public int getCount() {
- return pages.size();
- }
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/LinkPreviewsIntroFragment.java b/app/src/main/java/org/thoughtcrime/securesms/LinkPreviewsIntroFragment.java
deleted file mode 100644
index 3ebb914b65..0000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/LinkPreviewsIntroFragment.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package org.thoughtcrime.securesms;
-
-
-import android.content.Context;
-import android.os.Bundle;
-import androidx.annotation.NonNull;
-import androidx.fragment.app.Fragment;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
-import org.thoughtcrime.securesms.jobs.MultiDeviceConfigurationUpdateJob;
-import org.thoughtcrime.securesms.util.TextSecurePreferences;
-
-public class LinkPreviewsIntroFragment extends Fragment {
-
- private Controller controller;
-
- public static LinkPreviewsIntroFragment newInstance() {
- LinkPreviewsIntroFragment fragment = new LinkPreviewsIntroFragment();
- Bundle args = new Bundle();
- fragment.setArguments(args);
- return fragment;
- }
-
- public LinkPreviewsIntroFragment() {}
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- }
-
- @Override
- public void onAttach(Context context) {
- super.onAttach(context);
-
- if (!(getActivity() instanceof Controller)) {
- throw new IllegalStateException("Parent activity must implement the Controller interface.");
- }
-
- controller = (Controller) getActivity();
- }
-
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.experience_upgrade_link_previews_fragment, container, false);
-
- view.findViewById(R.id.experience_ok_button).setOnClickListener(v -> {
- ApplicationDependencies.getJobManager().add(new MultiDeviceConfigurationUpdateJob(TextSecurePreferences.isReadReceiptsEnabled(requireContext()),
- TextSecurePreferences.isTypingIndicatorsEnabled(requireContext()),
- TextSecurePreferences.isShowUnidentifiedDeliveryIndicatorsEnabled(requireContext()),
- TextSecurePreferences.isLinkPreviewsEnabled(requireContext())));
- controller.onLinkPreviewsFinished();
- });
-
- return view;
- }
-
- public interface Controller {
- void onLinkPreviewsFinished();
- }
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/PassphraseRequiredActionBarActivity.java b/app/src/main/java/org/thoughtcrime/securesms/PassphraseRequiredActionBarActivity.java
index 5daa8d181c..771320b970 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/PassphraseRequiredActionBarActivity.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/PassphraseRequiredActionBarActivity.java
@@ -39,10 +39,9 @@ public abstract class PassphraseRequiredActionBarActivity extends BaseActionBarA
private static final int STATE_CREATE_PASSPHRASE = 1;
private static final int STATE_PROMPT_PASSPHRASE = 2;
private static final int STATE_UI_BLOCKING_UPGRADE = 3;
- private static final int STATE_EXPERIENCE_UPGRADE = 4;
- private static final int STATE_WELCOME_PUSH_SCREEN = 5;
- private static final int STATE_CREATE_PROFILE_NAME = 6;
- private static final int STATE_CREATE_KBS_PIN = 7;
+ private static final int STATE_WELCOME_PUSH_SCREEN = 4;
+ private static final int STATE_CREATE_PROFILE_NAME = 5;
+ private static final int STATE_CREATE_KBS_PIN = 6;
private SignalServiceNetworkAccess networkAccess;
private BroadcastReceiver clearKeyReceiver;
@@ -157,7 +156,6 @@ public abstract class PassphraseRequiredActionBarActivity extends BaseActionBarA
case STATE_PROMPT_PASSPHRASE: return getPromptPassphraseIntent();
case STATE_UI_BLOCKING_UPGRADE: return getUiBlockingUpgradeIntent();
case STATE_WELCOME_PUSH_SCREEN: return getPushRegistrationIntent();
- case STATE_EXPERIENCE_UPGRADE: return getExperienceUpgradeIntent();
case STATE_CREATE_KBS_PIN: return getCreateKbsPinIntent();
case STATE_CREATE_PROFILE_NAME: return getCreateProfileNameIntent();
default: return null;
@@ -173,8 +171,6 @@ public abstract class PassphraseRequiredActionBarActivity extends BaseActionBarA
return STATE_UI_BLOCKING_UPGRADE;
} else if (!TextSecurePreferences.hasPromptedPushRegistration(this)) {
return STATE_WELCOME_PUSH_SCREEN;
- } else if (ExperienceUpgradeActivity.isUpdate(this)) {
- return STATE_EXPERIENCE_UPGRADE;
} else if (userMustSetProfileName()) {
return STATE_CREATE_PROFILE_NAME;
} else if (userMustSetKbsPin()) {
@@ -209,10 +205,6 @@ public abstract class PassphraseRequiredActionBarActivity extends BaseActionBarA
: getPushRegistrationIntent());
}
- private Intent getExperienceUpgradeIntent() {
- return getRoutedIntent(ExperienceUpgradeActivity.class, getIntent());
- }
-
private Intent getPushRegistrationIntent() {
return RegistrationNavigationActivity.newIntentForNewRegistration(this);
}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/ReadReceiptsIntroFragment.java b/app/src/main/java/org/thoughtcrime/securesms/ReadReceiptsIntroFragment.java
deleted file mode 100644
index 3c1daa232e..0000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/ReadReceiptsIntroFragment.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.thoughtcrime.securesms;
-
-
-import android.os.Bundle;
-import androidx.annotation.NonNull;
-import androidx.fragment.app.Fragment;
-import androidx.appcompat.widget.SwitchCompat;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
-import org.thoughtcrime.securesms.jobs.MultiDeviceConfigurationUpdateJob;
-import org.thoughtcrime.securesms.util.TextSecurePreferences;
-import org.thoughtcrime.securesms.util.ViewUtil;
-
-public class ReadReceiptsIntroFragment extends Fragment {
-
- public static ReadReceiptsIntroFragment newInstance() {
- ReadReceiptsIntroFragment fragment = new ReadReceiptsIntroFragment();
- Bundle args = new Bundle();
- fragment.setArguments(args);
- return fragment;
- }
-
- public ReadReceiptsIntroFragment() {}
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- }
-
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View v = inflater.inflate(R.layout.experience_upgrade_preference_fragment, container, false);
- SwitchCompat preference = ViewUtil.findById(v, R.id.preference);
-
- preference.setChecked(TextSecurePreferences.isReadReceiptsEnabled(getContext()));
- preference.setOnCheckedChangeListener((buttonView, isChecked) -> {
- TextSecurePreferences.setReadReceiptsEnabled(getContext(), isChecked);
- ApplicationDependencies.getJobManager()
- .add(new MultiDeviceConfigurationUpdateJob(isChecked,
- TextSecurePreferences.isTypingIndicatorsEnabled(requireContext()),
- TextSecurePreferences.isShowUnidentifiedDeliveryIndicatorsEnabled(getContext()),
- TextSecurePreferences.isLinkPreviewsEnabled(getContext())));
- });
-
- return v;
- }
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/TypingIndicatorIntroFragment.java b/app/src/main/java/org/thoughtcrime/securesms/TypingIndicatorIntroFragment.java
deleted file mode 100644
index f04ae2372f..0000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/TypingIndicatorIntroFragment.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package org.thoughtcrime.securesms;
-
-
-import android.content.Context;
-import android.os.Bundle;
-import androidx.annotation.NonNull;
-import androidx.fragment.app.Fragment;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import org.thoughtcrime.securesms.components.TypingIndicatorView;
-import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
-import org.thoughtcrime.securesms.jobs.MultiDeviceConfigurationUpdateJob;
-import org.thoughtcrime.securesms.util.TextSecurePreferences;
-
-public class TypingIndicatorIntroFragment extends Fragment {
-
- private Controller controller;
-
- public static TypingIndicatorIntroFragment newInstance() {
- TypingIndicatorIntroFragment fragment = new TypingIndicatorIntroFragment();
- Bundle args = new Bundle();
- fragment.setArguments(args);
- return fragment;
- }
-
- public TypingIndicatorIntroFragment() {}
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- }
-
- @Override
- public void onAttach(Context context) {
- super.onAttach(context);
-
- if (!(getActivity() instanceof Controller)) {
- throw new IllegalStateException("Parent activity must implement the Controller interface.");
- }
-
- controller = (Controller) getActivity();
- }
-
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.experience_upgrade_typing_indicators_fragment, container, false);
- View yesButton = view.findViewById(R.id.experience_yes_button);
- View noButton = view.findViewById(R.id.experience_no_button);
-
- ((TypingIndicatorView) view.findViewById(R.id.typing_indicator)).startAnimation();
-
- yesButton.setOnClickListener(v -> onButtonClicked(true));
- noButton.setOnClickListener(v -> onButtonClicked(false));
-
- return view;
- }
-
- private void onButtonClicked(boolean typingEnabled) {
- TextSecurePreferences.setTypingIndicatorsEnabled(getContext(), typingEnabled);
- ApplicationDependencies.getJobManager().add(new MultiDeviceConfigurationUpdateJob(TextSecurePreferences.isReadReceiptsEnabled(requireContext()),
- typingEnabled,
- TextSecurePreferences.isShowUnidentifiedDeliveryIndicatorsEnabled(getContext()),
- TextSecurePreferences.isLinkPreviewsEnabled(getContext())));
-
- controller.onTypingIndicatorsFinished();
- }
-
- public interface Controller {
- void onTypingIndicatorsFinished();
- }
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/experienceupgrades/StickersIntroFragment.java b/app/src/main/java/org/thoughtcrime/securesms/experienceupgrades/StickersIntroFragment.java
deleted file mode 100644
index 917867ef7b..0000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/experienceupgrades/StickersIntroFragment.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package org.thoughtcrime.securesms.experienceupgrades;
-
-
-import android.content.Context;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.annotation.NonNull;
-import androidx.fragment.app.Fragment;
-
-import com.airbnb.lottie.LottieAnimationView;
-
-import org.thoughtcrime.securesms.R;
-import org.thoughtcrime.securesms.components.TypingIndicatorView;
-import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
-import org.thoughtcrime.securesms.jobs.MultiDeviceConfigurationUpdateJob;
-import org.thoughtcrime.securesms.util.TextSecurePreferences;
-
-public class StickersIntroFragment extends Fragment {
-
- private Controller controller;
-
- public static StickersIntroFragment newInstance() {
- return new StickersIntroFragment();
- }
-
- public StickersIntroFragment() {}
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- }
-
- @Override
- public void onAttach(Context context) {
- super.onAttach(context);
-
- if (!(getActivity() instanceof Controller)) {
- throw new IllegalStateException("Parent activity must implement the Controller interface.");
- }
-
- controller = (Controller) getActivity();
- }
-
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.experience_upgrade_stickers_fragment, container, false);
- View goButton = view.findViewById(R.id.stickers_experience_go_button);
-
- ((LottieAnimationView) view.findViewById(R.id.stickers_experience_animation)).playAnimation();
-
- goButton.setOnClickListener(v -> controller.onStickersFinished());
-
- return view;
- }
-
- public interface Controller {
- void onStickersFinished();
- }
-}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/NotificationIds.java b/app/src/main/java/org/thoughtcrime/securesms/notifications/NotificationIds.java
index 40249835fd..1c91a34ab2 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/notifications/NotificationIds.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/NotificationIds.java
@@ -5,7 +5,6 @@ public final class NotificationIds {
public static final int FCM_FAILURE = 12;
public static final int PENDING_MESSAGES = 1111;
public static final int MESSAGE_SUMMARY = 1338;
- public static final int EXPERIENCE_UPGRADE = 1339;
public static final int APPLICATION_MIGRATION = 4242;
public static final int SMS_IMPORT_COMPLETE = 31337;
public static final int THREAD = 50000;
diff --git a/app/src/main/res/drawable-hdpi/profile_splash.webp b/app/src/main/res/drawable-hdpi/profile_splash.webp
deleted file mode 100644
index 92507cc4d1..0000000000
Binary files a/app/src/main/res/drawable-hdpi/profile_splash.webp and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/video_splash.webp b/app/src/main/res/drawable-hdpi/video_splash.webp
deleted file mode 100644
index 4e618aaa3c..0000000000
Binary files a/app/src/main/res/drawable-hdpi/video_splash.webp and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/profile_splash.webp b/app/src/main/res/drawable-mdpi/profile_splash.webp
deleted file mode 100644
index 829f11ef25..0000000000
Binary files a/app/src/main/res/drawable-mdpi/profile_splash.webp and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/video_splash.webp b/app/src/main/res/drawable-mdpi/video_splash.webp
deleted file mode 100644
index 49fce437d6..0000000000
Binary files a/app/src/main/res/drawable-mdpi/video_splash.webp and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/profile_splash.webp b/app/src/main/res/drawable-xhdpi/profile_splash.webp
deleted file mode 100644
index a1a2a6c786..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/profile_splash.webp and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/video_splash.webp b/app/src/main/res/drawable-xhdpi/video_splash.webp
deleted file mode 100644
index 1cec739888..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/video_splash.webp and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/profile_splash.webp b/app/src/main/res/drawable-xxhdpi/profile_splash.webp
deleted file mode 100644
index bc428eae3b..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/profile_splash.webp and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/splash_logo.webp b/app/src/main/res/drawable-xxhdpi/splash_logo.webp
deleted file mode 100644
index 44ac02be4e..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/splash_logo.webp and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/video_splash.webp b/app/src/main/res/drawable-xxhdpi/video_splash.webp
deleted file mode 100644
index b202d2c4ab..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/video_splash.webp and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/profile_splash.webp b/app/src/main/res/drawable-xxxhdpi/profile_splash.webp
deleted file mode 100644
index 4b6f226cc3..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/profile_splash.webp and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/video_splash.webp b/app/src/main/res/drawable-xxxhdpi/video_splash.webp
deleted file mode 100644
index f7bf3682ac..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/video_splash.webp and /dev/null differ
diff --git a/app/src/main/res/layout/color_fragment.xml b/app/src/main/res/layout/color_fragment.xml
deleted file mode 100644
index a069e491f8..0000000000
--- a/app/src/main/res/layout/color_fragment.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/experience_upgrade_activity.xml b/app/src/main/res/layout/experience_upgrade_activity.xml
deleted file mode 100644
index 73c64014dc..0000000000
--- a/app/src/main/res/layout/experience_upgrade_activity.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/experience_upgrade_link_previews_fragment.xml b/app/src/main/res/layout/experience_upgrade_link_previews_fragment.xml
deleted file mode 100644
index d39b1a5851..0000000000
--- a/app/src/main/res/layout/experience_upgrade_link_previews_fragment.xml
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/experience_upgrade_preference_fragment.xml b/app/src/main/res/layout/experience_upgrade_preference_fragment.xml
deleted file mode 100644
index 0716df19c2..0000000000
--- a/app/src/main/res/layout/experience_upgrade_preference_fragment.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/experience_upgrade_stickers_fragment.xml b/app/src/main/res/layout/experience_upgrade_stickers_fragment.xml
deleted file mode 100644
index 84e057a45d..0000000000
--- a/app/src/main/res/layout/experience_upgrade_stickers_fragment.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/experience_upgrade_typing_indicators_fragment.xml b/app/src/main/res/layout/experience_upgrade_typing_indicators_fragment.xml
deleted file mode 100644
index 1fc0cd19f7..0000000000
--- a/app/src/main/res/layout/experience_upgrade_typing_indicators_fragment.xml
+++ /dev/null
@@ -1,107 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a914a7f957..52430b8bda 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -401,40 +401,6 @@
Share with
Multiple attachments are only supported for images and videos
-
- Welcome to Signal.
- TextSecure and RedPhone are now one private messenger, for every situation: Signal.
- Welcome to Signal!
- TextSecure is now Signal.
- TextSecure and RedPhone are now one app: Signal. Tap to explore.
-
- Say hello to secure video calls.
- Signal now supports secure video calling. Just start a Signal call like normal, tap the video button, and wave hello.
- Signal now supports secure video calling.
- Signal now supports secure video calling. Tap to explore.
-
- Ready for your closeup?
- Now you can share a profile photo and name with friends on Signal
- Signal profiles are here
-
- Introducing typing indicators.
- Now you can optionally see and share when messages are being typed.
- Would you like to enable them now?
- Typing indicators are here
- Enable typing indicators
- Turn on typing indicators
- No thanks
-
- Introducing link previews.
- Optional link previews are now supported for some of the most popular sites on the Internet.
- You can disable or enable this feature anytime in your Signal settings (Privacy > Send link previews).
- Got it
-
- Introducing stickers
- Why use words when you can use stickers?
- Why use words when you can use stickers? Tap this icon on your keyboard:
- Let\'s go
-
Retrieving a messageā¦
@@ -1925,8 +1891,6 @@
Migrating Signal database
New locked message
Unlock to view pending messages
- Unlock to complete update
- Please unlock Signal to complete update
Backup passphrase
Backups will be saved to external storage and encrypted with the passphrase below. You must have this passphrase in order to restore a backup.
I have written down this passphrase. Without it, I will be unable to restore a backup.