diff --git a/src/org/thoughtcrime/securesms/ConversationActivity.java b/src/org/thoughtcrime/securesms/ConversationActivity.java index 74f959b6b..14b9994a9 100644 --- a/src/org/thoughtcrime/securesms/ConversationActivity.java +++ b/src/org/thoughtcrime/securesms/ConversationActivity.java @@ -90,8 +90,6 @@ import org.thoughtcrime.securesms.components.emoji.EmojiStrings; import org.thoughtcrime.securesms.components.location.SignalPlace; import org.thoughtcrime.securesms.components.reminder.ExpiredBuildReminder; import org.thoughtcrime.securesms.components.reminder.ReminderView; -import org.thoughtcrime.securesms.components.reminder.ServiceOutageReminder; -import org.thoughtcrime.securesms.components.reminder.UnauthorizedReminder; import org.thoughtcrime.securesms.connect.ApplicationDcContext; import org.thoughtcrime.securesms.connect.DcHelper; import org.thoughtcrime.securesms.contacts.ContactAccessor; @@ -107,15 +105,12 @@ import org.thoughtcrime.securesms.database.DraftDatabase.Draft; import org.thoughtcrime.securesms.database.DraftDatabase.Drafts; import org.thoughtcrime.securesms.database.MessagingDatabase.MarkedMessageInfo; import org.thoughtcrime.securesms.database.MmsSmsColumns.Types; -import org.thoughtcrime.securesms.database.RecipientDatabase.RegisteredState; import org.thoughtcrime.securesms.database.ThreadDatabase; import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.database.model.MmsMessageRecord; import org.thoughtcrime.securesms.events.ReminderUpdateEvent; import org.thoughtcrime.securesms.giph.ui.GiphyActivity; import org.thoughtcrime.securesms.jobs.MultiDeviceBlockedUpdateJob; -import org.thoughtcrime.securesms.jobs.RetrieveProfileJob; -import org.thoughtcrime.securesms.jobs.ServiceOutageDetectionJob; import org.thoughtcrime.securesms.mms.AttachmentManager; import org.thoughtcrime.securesms.mms.AttachmentManager.MediaType; import org.thoughtcrime.securesms.mms.AudioSlide; @@ -148,7 +143,6 @@ import org.thoughtcrime.securesms.sms.OutgoingTextMessage; import org.thoughtcrime.securesms.util.CharacterCalculator.CharacterState; import org.thoughtcrime.securesms.util.CommunicationActions; import org.thoughtcrime.securesms.util.Dialogs; -import org.thoughtcrime.securesms.util.DirectoryHelper; import org.thoughtcrime.securesms.util.DynamicLanguage; import org.thoughtcrime.securesms.util.DynamicTheme; import org.thoughtcrime.securesms.util.ExpirationUtil; @@ -1014,13 +1008,8 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity } protected void updateReminders() { - if (UnauthorizedReminder.isEligible(this)) { - reminderView.get().showReminder(new UnauthorizedReminder(this)); - } else if (ExpiredBuildReminder.isEligible()) { + if (ExpiredBuildReminder.isEligible()) { reminderView.get().showReminder(new ExpiredBuildReminder(this)); - } else if (ServiceOutageReminder.isEligible(this)) { - ApplicationContext.getInstance(this).getJobManager().add(new ServiceOutageDetectionJob(this)); - reminderView.get().showReminder(new ServiceOutageReminder(this)); } else if (reminderView.resolved()) { reminderView.get().hide(); } diff --git a/src/org/thoughtcrime/securesms/ConversationListFragment.java b/src/org/thoughtcrime/securesms/ConversationListFragment.java index b06abf528..236cc756f 100644 --- a/src/org/thoughtcrime/securesms/ConversationListFragment.java +++ b/src/org/thoughtcrime/securesms/ConversationListFragment.java @@ -65,14 +65,11 @@ import org.thoughtcrime.securesms.components.reminder.ExpiredBuildReminder; import org.thoughtcrime.securesms.components.reminder.OutdatedBuildReminder; import org.thoughtcrime.securesms.components.reminder.Reminder; import org.thoughtcrime.securesms.components.reminder.ReminderView; -import org.thoughtcrime.securesms.components.reminder.ServiceOutageReminder; import org.thoughtcrime.securesms.components.reminder.ShareReminder; -import org.thoughtcrime.securesms.components.reminder.UnauthorizedReminder; import org.thoughtcrime.securesms.connect.ApplicationDcContext; import org.thoughtcrime.securesms.connect.DcChatlistLoader; import org.thoughtcrime.securesms.connect.DcHelper; import org.thoughtcrime.securesms.events.ReminderUpdateEvent; -import org.thoughtcrime.securesms.jobs.ServiceOutageDetectionJob; import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.ViewUtil; @@ -194,13 +191,8 @@ public class ConversationListFragment extends Fragment @Override protected Optional doInBackground(Context... params) { final Context context = params[0]; - if (UnauthorizedReminder.isEligible(context)) { - return Optional.of(new UnauthorizedReminder(context)); - } else if (ExpiredBuildReminder.isEligible()) { + if (ExpiredBuildReminder.isEligible()) { return Optional.of(new ExpiredBuildReminder(context)); - } else if (ServiceOutageReminder.isEligible(context)) { - ApplicationContext.getInstance(context).getJobManager().add(new ServiceOutageDetectionJob(context)); - return Optional.of(new ServiceOutageReminder(context)); } else if (OutdatedBuildReminder.isEligible()) { return Optional.of(new OutdatedBuildReminder(context)); } else if (ShareReminder.isEligible(context)) { diff --git a/src/org/thoughtcrime/securesms/components/reminder/ServiceOutageReminder.java b/src/org/thoughtcrime/securesms/components/reminder/ServiceOutageReminder.java deleted file mode 100644 index 7ca091d97..000000000 --- a/src/org/thoughtcrime/securesms/components/reminder/ServiceOutageReminder.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.thoughtcrime.securesms.components.reminder; - -import android.content.Context; -import android.support.annotation.NonNull; - -import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.util.TextSecurePreferences; - -public class ServiceOutageReminder extends Reminder { - - public ServiceOutageReminder(@NonNull Context context) { - super(null, - context.getString(R.string.reminder_header_service_outage_text)); - } - - public static boolean isEligible(@NonNull Context context) { - return TextSecurePreferences.getServiceOutage(context); - } - - @Override - public boolean isDismissable() { - return false; - } - - @NonNull - @Override - public Importance getImportance() { - return Importance.ERROR; - } -} diff --git a/src/org/thoughtcrime/securesms/components/reminder/UnauthorizedReminder.java b/src/org/thoughtcrime/securesms/components/reminder/UnauthorizedReminder.java deleted file mode 100644 index 0ee98b5d0..000000000 --- a/src/org/thoughtcrime/securesms/components/reminder/UnauthorizedReminder.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.thoughtcrime.securesms.components.reminder; - - -import android.content.Context; -import android.content.Intent; - -import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.RegistrationActivity; -import org.thoughtcrime.securesms.util.TextSecurePreferences; - -public class UnauthorizedReminder extends Reminder { - - public UnauthorizedReminder(final Context context) { - super(context.getString(R.string.UnauthorizedReminder_device_no_longer_registered), - context.getString(R.string.UnauthorizedReminder_this_is_likely_because_you_registered_your_phone_number_with_Signal_on_a_different_device)); - - setOkListener(v -> { - Intent intent = new Intent(context, RegistrationActivity.class); - intent.putExtra(RegistrationActivity.RE_REGISTRATION_EXTRA, true); - context.startActivity(intent); - }); - } - - @Override - public boolean isDismissable() { - return false; - } - - public static boolean isEligible(Context context) { - return TextSecurePreferences.isUnauthorizedRecieved(context); - } -} diff --git a/src/org/thoughtcrime/securesms/jobs/PushSendJob.java b/src/org/thoughtcrime/securesms/jobs/PushSendJob.java index 8cca4dd4e..42d7e989d 100644 --- a/src/org/thoughtcrime/securesms/jobs/PushSendJob.java +++ b/src/org/thoughtcrime/securesms/jobs/PushSendJob.java @@ -78,7 +78,7 @@ public abstract class PushSendJob extends SendJob { super.onRetry(); if (getRunIteration() > 1) { - ApplicationContext.getInstance(context).getJobManager().add(new ServiceOutageDetectionJob(context)); +// ApplicationContext.getInstance(context).getJobManager().add(new ServiceOutageDetectionJob(context)); } } diff --git a/src/org/thoughtcrime/securesms/jobs/ServiceOutageDetectionJob.java b/src/org/thoughtcrime/securesms/jobs/ServiceOutageDetectionJob.java deleted file mode 100644 index bf24efe93..000000000 --- a/src/org/thoughtcrime/securesms/jobs/ServiceOutageDetectionJob.java +++ /dev/null @@ -1,79 +0,0 @@ -package org.thoughtcrime.securesms.jobs; - -import android.content.Context; -import android.util.Log; - -import org.greenrobot.eventbus.EventBus; -import org.thoughtcrime.securesms.BuildConfig; -import org.thoughtcrime.securesms.events.ReminderUpdateEvent; -import org.thoughtcrime.securesms.jobmanager.JobParameters; -import org.thoughtcrime.securesms.jobmanager.requirements.NetworkRequirement; -import org.thoughtcrime.securesms.transport.RetryLaterException; -import org.thoughtcrime.securesms.util.TextSecurePreferences; - -import java.net.InetAddress; -import java.net.UnknownHostException; - -public class ServiceOutageDetectionJob extends ContextJob { - - private static final String TAG = ServiceOutageDetectionJob.class.getSimpleName(); - - private static final String IP_SUCCESS = "127.0.0.1"; - private static final String IP_FAILURE = "127.0.0.2"; - private static final long CHECK_TIME = 1000 * 60; - - public ServiceOutageDetectionJob(Context context) { - super(context, new JobParameters.Builder() - .withGroupId(ServiceOutageDetectionJob.class.getSimpleName()) - .withRequirement(new NetworkRequirement(context)) - .withRetryCount(5) - .create()); - } - - @Override - public void onAdded() { - } - - @Override - public void onRun() throws RetryLaterException { - long timeSinceLastCheck = System.currentTimeMillis() - TextSecurePreferences.getLastOutageCheckTime(context); - if (timeSinceLastCheck < CHECK_TIME) { - Log.w(TAG, "Skipping service outage check. Too soon."); - return; - } - - try { - InetAddress address = InetAddress.getByName(BuildConfig.SIGNAL_SERVICE_STATUS_URL); - Log.i(TAG, "Received outage check address: " + address.getHostAddress()); - - if (IP_SUCCESS.equals(address.getHostAddress())) { - Log.i(TAG, "Service is available."); - TextSecurePreferences.setServiceOutage(context, false); - } else if (IP_FAILURE.equals(address.getHostAddress())) { - Log.w(TAG, "Service is down."); - TextSecurePreferences.setServiceOutage(context, true); - } else { - Log.w(TAG, "Service status check returned an unrecognized IP address. Could be a weird network state. Prompting retry."); - throw new RetryLaterException(new Exception("Unrecognized service outage IP address.")); - } - - TextSecurePreferences.setLastOutageCheckTime(context, System.currentTimeMillis()); - EventBus.getDefault().post(new ReminderUpdateEvent()); - } catch (UnknownHostException e) { - throw new RetryLaterException(e); - } - } - - @Override - public boolean onShouldRetry(Exception e) { - return e instanceof RetryLaterException; - } - - @Override - public void onCanceled() { - Log.i(TAG, "Service status check could not complete. Assuming success to avoid false positives due to bad network."); - TextSecurePreferences.setServiceOutage(context, false); - TextSecurePreferences.setLastOutageCheckTime(context, System.currentTimeMillis()); - EventBus.getDefault().post(new ReminderUpdateEvent()); - } -} diff --git a/src/org/thoughtcrime/securesms/preferences/MmsPreferencesFragment.java b/src/org/thoughtcrime/securesms/preferences/MmsPreferencesFragment.java deleted file mode 100644 index 30169f30c..000000000 --- a/src/org/thoughtcrime/securesms/preferences/MmsPreferencesFragment.java +++ /dev/null @@ -1,103 +0,0 @@ -/** - * Copyright (C) 2014 Open Whisper Systems - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package org.thoughtcrime.securesms.preferences; - -import android.content.Context; -import android.os.AsyncTask; -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.util.Log; - -import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity; -import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.components.CustomDefaultPreference; -import org.thoughtcrime.securesms.database.ApnDatabase; -import org.thoughtcrime.securesms.mms.LegacyMmsConnection; -import org.thoughtcrime.securesms.util.TelephonyUtil; -import org.thoughtcrime.securesms.util.TextSecurePreferences; - -import java.io.IOException; - - -public class MmsPreferencesFragment extends CorrectedPreferenceFragment { - - private static final String TAG = MmsPreferencesFragment.class.getSimpleName(); - - @Override - public void onCreate(Bundle paramBundle) { - super.onCreate(paramBundle); - - ((PassphraseRequiredActionBarActivity) getActivity()).getSupportActionBar() - .setTitle(R.string.preferences__advanced_mms_access_point_names); - } - - @Override - public void onCreatePreferences(@Nullable Bundle savedInstanceState, String rootKey) { - addPreferencesFromResource(R.xml.preferences_manual_mms); - } - - @Override - public void onResume() { - super.onResume(); - new LoadApnDefaultsTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - } - - private class LoadApnDefaultsTask extends AsyncTask { - - @Override - protected LegacyMmsConnection.Apn doInBackground(Void... params) { - try { - Context context = getActivity(); - - if (context != null) { - return ApnDatabase.getInstance(context) - .getDefaultApnParameters(TelephonyUtil.getMccMnc(context), - TelephonyUtil.getApn(context)); - } - } catch (IOException e) { - Log.w(TAG, e); - } - - return null; - } - - @Override - protected void onPostExecute(LegacyMmsConnection.Apn apnDefaults) { - ((CustomDefaultPreference)findPreference(TextSecurePreferences.MMSC_HOST_PREF)) - .setValidator(new CustomDefaultPreference.CustomDefaultPreferenceDialogFragmentCompat.UriValidator()) - .setDefaultValue(apnDefaults.getMmsc()); - - ((CustomDefaultPreference)findPreference(TextSecurePreferences.MMSC_PROXY_HOST_PREF)) - .setValidator(new CustomDefaultPreference.CustomDefaultPreferenceDialogFragmentCompat.HostnameValidator()) - .setDefaultValue(apnDefaults.getProxy()); - - ((CustomDefaultPreference)findPreference(TextSecurePreferences.MMSC_PROXY_PORT_PREF)) - .setValidator(new CustomDefaultPreference.CustomDefaultPreferenceDialogFragmentCompat.PortValidator()) - .setDefaultValue(apnDefaults.getPort()); - - ((CustomDefaultPreference)findPreference(TextSecurePreferences.MMSC_USERNAME_PREF)) - .setDefaultValue(apnDefaults.getPort()); - - ((CustomDefaultPreference)findPreference(TextSecurePreferences.MMSC_PASSWORD_PREF)) - .setDefaultValue(apnDefaults.getPassword()); - - ((CustomDefaultPreference)findPreference(TextSecurePreferences.MMS_USER_AGENT)) - .setDefaultValue(LegacyMmsConnection.USER_AGENT); - } - } - -}