diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index d0dff86aa..ffdb87911 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -241,11 +241,6 @@
android:launchMode="singleTask"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/org/thoughtcrime/securesms/ExperienceUpgradeActivity.java b/src/org/thoughtcrime/securesms/ExperienceUpgradeActivity.java
deleted file mode 100644
index d2e1ae818..000000000
--- a/src/org/thoughtcrime/securesms/ExperienceUpgradeActivity.java
+++ /dev/null
@@ -1,274 +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.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.annotation.StringRes;
-import android.support.v4.app.NotificationCompat;
-import android.support.v4.view.ViewPager;
-import android.util.Log;
-
-import com.melnykov.fab.FloatingActionButton;
-import com.nineoldandroids.animation.ArgbEvaluator;
-
-import org.thoughtcrime.securesms.IntroPagerAdapter.IntroPage;
-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 {
- private static final String TAG = ExperienceUpgradeActivity.class.getSimpleName();
- private static final String DISMISS_ACTION = "org.thoughtcrime.securesms.ExperienceUpgradeActivity.DISMISS_ACTION";
- private static final int NOTIFICATION_ID = 1339;
-
- 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),
- 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),
- 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,
- CreateProfileActivity.class),
- 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);
-
- private int version;
- private List pages;
- private @StringRes int notificationTitle;
- private @StringRes int notificationText;
- private @StringRes int notificationBigText;
- private @Nullable Class nextIntent;
-
- ExperienceUpgrade(int version,
- @NonNull List pages,
- @StringRes int notificationTitle,
- @StringRes int notificationText,
- @StringRes int notificationBigText,
- @Nullable Class nextIntent)
- {
- this.version = version;
- this.pages = pages;
- this.notificationTitle = notificationTitle;
- this.notificationText = notificationText;
- this.notificationBigText = notificationBigText;
- this.nextIntent = nextIntent;
- }
-
- ExperienceUpgrade(int version,
- @NonNull IntroPage page,
- @StringRes int notificationTitle,
- @StringRes int notificationText,
- @StringRes int notificationBigText,
- @Nullable Class nextIntent)
- {
- this(version, Collections.singletonList(page), notificationTitle, notificationText, notificationBigText, nextIntent);
- }
-
- 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;
- }
- }
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setStatusBarColor(getResources().getColor(R.color.signal_primary_dark));
-
- 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()));
-
- fab.setOnClickListener(v -> onContinue(upgrade));
-
- getWindow().setBackgroundDrawable(new ColorDrawable(upgrade.get().getPage(0).backgroundColor));
- ServiceUtil.getNotificationManager(this).cancel(NOTIFICATION_ID);
- }
-
- private void onContinue(Optional seenUpgrade) {
- ServiceUtil.getNotificationManager(this).cancel(NOTIFICATION_ID);
- int latestVersion = seenUpgrade.isPresent() ? seenUpgrade.get().getVersion()
- : Util.getCurrentApkReleaseVersion(this);
- TextSecurePreferences.setLastExperienceVersionCode(this, latestVersion);
- if (seenUpgrade.isPresent() && seenUpgrade.get().nextIntent != null) {
- Intent intent = new Intent(this, seenUpgrade.get().nextIntent);
- Intent nextIntent = new Intent(this, ConversationListActivity.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.getCurrentApkReleaseVersion(context);
- final int lastSeenVersion = TextSecurePreferences.getLastExperienceVersionCode(context);
- Log.w(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;
- }
-
- private final class OnPageChangeListener implements ViewPager.OnPageChangeListener {
- private final ArgbEvaluator evaluator = new ArgbEvaluator();
- private final ExperienceUpgrade upgrade;
-
- public OnPageChangeListener(ExperienceUpgrade upgrade) {
- this.upgrade = upgrade;
- }
-
- @Override
- public void onPageSelected(int position) {}
-
- @Override
- public void onPageScrollStateChanged(int state) {}
-
- @Override
- public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
- final int nextPosition = (position + 1) % upgrade.getPages().size();
-
- final int color = (Integer)evaluator.evaluate(positionOffset,
- upgrade.getPage(position).backgroundColor,
- upgrade.getPage(nextPosition).backgroundColor);
- getWindow().setBackgroundDrawable(new ColorDrawable(color));
- }
- }
-
- 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)
- .setSmallIcon(R.drawable.icon_notification)
- .setColor(context.getResources().getColor(R.color.signal_primary))
- .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(NOTIFICATION_ID, 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)
- .setSmallIcon(R.drawable.icon_notification)
- .setColor(context.getResources().getColor(R.color.signal_primary))
- .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(NOTIFICATION_ID, notification);
- } else if (DISMISS_ACTION.equals(intent.getAction())) {
- TextSecurePreferences.setExperienceDismissedVersionCode(context, Util.getCurrentApkReleaseVersion(context));
- }
- }
- }
-}
diff --git a/src/org/thoughtcrime/securesms/PassphraseRequiredActionBarActivity.java b/src/org/thoughtcrime/securesms/PassphraseRequiredActionBarActivity.java
index a0aab1909..69651c10b 100644
--- a/src/org/thoughtcrime/securesms/PassphraseRequiredActionBarActivity.java
+++ b/src/org/thoughtcrime/securesms/PassphraseRequiredActionBarActivity.java
@@ -16,7 +16,6 @@ import org.thoughtcrime.securesms.jobs.PushNotificationReceiveJob;
import org.thoughtcrime.securesms.push.SignalServiceNetworkAccess;
import org.thoughtcrime.securesms.service.KeyCachingService;
import org.thoughtcrime.securesms.service.MessageRetrievalService;
-import org.thoughtcrime.securesms.util.TextSecurePreferences;
import java.util.Locale;
@@ -25,10 +24,8 @@ public abstract class PassphraseRequiredActionBarActivity extends BaseActionBarA
public static final String LOCALE_EXTRA = "locale_extra";
- private static final int STATE_NORMAL = 0;
- private static final int STATE_NEEDS_REGISTER = 1;
- private static final int STATE_UPGRADE_DATABASE = 2;
- private static final int STATE_EXPERIENCE_UPGRADE = 3;
+ private static final int STATE_NORMAL = 0;
+ private static final int STATE_NEEDS_CONFIGURE = 1;
private SignalServiceNetworkAccess networkAccess;
private BroadcastReceiver clearKeyReceiver;
@@ -132,20 +129,16 @@ public abstract class PassphraseRequiredActionBarActivity extends BaseActionBarA
}
private Intent getIntentForState(int state) {
- Log.w(TAG, "routeApplicationState(), state: " + state);
-
switch (state) {
- case STATE_UPGRADE_DATABASE: return getUpgradeDatabaseIntent();
- case STATE_NEEDS_REGISTER: return getWelcomeIntent();
- case STATE_EXPERIENCE_UPGRADE: return getExperienceUpgradeIntent();
- default: return null;
+ case STATE_NEEDS_CONFIGURE: return getWelcomeIntent();
+ default: return null;
}
}
private int getApplicationState(boolean locked) {
boolean isConfigured = DcHelper.isConfigured(getApplicationContext());
if (!isConfigured) {
- return STATE_NEEDS_REGISTER;
+ return STATE_NEEDS_CONFIGURE;
} else {
return STATE_NORMAL;
}
@@ -159,17 +152,6 @@ public abstract class PassphraseRequiredActionBarActivity extends BaseActionBarA
return getRoutedIntent(PassphrasePromptActivity.class, getIntent());
}
- private Intent getUpgradeDatabaseIntent() {
- return getRoutedIntent(DatabaseUpgradeActivity.class,
- TextSecurePreferences.hasPromptedPushRegistration(this)
- ? getConversationListIntent()
- : getLoginIntent());
- }
-
- private Intent getExperienceUpgradeIntent() {
- return getRoutedIntent(ExperienceUpgradeActivity.class, getIntent());
- }
-
private Intent getWelcomeIntent() {
return getRoutedIntent(WelcomeActivity.class, null);
}