From 85724d5cd63b26f33c722384d261e7da82617939 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Fri, 21 Sep 2018 22:33:21 +0200 Subject: [PATCH] simplify app started to NORMAL und NEEDS_CONFIGURE --- AndroidManifest.xml | 16 - .../securesms/ExperienceUpgradeActivity.java | 274 ------------------ .../PassphraseRequiredActionBarActivity.java | 28 +- 3 files changed, 5 insertions(+), 313 deletions(-) delete mode 100644 src/org/thoughtcrime/securesms/ExperienceUpgradeActivity.java 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); }