mirror of
https://github.com/oxen-io/session-android.git
synced 2025-06-10 22:48:33 +00:00
Move JobManager to ApplicationDependencies.
This commit is contained in:
parent
14557d3dc1
commit
6b8659a393
@ -99,7 +99,6 @@ public class ApplicationContext extends MultiDexApplication implements DefaultLi
|
|||||||
private ViewOnceMessageManager viewOnceMessageManager;
|
private ViewOnceMessageManager viewOnceMessageManager;
|
||||||
private TypingStatusRepository typingStatusRepository;
|
private TypingStatusRepository typingStatusRepository;
|
||||||
private TypingStatusSender typingStatusSender;
|
private TypingStatusSender typingStatusSender;
|
||||||
private JobManager jobManager;
|
|
||||||
private IncomingMessageObserver incomingMessageObserver;
|
private IncomingMessageObserver incomingMessageObserver;
|
||||||
private PersistentLogger persistentLogger;
|
private PersistentLogger persistentLogger;
|
||||||
|
|
||||||
@ -118,7 +117,6 @@ public class ApplicationContext extends MultiDexApplication implements DefaultLi
|
|||||||
initializeCrashHandling();
|
initializeCrashHandling();
|
||||||
initializeFirstEverAppLaunch();
|
initializeFirstEverAppLaunch();
|
||||||
initializeAppDependencies();
|
initializeAppDependencies();
|
||||||
initializeJobManager();
|
|
||||||
initializeApplicationMigrations();
|
initializeApplicationMigrations();
|
||||||
initializeMessageRetrieval();
|
initializeMessageRetrieval();
|
||||||
initializeExpiringMessageManager();
|
initializeExpiringMessageManager();
|
||||||
@ -141,7 +139,7 @@ public class ApplicationContext extends MultiDexApplication implements DefaultLi
|
|||||||
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
|
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
jobManager.beginJobLoop();
|
ApplicationDependencies.getJobManager().beginJobLoop();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -160,10 +158,6 @@ public class ApplicationContext extends MultiDexApplication implements DefaultLi
|
|||||||
MessageNotifier.setVisibleThread(-1);
|
MessageNotifier.setVisibleThread(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public JobManager getJobManager() {
|
|
||||||
return jobManager;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ExpiringMessageManager getExpiringMessageManager() {
|
public ExpiringMessageManager getExpiringMessageManager() {
|
||||||
return expiringMessageManager;
|
return expiringMessageManager;
|
||||||
}
|
}
|
||||||
@ -224,19 +218,8 @@ public class ApplicationContext extends MultiDexApplication implements DefaultLi
|
|||||||
Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionLogger(originalHandler));
|
Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionLogger(originalHandler));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initializeJobManager() {
|
|
||||||
this.jobManager = new JobManager(this, new JobManager.Configuration.Builder()
|
|
||||||
.setDataSerializer(new JsonDataSerializer())
|
|
||||||
.setJobFactories(JobManagerFactories.getJobFactories(this))
|
|
||||||
.setConstraintFactories(JobManagerFactories.getConstraintFactories(this))
|
|
||||||
.setConstraintObservers(JobManagerFactories.getConstraintObservers(this))
|
|
||||||
.setJobStorage(new FastJobStorage(DatabaseFactory.getJobDatabase(this)))
|
|
||||||
.setJobMigrator(new JobMigrator(TextSecurePreferences.getJobManagerVersion(this), JobManager.CURRENT_VERSION, JobManagerFactories.getJobMigrations(this)))
|
|
||||||
.build());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initializeApplicationMigrations() {
|
private void initializeApplicationMigrations() {
|
||||||
ApplicationMigrations.onApplicationCreate(this, jobManager);
|
ApplicationMigrations.onApplicationCreate(this, ApplicationDependencies.getJobManager());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initializeMessageRetrieval() {
|
public void initializeMessageRetrieval() {
|
||||||
@ -266,14 +249,14 @@ public class ApplicationContext extends MultiDexApplication implements DefaultLi
|
|||||||
long nextSetTime = TextSecurePreferences.getFcmTokenLastSetTime(this) + TimeUnit.HOURS.toMillis(6);
|
long nextSetTime = TextSecurePreferences.getFcmTokenLastSetTime(this) + TimeUnit.HOURS.toMillis(6);
|
||||||
|
|
||||||
if (TextSecurePreferences.getFcmToken(this) == null || nextSetTime <= System.currentTimeMillis()) {
|
if (TextSecurePreferences.getFcmToken(this) == null || nextSetTime <= System.currentTimeMillis()) {
|
||||||
this.jobManager.add(new FcmRefreshJob());
|
ApplicationDependencies.getJobManager().add(new FcmRefreshJob());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initializeSignedPreKeyCheck() {
|
private void initializeSignedPreKeyCheck() {
|
||||||
if (!TextSecurePreferences.isSignedPreKeyRegistered(this)) {
|
if (!TextSecurePreferences.isSignedPreKeyRegistered(this)) {
|
||||||
jobManager.add(new CreateSignedPreKeyJob(this));
|
ApplicationDependencies.getJobManager().add(new CreateSignedPreKeyJob(this));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -360,7 +343,7 @@ public class ApplicationContext extends MultiDexApplication implements DefaultLi
|
|||||||
|
|
||||||
private void executePendingContactSync() {
|
private void executePendingContactSync() {
|
||||||
if (TextSecurePreferences.needsFullContactSync(this)) {
|
if (TextSecurePreferences.needsFullContactSync(this)) {
|
||||||
ApplicationContext.getInstance(this).getJobManager().add(new MultiDeviceContactUpdateJob(true));
|
ApplicationDependencies.getJobManager().add(new MultiDeviceContactUpdateJob(true));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -370,7 +353,7 @@ public class ApplicationContext extends MultiDexApplication implements DefaultLi
|
|||||||
if (Build.VERSION.SDK_INT >= 26) {
|
if (Build.VERSION.SDK_INT >= 26) {
|
||||||
FcmJobService.schedule(this);
|
FcmJobService.schedule(this);
|
||||||
} else {
|
} else {
|
||||||
ApplicationContext.getInstance(this).getJobManager().add(new PushNotificationReceiveJob(this));
|
ApplicationDependencies.getJobManager().add(new PushNotificationReceiveJob(this));
|
||||||
}
|
}
|
||||||
TextSecurePreferences.setNeedsMessagePull(this, false);
|
TextSecurePreferences.setNeedsMessagePull(this, false);
|
||||||
}
|
}
|
||||||
@ -378,7 +361,7 @@ public class ApplicationContext extends MultiDexApplication implements DefaultLi
|
|||||||
|
|
||||||
private void initializeUnidentifiedDeliveryAbilityRefresh() {
|
private void initializeUnidentifiedDeliveryAbilityRefresh() {
|
||||||
if (TextSecurePreferences.isMultiDevice(this) && !TextSecurePreferences.isUnidentifiedDeliveryEnabled(this)) {
|
if (TextSecurePreferences.isMultiDevice(this) && !TextSecurePreferences.isUnidentifiedDeliveryEnabled(this)) {
|
||||||
jobManager.add(new RefreshUnidentifiedDeliveryAbilityJob());
|
ApplicationDependencies.getJobManager().add(new RefreshUnidentifiedDeliveryAbilityJob());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@ import org.thoughtcrime.securesms.database.PushDatabase;
|
|||||||
import org.thoughtcrime.securesms.database.SmsDatabase;
|
import org.thoughtcrime.securesms.database.SmsDatabase;
|
||||||
import org.thoughtcrime.securesms.database.documents.IdentityKeyMismatch;
|
import org.thoughtcrime.securesms.database.documents.IdentityKeyMismatch;
|
||||||
import org.thoughtcrime.securesms.database.model.MessageRecord;
|
import org.thoughtcrime.securesms.database.model.MessageRecord;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobs.PushDecryptJob;
|
import org.thoughtcrime.securesms.jobs.PushDecryptJob;
|
||||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||||
import org.thoughtcrime.securesms.recipients.RecipientId;
|
import org.thoughtcrime.securesms.recipients.RecipientId;
|
||||||
@ -175,9 +176,7 @@ public class ConfirmIdentityDialog extends AlertDialog {
|
|||||||
|
|
||||||
long pushId = pushDatabase.insert(envelope);
|
long pushId = pushDatabase.insert(envelope);
|
||||||
|
|
||||||
ApplicationContext.getInstance(getContext())
|
ApplicationDependencies.getJobManager().add(new PushDecryptJob(getContext(), pushId, messageRecord.getId()));
|
||||||
.getJobManager()
|
|
||||||
.add(new PushDecryptJob(getContext(), pushId, messageRecord.getId()));
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new AssertionError(e);
|
throw new AssertionError(e);
|
||||||
}
|
}
|
||||||
|
@ -76,6 +76,7 @@ import org.thoughtcrime.securesms.components.reminder.UnauthorizedReminder;
|
|||||||
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
||||||
import org.thoughtcrime.securesms.database.MessagingDatabase.MarkedMessageInfo;
|
import org.thoughtcrime.securesms.database.MessagingDatabase.MarkedMessageInfo;
|
||||||
import org.thoughtcrime.securesms.database.loaders.ConversationListLoader;
|
import org.thoughtcrime.securesms.database.loaders.ConversationListLoader;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.events.ReminderUpdateEvent;
|
import org.thoughtcrime.securesms.events.ReminderUpdateEvent;
|
||||||
import org.thoughtcrime.securesms.jobs.ServiceOutageDetectionJob;
|
import org.thoughtcrime.securesms.jobs.ServiceOutageDetectionJob;
|
||||||
import org.thoughtcrime.securesms.mediasend.MediaSendActivity;
|
import org.thoughtcrime.securesms.mediasend.MediaSendActivity;
|
||||||
@ -224,7 +225,7 @@ public class ConversationListFragment extends Fragment
|
|||||||
} else if (ExpiredBuildReminder.isEligible()) {
|
} else if (ExpiredBuildReminder.isEligible()) {
|
||||||
return Optional.of(new ExpiredBuildReminder(context));
|
return Optional.of(new ExpiredBuildReminder(context));
|
||||||
} else if (ServiceOutageReminder.isEligible(context)) {
|
} else if (ServiceOutageReminder.isEligible(context)) {
|
||||||
ApplicationContext.getInstance(context).getJobManager().add(new ServiceOutageDetectionJob());
|
ApplicationDependencies.getJobManager().add(new ServiceOutageDetectionJob());
|
||||||
return Optional.of(new ServiceOutageReminder(context));
|
return Optional.of(new ServiceOutageReminder(context));
|
||||||
} else if (OutdatedBuildReminder.isEligible()) {
|
} else if (OutdatedBuildReminder.isEligible()) {
|
||||||
return Optional.of(new OutdatedBuildReminder(context));
|
return Optional.of(new OutdatedBuildReminder(context));
|
||||||
|
@ -381,7 +381,7 @@ public class CreateProfileActivity extends BaseActionBarActivity {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ApplicationContext.getInstance(context).getJobManager().add(new MultiDeviceProfileKeyUpdateJob());
|
ApplicationDependencies.getJobManager().add(new MultiDeviceProfileKeyUpdateJob());
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -171,10 +171,7 @@ public class DeviceListFragment extends ListFragment
|
|||||||
protected Void doInBackground(Void... params) {
|
protected Void doInBackground(Void... params) {
|
||||||
try {
|
try {
|
||||||
accountManager.removeDevice(deviceId);
|
accountManager.removeDevice(deviceId);
|
||||||
|
ApplicationDependencies.getJobManager().add(new RefreshUnidentifiedDeliveryAbilityJob());
|
||||||
ApplicationContext.getInstance(getContext())
|
|
||||||
.getJobManager()
|
|
||||||
.add(new RefreshUnidentifiedDeliveryAbilityJob());
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
Log.w(TAG, e);
|
Log.w(TAG, e);
|
||||||
Toast.makeText(getActivity(), R.string.DeviceListActivity_network_failed, Toast.LENGTH_LONG).show();
|
Toast.makeText(getActivity(), R.string.DeviceListActivity_network_failed, Toast.LENGTH_LONG).show();
|
||||||
|
@ -10,6 +10,7 @@ import org.thoughtcrime.securesms.database.MessagingDatabase.SyncMessageId;
|
|||||||
import org.thoughtcrime.securesms.database.MmsSmsDatabase;
|
import org.thoughtcrime.securesms.database.MmsSmsDatabase;
|
||||||
import org.thoughtcrime.securesms.database.PushDatabase;
|
import org.thoughtcrime.securesms.database.PushDatabase;
|
||||||
import org.thoughtcrime.securesms.database.RecipientDatabase;
|
import org.thoughtcrime.securesms.database.RecipientDatabase;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobmanager.JobManager;
|
import org.thoughtcrime.securesms.jobmanager.JobManager;
|
||||||
import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob;
|
import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob;
|
||||||
import org.thoughtcrime.securesms.jobs.PushDecryptJob;
|
import org.thoughtcrime.securesms.jobs.PushDecryptJob;
|
||||||
@ -70,7 +71,7 @@ public class IncomingMessageProcessor {
|
|||||||
this.recipientDatabase = DatabaseFactory.getRecipientDatabase(context);
|
this.recipientDatabase = DatabaseFactory.getRecipientDatabase(context);
|
||||||
this.pushDatabase = DatabaseFactory.getPushDatabase(context);
|
this.pushDatabase = DatabaseFactory.getPushDatabase(context);
|
||||||
this.mmsSmsDatabase = DatabaseFactory.getMmsSmsDatabase(context);
|
this.mmsSmsDatabase = DatabaseFactory.getMmsSmsDatabase(context);
|
||||||
this.jobManager = ApplicationContext.getInstance(context).getJobManager();
|
this.jobManager = ApplicationDependencies.getJobManager();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void processEnvelope(@NonNull SignalServiceEnvelope envelope) {
|
public void processEnvelope(@NonNull SignalServiceEnvelope envelope) {
|
||||||
|
@ -9,6 +9,7 @@ import android.view.LayoutInflater;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobs.MultiDeviceConfigurationUpdateJob;
|
import org.thoughtcrime.securesms.jobs.MultiDeviceConfigurationUpdateJob;
|
||||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||||
|
|
||||||
@ -46,12 +47,10 @@ public class LinkPreviewsIntroFragment extends Fragment {
|
|||||||
View view = inflater.inflate(R.layout.experience_upgrade_link_previews_fragment, container, false);
|
View view = inflater.inflate(R.layout.experience_upgrade_link_previews_fragment, container, false);
|
||||||
|
|
||||||
view.findViewById(R.id.experience_ok_button).setOnClickListener(v -> {
|
view.findViewById(R.id.experience_ok_button).setOnClickListener(v -> {
|
||||||
ApplicationContext.getInstance(requireContext())
|
ApplicationDependencies.getJobManager().add(new MultiDeviceConfigurationUpdateJob(TextSecurePreferences.isReadReceiptsEnabled(requireContext()),
|
||||||
.getJobManager()
|
TextSecurePreferences.isTypingIndicatorsEnabled(requireContext()),
|
||||||
.add(new MultiDeviceConfigurationUpdateJob(TextSecurePreferences.isReadReceiptsEnabled(requireContext()),
|
TextSecurePreferences.isShowUnidentifiedDeliveryIndicatorsEnabled(requireContext()),
|
||||||
TextSecurePreferences.isTypingIndicatorsEnabled(requireContext()),
|
TextSecurePreferences.isLinkPreviewsEnabled(requireContext())));
|
||||||
TextSecurePreferences.isShowUnidentifiedDeliveryIndicatorsEnabled(requireContext()),
|
|
||||||
TextSecurePreferences.isLinkPreviewsEnabled(requireContext())));
|
|
||||||
controller.onLinkPreviewsFinished();
|
controller.onLinkPreviewsFinished();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -9,6 +9,8 @@ import androidx.annotation.IdRes;
|
|||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.crypto.MasterSecretUtil;
|
import org.thoughtcrime.securesms.crypto.MasterSecretUtil;
|
||||||
@ -63,7 +65,7 @@ public abstract class PassphraseRequiredActionBarActivity extends BaseActionBarA
|
|||||||
super.onResume();
|
super.onResume();
|
||||||
|
|
||||||
if (networkAccess.isCensored(this)) {
|
if (networkAccess.isCensored(this)) {
|
||||||
ApplicationContext.getInstance(this).getJobManager().add(new PushNotificationReceiveJob(this));
|
ApplicationDependencies.getJobManager().add(new PushNotificationReceiveJob(this));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@ import android.view.LayoutInflater;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobs.MultiDeviceConfigurationUpdateJob;
|
import org.thoughtcrime.securesms.jobs.MultiDeviceConfigurationUpdateJob;
|
||||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||||
import org.thoughtcrime.securesms.util.ViewUtil;
|
import org.thoughtcrime.securesms.util.ViewUtil;
|
||||||
@ -37,12 +38,11 @@ public class ReadReceiptsIntroFragment extends Fragment {
|
|||||||
preference.setChecked(TextSecurePreferences.isReadReceiptsEnabled(getContext()));
|
preference.setChecked(TextSecurePreferences.isReadReceiptsEnabled(getContext()));
|
||||||
preference.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
preference.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||||
TextSecurePreferences.setReadReceiptsEnabled(getContext(), isChecked);
|
TextSecurePreferences.setReadReceiptsEnabled(getContext(), isChecked);
|
||||||
ApplicationContext.getInstance(getContext())
|
ApplicationDependencies.getJobManager()
|
||||||
.getJobManager()
|
.add(new MultiDeviceConfigurationUpdateJob(isChecked,
|
||||||
.add(new MultiDeviceConfigurationUpdateJob(isChecked,
|
TextSecurePreferences.isTypingIndicatorsEnabled(requireContext()),
|
||||||
TextSecurePreferences.isTypingIndicatorsEnabled(requireContext()),
|
TextSecurePreferences.isShowUnidentifiedDeliveryIndicatorsEnabled(getContext()),
|
||||||
TextSecurePreferences.isShowUnidentifiedDeliveryIndicatorsEnabled(getContext()),
|
TextSecurePreferences.isLinkPreviewsEnabled(getContext())));
|
||||||
TextSecurePreferences.isLinkPreviewsEnabled(getContext())));
|
|
||||||
});
|
});
|
||||||
|
|
||||||
return v;
|
return v;
|
||||||
|
@ -36,6 +36,7 @@ import org.thoughtcrime.securesms.contacts.avatars.FallbackContactPhoto;
|
|||||||
import org.thoughtcrime.securesms.contacts.avatars.ProfileContactPhoto;
|
import org.thoughtcrime.securesms.contacts.avatars.ProfileContactPhoto;
|
||||||
import org.thoughtcrime.securesms.contacts.avatars.ResourceContactPhoto;
|
import org.thoughtcrime.securesms.contacts.avatars.ResourceContactPhoto;
|
||||||
import org.thoughtcrime.securesms.database.GroupDatabase;
|
import org.thoughtcrime.securesms.database.GroupDatabase;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobs.RotateProfileKeyJob;
|
import org.thoughtcrime.securesms.jobs.RotateProfileKeyJob;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
import android.util.Pair;
|
import android.util.Pair;
|
||||||
@ -602,9 +603,7 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
|
|||||||
DatabaseFactory.getRecipientDatabase(context).setColor(recipient.getId(), selectedColor);
|
DatabaseFactory.getRecipientDatabase(context).setColor(recipient.getId(), selectedColor);
|
||||||
|
|
||||||
if (recipient.get().resolve().getRegistered() == RecipientDatabase.RegisteredState.REGISTERED) {
|
if (recipient.get().resolve().getRegistered() == RecipientDatabase.RegisteredState.REGISTERED) {
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new MultiDeviceContactUpdateJob(recipient.getId()));
|
||||||
.getJobManager()
|
|
||||||
.add(new MultiDeviceContactUpdateJob(recipient.getId()));
|
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -753,14 +752,11 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (blocked && (recipient.resolve().isSystemContact() || recipient.resolve().isProfileSharing())) {
|
if (blocked && (recipient.resolve().isSystemContact() || recipient.resolve().isProfileSharing())) {
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new RotateProfileKeyJob());
|
||||||
.getJobManager()
|
|
||||||
.add(new RotateProfileKeyJob());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new MultiDeviceBlockedUpdateJob());
|
||||||
.getJobManager()
|
|
||||||
.add(new MultiDeviceBlockedUpdateJob());
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||||
|
@ -64,6 +64,7 @@ import org.thoughtcrime.securesms.database.DatabaseFactory;
|
|||||||
import org.thoughtcrime.securesms.database.IdentityDatabase;
|
import org.thoughtcrime.securesms.database.IdentityDatabase;
|
||||||
import org.thoughtcrime.securesms.database.NoExternalStorageException;
|
import org.thoughtcrime.securesms.database.NoExternalStorageException;
|
||||||
import org.thoughtcrime.securesms.database.RecipientDatabase;
|
import org.thoughtcrime.securesms.database.RecipientDatabase;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.gcm.FcmUtil;
|
import org.thoughtcrime.securesms.gcm.FcmUtil;
|
||||||
import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob;
|
import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob;
|
||||||
import org.thoughtcrime.securesms.jobs.RotateCertificateJob;
|
import org.thoughtcrime.securesms.jobs.RotateCertificateJob;
|
||||||
@ -753,8 +754,8 @@ public class RegistrationActivity extends BaseActionBarActivity implements Verif
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void handleSuccessfulRegistration() {
|
private void handleSuccessfulRegistration() {
|
||||||
ApplicationContext.getInstance(RegistrationActivity.this).getJobManager().add(new DirectoryRefreshJob(false));
|
ApplicationDependencies.getJobManager().add(new DirectoryRefreshJob(false));
|
||||||
ApplicationContext.getInstance(RegistrationActivity.this).getJobManager().add(new RotateCertificateJob(RegistrationActivity.this));
|
ApplicationDependencies.getJobManager().add(new RotateCertificateJob(RegistrationActivity.this));
|
||||||
|
|
||||||
DirectoryRefreshListener.schedule(RegistrationActivity.this);
|
DirectoryRefreshListener.schedule(RegistrationActivity.this);
|
||||||
RotateSignedPreKeyListener.schedule(RegistrationActivity.this);
|
RotateSignedPreKeyListener.schedule(RegistrationActivity.this);
|
||||||
|
@ -10,6 +10,7 @@ import android.view.View;
|
|||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.components.TypingIndicatorView;
|
import org.thoughtcrime.securesms.components.TypingIndicatorView;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobs.MultiDeviceConfigurationUpdateJob;
|
import org.thoughtcrime.securesms.jobs.MultiDeviceConfigurationUpdateJob;
|
||||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||||
|
|
||||||
@ -58,12 +59,10 @@ public class TypingIndicatorIntroFragment extends Fragment {
|
|||||||
|
|
||||||
private void onButtonClicked(boolean typingEnabled) {
|
private void onButtonClicked(boolean typingEnabled) {
|
||||||
TextSecurePreferences.setTypingIndicatorsEnabled(getContext(), typingEnabled);
|
TextSecurePreferences.setTypingIndicatorsEnabled(getContext(), typingEnabled);
|
||||||
ApplicationContext.getInstance(requireContext())
|
ApplicationDependencies.getJobManager().add(new MultiDeviceConfigurationUpdateJob(TextSecurePreferences.isReadReceiptsEnabled(requireContext()),
|
||||||
.getJobManager()
|
typingEnabled,
|
||||||
.add(new MultiDeviceConfigurationUpdateJob(TextSecurePreferences.isReadReceiptsEnabled(requireContext()),
|
TextSecurePreferences.isShowUnidentifiedDeliveryIndicatorsEnabled(getContext()),
|
||||||
typingEnabled,
|
TextSecurePreferences.isLinkPreviewsEnabled(getContext())));
|
||||||
TextSecurePreferences.isShowUnidentifiedDeliveryIndicatorsEnabled(getContext()),
|
|
||||||
TextSecurePreferences.isLinkPreviewsEnabled(getContext())));
|
|
||||||
|
|
||||||
controller.onTypingIndicatorsFinished();
|
controller.onTypingIndicatorsFinished();
|
||||||
}
|
}
|
||||||
|
@ -42,6 +42,8 @@ import androidx.appcompat.widget.SwitchCompat;
|
|||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.text.method.LinkMovementMethod;
|
import android.text.method.LinkMovementMethod;
|
||||||
|
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
import android.view.ContextMenu;
|
import android.view.ContextMenu;
|
||||||
import android.view.ContextMenu.ContextMenuInfo;
|
import android.view.ContextMenu.ContextMenuInfo;
|
||||||
@ -583,12 +585,11 @@ public class VerifyIdentityActivity extends PassphraseRequiredActionBarActivity
|
|||||||
VerifiedStatus.DEFAULT);
|
VerifiedStatus.DEFAULT);
|
||||||
}
|
}
|
||||||
|
|
||||||
ApplicationContext.getInstance(getActivity())
|
ApplicationDependencies.getJobManager()
|
||||||
.getJobManager()
|
.add(new MultiDeviceVerifiedUpdateJob(recipient.getId(),
|
||||||
.add(new MultiDeviceVerifiedUpdateJob(recipient.getId(),
|
remoteIdentity,
|
||||||
remoteIdentity,
|
isChecked ? VerifiedStatus.VERIFIED :
|
||||||
isChecked ? VerifiedStatus.VERIFIED :
|
VerifiedStatus.DEFAULT));
|
||||||
VerifiedStatus.DEFAULT));
|
|
||||||
|
|
||||||
IdentityUtil.markIdentityVerified(getActivity(), recipient.get(), isChecked, false);
|
IdentityUtil.markIdentityVerified(getActivity(), recipient.get(), isChecked, false);
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ import android.content.Context;
|
|||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.ApplicationContext;
|
import org.thoughtcrime.securesms.ApplicationContext;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobs.TypingSendJob;
|
import org.thoughtcrime.securesms.jobs.TypingSendJob;
|
||||||
import org.thoughtcrime.securesms.util.Util;
|
import org.thoughtcrime.securesms.util.Util;
|
||||||
|
|
||||||
@ -74,7 +75,7 @@ public class TypingStatusSender {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void sendTyping(long threadId, boolean typingStarted) {
|
private void sendTyping(long threadId, boolean typingStarted) {
|
||||||
ApplicationContext.getInstance(context).getJobManager().add(new TypingSendJob(threadId, typingStarted));
|
ApplicationDependencies.getJobManager().add(new TypingSendJob(threadId, typingStarted));
|
||||||
}
|
}
|
||||||
|
|
||||||
private class StartRunnable implements Runnable {
|
private class StartRunnable implements Runnable {
|
||||||
|
@ -24,6 +24,7 @@ import org.thoughtcrime.securesms.ApplicationContext;
|
|||||||
import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity;
|
import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity;
|
||||||
import org.thoughtcrime.securesms.R;
|
import org.thoughtcrime.securesms.R;
|
||||||
import org.thoughtcrime.securesms.database.RecipientDatabase;
|
import org.thoughtcrime.securesms.database.RecipientDatabase;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob;
|
import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob;
|
||||||
import org.thoughtcrime.securesms.mms.GlideApp;
|
import org.thoughtcrime.securesms.mms.GlideApp;
|
||||||
import org.thoughtcrime.securesms.mms.GlideRequests;
|
import org.thoughtcrime.securesms.mms.GlideRequests;
|
||||||
@ -248,9 +249,7 @@ public class SharedContactDetailsActivity extends PassphraseRequiredActionBarAct
|
|||||||
super.onActivityResult(requestCode, resultCode, data);
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
|
|
||||||
if (requestCode == CODE_ADD_EDIT_CONTACT && contact != null) {
|
if (requestCode == CODE_ADD_EDIT_CONTACT && contact != null) {
|
||||||
ApplicationContext.getInstance(getApplicationContext())
|
ApplicationDependencies.getJobManager().add(new DirectoryRefreshJob(false));
|
||||||
.getJobManager()
|
|
||||||
.add(new DirectoryRefreshJob(false));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -149,6 +149,7 @@ import org.thoughtcrime.securesms.database.identity.IdentityRecordList;
|
|||||||
import org.thoughtcrime.securesms.database.model.MessageRecord;
|
import org.thoughtcrime.securesms.database.model.MessageRecord;
|
||||||
import org.thoughtcrime.securesms.database.model.MmsMessageRecord;
|
import org.thoughtcrime.securesms.database.model.MmsMessageRecord;
|
||||||
import org.thoughtcrime.securesms.database.model.StickerRecord;
|
import org.thoughtcrime.securesms.database.model.StickerRecord;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.events.ReminderUpdateEvent;
|
import org.thoughtcrime.securesms.events.ReminderUpdateEvent;
|
||||||
import org.thoughtcrime.securesms.giph.ui.GiphyActivity;
|
import org.thoughtcrime.securesms.giph.ui.GiphyActivity;
|
||||||
import org.thoughtcrime.securesms.jobs.MultiDeviceBlockedUpdateJob;
|
import org.thoughtcrime.securesms.jobs.MultiDeviceBlockedUpdateJob;
|
||||||
@ -911,11 +912,8 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|||||||
@Override
|
@Override
|
||||||
protected Void doInBackground(Void... params) {
|
protected Void doInBackground(Void... params) {
|
||||||
DatabaseFactory.getRecipientDatabase(ConversationActivity.this)
|
DatabaseFactory.getRecipientDatabase(ConversationActivity.this)
|
||||||
.setBlocked(recipient.getId(), false);
|
.setBlocked(recipient.getId(), false);
|
||||||
|
ApplicationDependencies.getJobManager().add(new MultiDeviceBlockedUpdateJob());
|
||||||
ApplicationContext.getInstance(ConversationActivity.this)
|
|
||||||
.getJobManager()
|
|
||||||
.add(new MultiDeviceBlockedUpdateJob());
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -1440,7 +1438,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|||||||
} else if (ExpiredBuildReminder.isEligible()) {
|
} else if (ExpiredBuildReminder.isEligible()) {
|
||||||
reminderView.get().showReminder(new ExpiredBuildReminder(this));
|
reminderView.get().showReminder(new ExpiredBuildReminder(this));
|
||||||
} else if (ServiceOutageReminder.isEligible(this)) {
|
} else if (ServiceOutageReminder.isEligible(this)) {
|
||||||
ApplicationContext.getInstance(this).getJobManager().add(new ServiceOutageDetectionJob());
|
ApplicationDependencies.getJobManager().add(new ServiceOutageDetectionJob());
|
||||||
reminderView.get().showReminder(new ServiceOutageReminder(this));
|
reminderView.get().showReminder(new ServiceOutageReminder(this));
|
||||||
} else if (TextSecurePreferences.isPushRegistered(this) &&
|
} else if (TextSecurePreferences.isPushRegistered(this) &&
|
||||||
TextSecurePreferences.isShowInviteReminders(this) &&
|
TextSecurePreferences.isShowInviteReminders(this) &&
|
||||||
@ -1738,9 +1736,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ApplicationContext.getInstance(this)
|
ApplicationDependencies.getJobManager().add(new RetrieveProfileJob(recipient.get()));
|
||||||
.getJobManager()
|
|
||||||
.add(new RetrieveProfileJob(recipient.get()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onRecipientChanged(@NonNull Recipient recipient) {
|
private void onRecipientChanged(@NonNull Recipient recipient) {
|
||||||
|
@ -78,6 +78,7 @@ import org.thoughtcrime.securesms.database.loaders.ConversationLoader;
|
|||||||
import org.thoughtcrime.securesms.database.model.MediaMmsMessageRecord;
|
import org.thoughtcrime.securesms.database.model.MediaMmsMessageRecord;
|
||||||
import org.thoughtcrime.securesms.database.model.MessageRecord;
|
import org.thoughtcrime.securesms.database.model.MessageRecord;
|
||||||
import org.thoughtcrime.securesms.database.model.MmsMessageRecord;
|
import org.thoughtcrime.securesms.database.model.MmsMessageRecord;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob;
|
import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob;
|
||||||
import org.thoughtcrime.securesms.jobs.MultiDeviceViewOnceOpenJob;
|
import org.thoughtcrime.securesms.jobs.MultiDeviceViewOnceOpenJob;
|
||||||
import org.thoughtcrime.securesms.linkpreview.LinkPreview;
|
import org.thoughtcrime.securesms.linkpreview.LinkPreview;
|
||||||
@ -1026,9 +1027,7 @@ public class ConversationFragment extends Fragment
|
|||||||
.getViewOnceMessageManager()
|
.getViewOnceMessageManager()
|
||||||
.scheduleIfNecessary();
|
.scheduleIfNecessary();
|
||||||
|
|
||||||
ApplicationContext.getInstance(requireContext())
|
ApplicationDependencies.getJobManager().add(new MultiDeviceViewOnceOpenJob(new MessagingDatabase.SyncMessageId(messageRecord.getIndividualRecipient().getId(), messageRecord.getDateSent())));
|
||||||
.getJobManager()
|
|
||||||
.add(new MultiDeviceViewOnceOpenJob(new MessagingDatabase.SyncMessageId(messageRecord.getIndividualRecipient().getId(), messageRecord.getDateSent())));
|
|
||||||
|
|
||||||
return tempUri;
|
return tempUri;
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
@ -1094,9 +1093,7 @@ public class ConversationFragment extends Fragment
|
|||||||
super.onActivityResult(requestCode, resultCode, data);
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
|
|
||||||
if (requestCode == CODE_ADD_EDIT_CONTACT && getContext() != null) {
|
if (requestCode == CODE_ADD_EDIT_CONTACT && getContext() != null) {
|
||||||
ApplicationContext.getInstance(getContext().getApplicationContext())
|
ApplicationDependencies.getJobManager().add(new DirectoryRefreshJob(false));
|
||||||
.getJobManager()
|
|
||||||
.add(new DirectoryRefreshJob(false));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,6 +69,7 @@ import org.thoughtcrime.securesms.components.DocumentView;
|
|||||||
import org.thoughtcrime.securesms.components.LinkPreviewView;
|
import org.thoughtcrime.securesms.components.LinkPreviewView;
|
||||||
import org.thoughtcrime.securesms.components.Outliner;
|
import org.thoughtcrime.securesms.components.Outliner;
|
||||||
import org.thoughtcrime.securesms.components.QuoteView;
|
import org.thoughtcrime.securesms.components.QuoteView;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.recipients.LiveRecipient;
|
import org.thoughtcrime.securesms.recipients.LiveRecipient;
|
||||||
import org.thoughtcrime.securesms.recipients.RecipientForeverObserver;
|
import org.thoughtcrime.securesms.recipients.RecipientForeverObserver;
|
||||||
import org.thoughtcrime.securesms.revealable.ViewOnceMessageView;
|
import org.thoughtcrime.securesms.revealable.ViewOnceMessageView;
|
||||||
@ -1218,18 +1219,16 @@ public class ConversationItem extends LinearLayout implements BindableConversati
|
|||||||
Log.i(TAG, "onClick() for attachment download");
|
Log.i(TAG, "onClick() for attachment download");
|
||||||
if (messageRecord.isMmsNotification()) {
|
if (messageRecord.isMmsNotification()) {
|
||||||
Log.i(TAG, "Scheduling MMS attachment download");
|
Log.i(TAG, "Scheduling MMS attachment download");
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new MmsDownloadJob(messageRecord.getId(),
|
||||||
.getJobManager()
|
messageRecord.getThreadId(),
|
||||||
.add(new MmsDownloadJob(messageRecord.getId(),
|
false));
|
||||||
messageRecord.getThreadId(), false));
|
|
||||||
} else {
|
} else {
|
||||||
Log.i(TAG, "Scheduling push attachment downloads for " + slides.size() + " items");
|
Log.i(TAG, "Scheduling push attachment downloads for " + slides.size() + " items");
|
||||||
|
|
||||||
for (Slide slide : slides) {
|
for (Slide slide : slides) {
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new AttachmentDownloadJob(messageRecord.getId(),
|
||||||
.getJobManager()
|
((DatabaseAttachment)slide.asAttachment()).getAttachmentId(),
|
||||||
.add(new AttachmentDownloadJob(messageRecord.getId(),
|
true));
|
||||||
((DatabaseAttachment)slide.asAttachment()).getAttachmentId(), true));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1359,7 +1358,7 @@ public class ConversationItem extends LinearLayout implements BindableConversati
|
|||||||
database.markAsForcedSms(messageRecord.getId());
|
database.markAsForcedSms(messageRecord.getId());
|
||||||
|
|
||||||
MmsSendJob.enqueue(context,
|
MmsSendJob.enqueue(context,
|
||||||
ApplicationContext.getInstance(context).getJobManager(),
|
ApplicationDependencies.getJobManager(),
|
||||||
messageRecord.getId());
|
messageRecord.getId());
|
||||||
} else {
|
} else {
|
||||||
SmsDatabase database = DatabaseFactory.getSmsDatabase(context);
|
SmsDatabase database = DatabaseFactory.getSmsDatabase(context);
|
||||||
@ -1367,10 +1366,9 @@ public class ConversationItem extends LinearLayout implements BindableConversati
|
|||||||
database.markAsOutbox(messageRecord.getId());
|
database.markAsOutbox(messageRecord.getId());
|
||||||
database.markAsForcedSms(messageRecord.getId());
|
database.markAsForcedSms(messageRecord.getId());
|
||||||
|
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new SmsSendJob(context,
|
||||||
.getJobManager()
|
messageRecord.getId(),
|
||||||
.add(new SmsSendJob(context, messageRecord.getId(),
|
messageRecord.getIndividualRecipient()));
|
||||||
messageRecord.getIndividualRecipient()));
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -50,6 +50,7 @@ import org.thoughtcrime.securesms.database.model.MediaMmsMessageRecord;
|
|||||||
import org.thoughtcrime.securesms.database.model.MessageRecord;
|
import org.thoughtcrime.securesms.database.model.MessageRecord;
|
||||||
import org.thoughtcrime.securesms.database.model.NotificationMmsMessageRecord;
|
import org.thoughtcrime.securesms.database.model.NotificationMmsMessageRecord;
|
||||||
import org.thoughtcrime.securesms.database.model.Quote;
|
import org.thoughtcrime.securesms.database.model.Quote;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobs.TrimThreadJob;
|
import org.thoughtcrime.securesms.jobs.TrimThreadJob;
|
||||||
import org.thoughtcrime.securesms.linkpreview.LinkPreview;
|
import org.thoughtcrime.securesms.linkpreview.LinkPreview;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
@ -864,7 +865,7 @@ public class MmsDatabase extends MessagingDatabase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
notifyConversationListeners(threadId);
|
notifyConversationListeners(threadId);
|
||||||
ApplicationContext.getInstance(context).getJobManager().add(new TrimThreadJob(threadId));
|
ApplicationDependencies.getJobManager().add(new TrimThreadJob(threadId));
|
||||||
|
|
||||||
return Optional.of(new InsertResult(messageId, threadId));
|
return Optional.of(new InsertResult(messageId, threadId));
|
||||||
}
|
}
|
||||||
@ -948,7 +949,7 @@ public class MmsDatabase extends MessagingDatabase {
|
|||||||
DatabaseFactory.getThreadDatabase(context).incrementUnread(threadId, 1);
|
DatabaseFactory.getThreadDatabase(context).incrementUnread(threadId, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
ApplicationContext.getInstance(context).getJobManager().add(new TrimThreadJob(threadId));
|
ApplicationDependencies.getJobManager().add(new TrimThreadJob(threadId));
|
||||||
}
|
}
|
||||||
|
|
||||||
public long insertMessageOutbox(@NonNull OutgoingMediaMessage message,
|
public long insertMessageOutbox(@NonNull OutgoingMediaMessage message,
|
||||||
@ -1022,7 +1023,7 @@ public class MmsDatabase extends MessagingDatabase {
|
|||||||
|
|
||||||
DatabaseFactory.getThreadDatabase(context).setLastSeen(threadId);
|
DatabaseFactory.getThreadDatabase(context).setLastSeen(threadId);
|
||||||
DatabaseFactory.getThreadDatabase(context).setHasSent(threadId, true);
|
DatabaseFactory.getThreadDatabase(context).setHasSent(threadId, true);
|
||||||
ApplicationContext.getInstance(context).getJobManager().add(new TrimThreadJob(threadId));
|
ApplicationDependencies.getJobManager().add(new TrimThreadJob(threadId));
|
||||||
|
|
||||||
return messageId;
|
return messageId;
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,7 @@ import org.thoughtcrime.securesms.database.documents.IdentityKeyMismatchList;
|
|||||||
import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper;
|
import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper;
|
||||||
import org.thoughtcrime.securesms.database.model.MessageRecord;
|
import org.thoughtcrime.securesms.database.model.MessageRecord;
|
||||||
import org.thoughtcrime.securesms.database.model.SmsMessageRecord;
|
import org.thoughtcrime.securesms.database.model.SmsMessageRecord;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobs.TrimThreadJob;
|
import org.thoughtcrime.securesms.jobs.TrimThreadJob;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||||
@ -478,7 +479,7 @@ public class SmsDatabase extends MessagingDatabase {
|
|||||||
DatabaseFactory.getThreadDatabase(context).update(record.getThreadId(), true);
|
DatabaseFactory.getThreadDatabase(context).update(record.getThreadId(), true);
|
||||||
notifyConversationListeners(record.getThreadId());
|
notifyConversationListeners(record.getThreadId());
|
||||||
|
|
||||||
ApplicationContext.getInstance(context).getJobManager().add(new TrimThreadJob(record.getThreadId()));
|
ApplicationDependencies.getJobManager().add(new TrimThreadJob(record.getThreadId()));
|
||||||
|
|
||||||
return new Pair<>(newMessageId, record.getThreadId());
|
return new Pair<>(newMessageId, record.getThreadId());
|
||||||
} catch (NoSuchMessageException e) {
|
} catch (NoSuchMessageException e) {
|
||||||
@ -516,7 +517,7 @@ public class SmsDatabase extends MessagingDatabase {
|
|||||||
|
|
||||||
DatabaseFactory.getThreadDatabase(context).update(threadId, true);
|
DatabaseFactory.getThreadDatabase(context).update(threadId, true);
|
||||||
notifyConversationListeners(threadId);
|
notifyConversationListeners(threadId);
|
||||||
ApplicationContext.getInstance(context).getJobManager().add(new TrimThreadJob(threadId));
|
ApplicationDependencies.getJobManager().add(new TrimThreadJob(threadId));
|
||||||
|
|
||||||
if (unread) {
|
if (unread) {
|
||||||
DatabaseFactory.getThreadDatabase(context).incrementUnread(threadId, 1);
|
DatabaseFactory.getThreadDatabase(context).incrementUnread(threadId, 1);
|
||||||
@ -610,7 +611,7 @@ public class SmsDatabase extends MessagingDatabase {
|
|||||||
notifyConversationListeners(threadId);
|
notifyConversationListeners(threadId);
|
||||||
|
|
||||||
if (!message.isIdentityUpdate() && !message.isIdentityVerified() && !message.isIdentityDefault()) {
|
if (!message.isIdentityUpdate() && !message.isIdentityVerified() && !message.isIdentityDefault()) {
|
||||||
ApplicationContext.getInstance(context).getJobManager().add(new TrimThreadJob(threadId));
|
ApplicationDependencies.getJobManager().add(new TrimThreadJob(threadId));
|
||||||
}
|
}
|
||||||
|
|
||||||
return Optional.of(new InsertResult(messageId, threadId));
|
return Optional.of(new InsertResult(messageId, threadId));
|
||||||
@ -668,7 +669,7 @@ public class SmsDatabase extends MessagingDatabase {
|
|||||||
notifyConversationListeners(threadId);
|
notifyConversationListeners(threadId);
|
||||||
|
|
||||||
if (!message.isIdentityVerified() && !message.isIdentityDefault()) {
|
if (!message.isIdentityVerified() && !message.isIdentityDefault()) {
|
||||||
ApplicationContext.getInstance(context).getJobManager().add(new TrimThreadJob(threadId));
|
ApplicationDependencies.getJobManager().add(new TrimThreadJob(threadId));
|
||||||
}
|
}
|
||||||
|
|
||||||
return messageId;
|
return messageId;
|
||||||
|
@ -38,6 +38,7 @@ import org.thoughtcrime.securesms.database.SignedPreKeyDatabase;
|
|||||||
import org.thoughtcrime.securesms.database.SmsDatabase;
|
import org.thoughtcrime.securesms.database.SmsDatabase;
|
||||||
import org.thoughtcrime.securesms.database.StickerDatabase;
|
import org.thoughtcrime.securesms.database.StickerDatabase;
|
||||||
import org.thoughtcrime.securesms.database.ThreadDatabase;
|
import org.thoughtcrime.securesms.database.ThreadDatabase;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobs.RefreshPreKeysJob;
|
import org.thoughtcrime.securesms.jobs.RefreshPreKeysJob;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
import org.thoughtcrime.securesms.notifications.NotificationChannels;
|
import org.thoughtcrime.securesms.notifications.NotificationChannels;
|
||||||
@ -150,7 +151,7 @@ public class SQLCipherOpenHelper extends SQLiteOpenHelper {
|
|||||||
else TextSecurePreferences.setNeedsSqlCipherMigration(context, true);
|
else TextSecurePreferences.setNeedsSqlCipherMigration(context, true);
|
||||||
|
|
||||||
if (!PreKeyMigrationHelper.migratePreKeys(context, db)) {
|
if (!PreKeyMigrationHelper.migratePreKeys(context, db)) {
|
||||||
ApplicationContext.getInstance(context).getJobManager().add(new RefreshPreKeysJob());
|
ApplicationDependencies.getJobManager().add(new RefreshPreKeysJob());
|
||||||
}
|
}
|
||||||
|
|
||||||
SessionStoreMigrationHelper.migrateSessions(context, db);
|
SessionStoreMigrationHelper.migrateSessions(context, db);
|
||||||
@ -176,7 +177,7 @@ public class SQLCipherOpenHelper extends SQLiteOpenHelper {
|
|||||||
db.execSQL("CREATE TABLE one_time_prekeys (_id INTEGER PRIMARY KEY, key_id INTEGER UNIQUE, public_key TEXT NOT NULL, private_key TEXT NOT NULL)");
|
db.execSQL("CREATE TABLE one_time_prekeys (_id INTEGER PRIMARY KEY, key_id INTEGER UNIQUE, public_key TEXT NOT NULL, private_key TEXT NOT NULL)");
|
||||||
|
|
||||||
if (!PreKeyMigrationHelper.migratePreKeys(context, db)) {
|
if (!PreKeyMigrationHelper.migratePreKeys(context, db)) {
|
||||||
ApplicationContext.getInstance(context).getJobManager().add(new RefreshPreKeysJob());
|
ApplicationDependencies.getJobManager().add(new RefreshPreKeysJob());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ import androidx.annotation.NonNull;
|
|||||||
|
|
||||||
import org.thoughtcrime.securesms.IncomingMessageProcessor;
|
import org.thoughtcrime.securesms.IncomingMessageProcessor;
|
||||||
import org.thoughtcrime.securesms.gcm.MessageRetriever;
|
import org.thoughtcrime.securesms.gcm.MessageRetriever;
|
||||||
|
import org.thoughtcrime.securesms.jobmanager.JobManager;
|
||||||
import org.thoughtcrime.securesms.push.SignalServiceNetworkAccess;
|
import org.thoughtcrime.securesms.push.SignalServiceNetworkAccess;
|
||||||
import org.thoughtcrime.securesms.recipients.LiveRecipientCache;
|
import org.thoughtcrime.securesms.recipients.LiveRecipientCache;
|
||||||
import org.thoughtcrime.securesms.service.IncomingMessageObserver;
|
import org.thoughtcrime.securesms.service.IncomingMessageObserver;
|
||||||
@ -33,6 +34,7 @@ public class ApplicationDependencies {
|
|||||||
private static IncomingMessageProcessor incomingMessageProcessor;
|
private static IncomingMessageProcessor incomingMessageProcessor;
|
||||||
private static MessageRetriever messageRetriever;
|
private static MessageRetriever messageRetriever;
|
||||||
private static LiveRecipientCache recipientCache;
|
private static LiveRecipientCache recipientCache;
|
||||||
|
private static JobManager jobManager;
|
||||||
|
|
||||||
public static synchronized void init(@NonNull Application application, @NonNull Provider provider) {
|
public static synchronized void init(@NonNull Application application, @NonNull Provider provider) {
|
||||||
if (ApplicationDependencies.application != null || ApplicationDependencies.provider != null) {
|
if (ApplicationDependencies.application != null || ApplicationDependencies.provider != null) {
|
||||||
@ -116,6 +118,16 @@ public class ApplicationDependencies {
|
|||||||
return recipientCache;
|
return recipientCache;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static synchronized @NonNull JobManager getJobManager() {
|
||||||
|
assertInitialization();
|
||||||
|
|
||||||
|
if (jobManager == null) {
|
||||||
|
jobManager = provider.provideJobManager();
|
||||||
|
}
|
||||||
|
|
||||||
|
return jobManager;
|
||||||
|
}
|
||||||
|
|
||||||
private static void assertInitialization() {
|
private static void assertInitialization() {
|
||||||
if (application == null || provider == null) {
|
if (application == null || provider == null) {
|
||||||
throw new UninitializedException();
|
throw new UninitializedException();
|
||||||
@ -129,8 +141,8 @@ public class ApplicationDependencies {
|
|||||||
@NonNull SignalServiceNetworkAccess provideSignalServiceNetworkAccess();
|
@NonNull SignalServiceNetworkAccess provideSignalServiceNetworkAccess();
|
||||||
@NonNull IncomingMessageProcessor provideIncomingMessageProcessor();
|
@NonNull IncomingMessageProcessor provideIncomingMessageProcessor();
|
||||||
@NonNull MessageRetriever provideMessageRetriever();
|
@NonNull MessageRetriever provideMessageRetriever();
|
||||||
@NonNull
|
@NonNull LiveRecipientCache provideRecipientCache();
|
||||||
LiveRecipientCache provideRecipientCache();
|
@NonNull JobManager provideJobManager();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class UninitializedException extends IllegalStateException {
|
private static class UninitializedException extends IllegalStateException {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package org.thoughtcrime.securesms.dependencies;
|
package org.thoughtcrime.securesms.dependencies;
|
||||||
|
|
||||||
|
import android.app.Application;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
@ -8,8 +9,15 @@ import org.greenrobot.eventbus.EventBus;
|
|||||||
import org.thoughtcrime.securesms.BuildConfig;
|
import org.thoughtcrime.securesms.BuildConfig;
|
||||||
import org.thoughtcrime.securesms.IncomingMessageProcessor;
|
import org.thoughtcrime.securesms.IncomingMessageProcessor;
|
||||||
import org.thoughtcrime.securesms.crypto.storage.SignalProtocolStoreImpl;
|
import org.thoughtcrime.securesms.crypto.storage.SignalProtocolStoreImpl;
|
||||||
|
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
||||||
import org.thoughtcrime.securesms.events.ReminderUpdateEvent;
|
import org.thoughtcrime.securesms.events.ReminderUpdateEvent;
|
||||||
import org.thoughtcrime.securesms.gcm.MessageRetriever;
|
import org.thoughtcrime.securesms.gcm.MessageRetriever;
|
||||||
|
import org.thoughtcrime.securesms.jobmanager.Job;
|
||||||
|
import org.thoughtcrime.securesms.jobmanager.JobManager;
|
||||||
|
import org.thoughtcrime.securesms.jobmanager.JobMigrator;
|
||||||
|
import org.thoughtcrime.securesms.jobmanager.impl.JsonDataSerializer;
|
||||||
|
import org.thoughtcrime.securesms.jobs.FastJobStorage;
|
||||||
|
import org.thoughtcrime.securesms.jobs.JobManagerFactories;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
import org.thoughtcrime.securesms.push.SecurityEventListener;
|
import org.thoughtcrime.securesms.push.SecurityEventListener;
|
||||||
import org.thoughtcrime.securesms.push.SignalServiceNetworkAccess;
|
import org.thoughtcrime.securesms.push.SignalServiceNetworkAccess;
|
||||||
@ -33,11 +41,11 @@ public class ApplicationDependencyProvider implements ApplicationDependencies.Pr
|
|||||||
|
|
||||||
private static final String TAG = Log.tag(ApplicationDependencyProvider.class);
|
private static final String TAG = Log.tag(ApplicationDependencyProvider.class);
|
||||||
|
|
||||||
private final Context context;
|
private final Application context;
|
||||||
private final SignalServiceNetworkAccess networkAccess;
|
private final SignalServiceNetworkAccess networkAccess;
|
||||||
|
|
||||||
public ApplicationDependencyProvider(@NonNull Context context, @NonNull SignalServiceNetworkAccess networkAccess) {
|
public ApplicationDependencyProvider(@NonNull Application context, @NonNull SignalServiceNetworkAccess networkAccess) {
|
||||||
this.context = context.getApplicationContext();
|
this.context = context;
|
||||||
this.networkAccess = networkAccess;
|
this.networkAccess = networkAccess;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -87,11 +95,22 @@ public class ApplicationDependencyProvider implements ApplicationDependencies.Pr
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NonNull
|
public @NonNull LiveRecipientCache provideRecipientCache() {
|
||||||
LiveRecipientCache provideRecipientCache() {
|
|
||||||
return new LiveRecipientCache(context);
|
return new LiveRecipientCache(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NonNull JobManager provideJobManager() {
|
||||||
|
return new JobManager(context, new JobManager.Configuration.Builder()
|
||||||
|
.setDataSerializer(new JsonDataSerializer())
|
||||||
|
.setJobFactories(JobManagerFactories.getJobFactories(context))
|
||||||
|
.setConstraintFactories(JobManagerFactories.getConstraintFactories(context))
|
||||||
|
.setConstraintObservers(JobManagerFactories.getConstraintObservers(context))
|
||||||
|
.setJobStorage(new FastJobStorage(DatabaseFactory.getJobDatabase(context)))
|
||||||
|
.setJobMigrator(new JobMigrator(TextSecurePreferences.getJobManagerVersion(context), JobManager.CURRENT_VERSION, JobManagerFactories.getJobMigrations(context)))
|
||||||
|
.build());
|
||||||
|
}
|
||||||
|
|
||||||
private static class DynamicCredentialsProvider implements CredentialsProvider {
|
private static class DynamicCredentialsProvider implements CredentialsProvider {
|
||||||
|
|
||||||
private final Context context;
|
private final Context context;
|
||||||
|
@ -42,9 +42,7 @@ public class FcmService extends FirebaseMessagingService {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ApplicationContext.getInstance(getApplicationContext())
|
ApplicationDependencies.getJobManager().add(new FcmRefreshJob());
|
||||||
.getJobManager()
|
|
||||||
.add(new FcmRefreshJob());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void handleReceivedNotification(Context context) {
|
private static void handleReceivedNotification(Context context) {
|
||||||
@ -59,9 +57,7 @@ public class FcmService extends FirebaseMessagingService {
|
|||||||
FcmJobService.schedule(context);
|
FcmJobService.schedule(context);
|
||||||
} else {
|
} else {
|
||||||
Log.w(TAG, "Failed to retrieve messages. Scheduling on JobManager (API " + Build.VERSION.SDK_INT + ").");
|
Log.w(TAG, "Failed to retrieve messages. Scheduling on JobManager (API " + Build.VERSION.SDK_INT + ").");
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new PushNotificationReceiveJob(context));
|
||||||
.getJobManager()
|
|
||||||
.add(new PushNotificationReceiveJob(context));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@ import org.thoughtcrime.securesms.database.GroupDatabase;
|
|||||||
import org.thoughtcrime.securesms.database.MessagingDatabase.InsertResult;
|
import org.thoughtcrime.securesms.database.MessagingDatabase.InsertResult;
|
||||||
import org.thoughtcrime.securesms.database.MmsDatabase;
|
import org.thoughtcrime.securesms.database.MmsDatabase;
|
||||||
import org.thoughtcrime.securesms.database.SmsDatabase;
|
import org.thoughtcrime.securesms.database.SmsDatabase;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobs.AvatarDownloadJob;
|
import org.thoughtcrime.securesms.jobs.AvatarDownloadJob;
|
||||||
import org.thoughtcrime.securesms.jobs.PushGroupUpdateJob;
|
import org.thoughtcrime.securesms.jobs.PushGroupUpdateJob;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
@ -166,9 +167,7 @@ public class GroupMessageProcessor {
|
|||||||
Recipient sender = Recipient.external(context, content.getSender());
|
Recipient sender = Recipient.external(context, content.getSender());
|
||||||
|
|
||||||
if (record.getMembers().contains(sender.getId())) {
|
if (record.getMembers().contains(sender.getId())) {
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new PushGroupUpdateJob(sender.getId(), group.getGroupId()));
|
||||||
.getJobManager()
|
|
||||||
.add(new PushGroupUpdateJob(sender.getId(), group.getGroupId()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
@ -205,8 +204,8 @@ public class GroupMessageProcessor {
|
|||||||
boolean outgoing)
|
boolean outgoing)
|
||||||
{
|
{
|
||||||
if (group.getAvatar().isPresent()) {
|
if (group.getAvatar().isPresent()) {
|
||||||
ApplicationContext.getInstance(context).getJobManager()
|
ApplicationDependencies.getJobManager()
|
||||||
.add(new AvatarDownloadJob(group.getGroupId()));
|
.add(new AvatarDownloadJob(group.getGroupId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -12,6 +12,7 @@ import com.annimon.stream.Stream;
|
|||||||
|
|
||||||
import org.thoughtcrime.securesms.ApplicationContext;
|
import org.thoughtcrime.securesms.ApplicationContext;
|
||||||
import org.thoughtcrime.securesms.BuildConfig;
|
import org.thoughtcrime.securesms.BuildConfig;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -61,7 +62,7 @@ public class AlarmManagerScheduler implements Scheduler {
|
|||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
Log.i(TAG, "Received an alarm to retry a job.");
|
Log.i(TAG, "Received an alarm to retry a job.");
|
||||||
ApplicationContext.getInstance(context).getJobManager().wakeUp();
|
ApplicationDependencies.getJobManager().wakeUp();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@ import androidx.annotation.NonNull;
|
|||||||
import androidx.annotation.RequiresApi;
|
import androidx.annotation.RequiresApi;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.ApplicationContext;
|
import org.thoughtcrime.securesms.ApplicationContext;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -65,7 +66,7 @@ public class JobSchedulerScheduler implements Scheduler {
|
|||||||
public boolean onStartJob(JobParameters params) {
|
public boolean onStartJob(JobParameters params) {
|
||||||
Log.d(TAG, "onStartJob()");
|
Log.d(TAG, "onStartJob()");
|
||||||
|
|
||||||
JobManager jobManager = ApplicationContext.getInstance(getApplicationContext()).getJobManager();
|
JobManager jobManager = ApplicationDependencies.getJobManager();
|
||||||
|
|
||||||
jobManager.addOnEmptyQueueListener(new JobManager.EmptyQueueListener() {
|
jobManager.addOnEmptyQueueListener(new JobManager.EmptyQueueListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package org.thoughtcrime.securesms.jobs;
|
package org.thoughtcrime.securesms.jobs;
|
||||||
|
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobmanager.Data;
|
import org.thoughtcrime.securesms.jobmanager.Data;
|
||||||
import org.thoughtcrime.securesms.jobmanager.Job;
|
import org.thoughtcrime.securesms.jobmanager.Job;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
@ -79,11 +80,9 @@ public class MmsReceiveJob extends BaseJob {
|
|||||||
|
|
||||||
Log.i(TAG, "Inserted received MMS notification...");
|
Log.i(TAG, "Inserted received MMS notification...");
|
||||||
|
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new MmsDownloadJob(messageAndThreadId.first,
|
||||||
.getJobManager()
|
messageAndThreadId.second,
|
||||||
.add(new MmsDownloadJob(messageAndThreadId.first,
|
true));
|
||||||
messageAndThreadId.second,
|
|
||||||
true));
|
|
||||||
} else if (isNotification(pdu)) {
|
} else if (isNotification(pdu)) {
|
||||||
Log.w(TAG, "*** Received blocked MMS, ignoring...");
|
Log.w(TAG, "*** Received blocked MMS, ignoring...");
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,7 @@ import android.util.Pair;
|
|||||||
|
|
||||||
import com.annimon.stream.Collectors;
|
import com.annimon.stream.Collectors;
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
import com.google.android.mms.APN;
|
||||||
|
|
||||||
import org.signal.libsignal.metadata.InvalidMetadataMessageException;
|
import org.signal.libsignal.metadata.InvalidMetadataMessageException;
|
||||||
import org.signal.libsignal.metadata.InvalidMetadataVersionException;
|
import org.signal.libsignal.metadata.InvalidMetadataVersionException;
|
||||||
@ -60,6 +61,7 @@ import org.thoughtcrime.securesms.database.ThreadDatabase;
|
|||||||
import org.thoughtcrime.securesms.database.model.MessageRecord;
|
import org.thoughtcrime.securesms.database.model.MessageRecord;
|
||||||
import org.thoughtcrime.securesms.database.model.MmsMessageRecord;
|
import org.thoughtcrime.securesms.database.model.MmsMessageRecord;
|
||||||
import org.thoughtcrime.securesms.database.model.StickerRecord;
|
import org.thoughtcrime.securesms.database.model.StickerRecord;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.groups.GroupMessageProcessor;
|
import org.thoughtcrime.securesms.groups.GroupMessageProcessor;
|
||||||
import org.thoughtcrime.securesms.jobmanager.Data;
|
import org.thoughtcrime.securesms.jobmanager.Data;
|
||||||
import org.thoughtcrime.securesms.jobmanager.Job;
|
import org.thoughtcrime.securesms.jobmanager.Job;
|
||||||
@ -290,7 +292,7 @@ public class PushDecryptJob extends BaseJob {
|
|||||||
resetRecipientToPush(Recipient.external(context, content.getSender()));
|
resetRecipientToPush(Recipient.external(context, content.getSender()));
|
||||||
|
|
||||||
if (envelope.isPreKeySignalMessage()) {
|
if (envelope.isPreKeySignalMessage()) {
|
||||||
ApplicationContext.getInstance(context).getJobManager().add(new RefreshPreKeysJob());
|
ApplicationDependencies.getJobManager().add(new RefreshPreKeysJob());
|
||||||
}
|
}
|
||||||
} catch (ProtocolInvalidVersionException e) {
|
} catch (ProtocolInvalidVersionException e) {
|
||||||
Log.w(TAG, e);
|
Log.w(TAG, e);
|
||||||
@ -479,9 +481,7 @@ public class PushDecryptJob extends BaseJob {
|
|||||||
private void handleUnknownGroupMessage(@NonNull SignalServiceContent content,
|
private void handleUnknownGroupMessage(@NonNull SignalServiceContent content,
|
||||||
@NonNull SignalServiceGroup group)
|
@NonNull SignalServiceGroup group)
|
||||||
{
|
{
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new RequestGroupInfoJob(Recipient.external(context, content.getSender()).getId(), group.getGroupId()));
|
||||||
.getJobManager()
|
|
||||||
.add(new RequestGroupInfoJob(Recipient.external(context, content.getSender()).getId(), group.getGroupId()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleExpirationUpdate(@NonNull SignalServiceContent content,
|
private void handleExpirationUpdate(@NonNull SignalServiceContent content,
|
||||||
@ -522,7 +522,7 @@ public class PushDecryptJob extends BaseJob {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void handleSynchronizeStickerPackOperation(@NonNull List<StickerPackOperationMessage> stickerPackOperations) {
|
private void handleSynchronizeStickerPackOperation(@NonNull List<StickerPackOperationMessage> stickerPackOperations) {
|
||||||
JobManager jobManager = ApplicationContext.getInstance(context).getJobManager();
|
JobManager jobManager = ApplicationDependencies.getJobManager();
|
||||||
|
|
||||||
for (StickerPackOperationMessage operation : stickerPackOperations) {
|
for (StickerPackOperationMessage operation : stickerPackOperations) {
|
||||||
if (operation.getPackId().isPresent() && operation.getPackKey().isPresent() && operation.getType().isPresent()) {
|
if (operation.getPackId().isPresent() && operation.getPackKey().isPresent() && operation.getType().isPresent()) {
|
||||||
@ -597,38 +597,24 @@ public class PushDecryptJob extends BaseJob {
|
|||||||
private void handleSynchronizeRequestMessage(@NonNull RequestMessage message)
|
private void handleSynchronizeRequestMessage(@NonNull RequestMessage message)
|
||||||
{
|
{
|
||||||
if (message.isContactsRequest()) {
|
if (message.isContactsRequest()) {
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new MultiDeviceContactUpdateJob(true));
|
||||||
.getJobManager()
|
ApplicationDependencies.getJobManager().add(new RefreshUnidentifiedDeliveryAbilityJob());
|
||||||
.add(new MultiDeviceContactUpdateJob(true));
|
|
||||||
|
|
||||||
ApplicationContext.getInstance(context)
|
|
||||||
.getJobManager()
|
|
||||||
.add(new RefreshUnidentifiedDeliveryAbilityJob());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (message.isGroupsRequest()) {
|
if (message.isGroupsRequest()) {
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new MultiDeviceGroupUpdateJob());
|
||||||
.getJobManager()
|
|
||||||
.add(new MultiDeviceGroupUpdateJob());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (message.isBlockedListRequest()) {
|
if (message.isBlockedListRequest()) {
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new MultiDeviceBlockedUpdateJob());
|
||||||
.getJobManager()
|
|
||||||
.add(new MultiDeviceBlockedUpdateJob());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (message.isConfigurationRequest()) {
|
if (message.isConfigurationRequest()) {
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new MultiDeviceConfigurationUpdateJob(TextSecurePreferences.isReadReceiptsEnabled(context),
|
||||||
.getJobManager()
|
TextSecurePreferences.isTypingIndicatorsEnabled(context),
|
||||||
.add(new MultiDeviceConfigurationUpdateJob(TextSecurePreferences.isReadReceiptsEnabled(context),
|
TextSecurePreferences.isShowUnidentifiedDeliveryIndicatorsEnabled(context),
|
||||||
TextSecurePreferences.isTypingIndicatorsEnabled(context),
|
TextSecurePreferences.isLinkPreviewsEnabled(context)));
|
||||||
TextSecurePreferences.isShowUnidentifiedDeliveryIndicatorsEnabled(context),
|
ApplicationDependencies.getJobManager().add(new MultiDeviceStickerPackSyncJob());
|
||||||
TextSecurePreferences.isLinkPreviewsEnabled(context)));
|
|
||||||
|
|
||||||
ApplicationContext.getInstance(context)
|
|
||||||
.getJobManager()
|
|
||||||
.add(new MultiDeviceStickerPackSyncJob());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -710,9 +696,7 @@ public class PushDecryptJob extends BaseJob {
|
|||||||
forceStickerDownloadIfNecessary(stickerAttachments);
|
forceStickerDownloadIfNecessary(stickerAttachments);
|
||||||
|
|
||||||
for (DatabaseAttachment attachment : attachments) {
|
for (DatabaseAttachment attachment : attachments) {
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new AttachmentDownloadJob(insertResult.get().getMessageId(), attachment.getAttachmentId(), false));
|
||||||
.getJobManager()
|
|
||||||
.add(new AttachmentDownloadJob(insertResult.get().getMessageId(), attachment.getAttachmentId(), false));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (smsMessageId.isPresent()) {
|
if (smsMessageId.isPresent()) {
|
||||||
@ -807,9 +791,7 @@ public class PushDecryptJob extends BaseJob {
|
|||||||
forceStickerDownloadIfNecessary(stickerAttachments);
|
forceStickerDownloadIfNecessary(stickerAttachments);
|
||||||
|
|
||||||
for (DatabaseAttachment attachment : attachments) {
|
for (DatabaseAttachment attachment : attachments) {
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new AttachmentDownloadJob(messageId, attachment.getAttachmentId(), false));
|
||||||
.getJobManager()
|
|
||||||
.add(new AttachmentDownloadJob(messageId, attachment.getAttachmentId(), false));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (message.getMessage().getExpiresInSeconds() > 0) {
|
if (message.getMessage().getExpiresInSeconds() > 0) {
|
||||||
@ -1104,16 +1086,14 @@ public class PushDecryptJob extends BaseJob {
|
|||||||
if (recipient.getProfileKey() == null || !MessageDigest.isEqual(recipient.getProfileKey(), message.getProfileKey().get())) {
|
if (recipient.getProfileKey() == null || !MessageDigest.isEqual(recipient.getProfileKey(), message.getProfileKey().get())) {
|
||||||
database.setProfileKey(recipient.getId(), message.getProfileKey().get());
|
database.setProfileKey(recipient.getId(), message.getProfileKey().get());
|
||||||
database.setUnidentifiedAccessMode(recipient.getId(), RecipientDatabase.UnidentifiedAccessMode.UNKNOWN);
|
database.setUnidentifiedAccessMode(recipient.getId(), RecipientDatabase.UnidentifiedAccessMode.UNKNOWN);
|
||||||
ApplicationContext.getInstance(context).getJobManager().add(new RetrieveProfileJob(recipient));
|
ApplicationDependencies.getJobManager().add(new RetrieveProfileJob(recipient));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleNeedsDeliveryReceipt(@NonNull SignalServiceContent content,
|
private void handleNeedsDeliveryReceipt(@NonNull SignalServiceContent content,
|
||||||
@NonNull SignalServiceDataMessage message)
|
@NonNull SignalServiceDataMessage message)
|
||||||
{
|
{
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new SendDeliveryReceiptJob(Recipient.external(context, content.getSender()).getId(), message.getTimestamp()));
|
||||||
.getJobManager()
|
|
||||||
.add(new SendDeliveryReceiptJob(Recipient.external(context, content.getSender()).getId(), message.getTimestamp()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("DefaultLocale")
|
@SuppressLint("DefaultLocale")
|
||||||
@ -1412,7 +1392,7 @@ public class PushDecryptJob extends BaseJob {
|
|||||||
downloadJob.doWork();
|
downloadJob.doWork();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.w(TAG, "Failed to download sticker inline. Scheduling.");
|
Log.w(TAG, "Failed to download sticker inline. Scheduling.");
|
||||||
ApplicationContext.getInstance(context).getJobManager().add(downloadJob);
|
ApplicationDependencies.getJobManager().add(downloadJob);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -161,7 +161,7 @@ public class PushMediaSendJob extends PushSendJob {
|
|||||||
warn(TAG, "Failure", ifae);
|
warn(TAG, "Failure", ifae);
|
||||||
database.markAsPendingInsecureSmsFallback(messageId);
|
database.markAsPendingInsecureSmsFallback(messageId);
|
||||||
notifyMediaMessageDeliveryFailed(context, messageId);
|
notifyMediaMessageDeliveryFailed(context, messageId);
|
||||||
ApplicationContext.getInstance(context).getJobManager().add(new DirectoryRefreshJob(false));
|
ApplicationDependencies.getJobManager().add(new DirectoryRefreshJob(false));
|
||||||
} catch (UntrustedIdentityException uie) {
|
} catch (UntrustedIdentityException uie) {
|
||||||
warn(TAG, "Failure", uie);
|
warn(TAG, "Failure", uie);
|
||||||
database.addMismatchedIdentity(messageId, Recipient.external(context, uie.getE164Number()).getId(), uie.getIdentityKey());
|
database.addMismatchedIdentity(messageId, Recipient.external(context, uie.getE164Number()).getId(), uie.getIdentityKey());
|
||||||
|
@ -22,6 +22,7 @@ import org.thoughtcrime.securesms.database.Address;
|
|||||||
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
||||||
import org.thoughtcrime.securesms.database.MmsDatabase;
|
import org.thoughtcrime.securesms.database.MmsDatabase;
|
||||||
import org.thoughtcrime.securesms.database.NoSuchMessageException;
|
import org.thoughtcrime.securesms.database.NoSuchMessageException;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.events.PartProgressEvent;
|
import org.thoughtcrime.securesms.events.PartProgressEvent;
|
||||||
import org.thoughtcrime.securesms.jobmanager.Job;
|
import org.thoughtcrime.securesms.jobmanager.Job;
|
||||||
import org.thoughtcrime.securesms.jobmanager.JobManager;
|
import org.thoughtcrime.securesms.jobmanager.JobManager;
|
||||||
@ -82,10 +83,7 @@ public abstract class PushSendJob extends SendJob {
|
|||||||
@Override
|
@Override
|
||||||
protected final void onSend() throws Exception {
|
protected final void onSend() throws Exception {
|
||||||
if (TextSecurePreferences.getSignedPreKeyFailureCount(context) > 5) {
|
if (TextSecurePreferences.getSignedPreKeyFailureCount(context) > 5) {
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new RotateSignedPreKeyJob());
|
||||||
.getJobManager()
|
|
||||||
.add(new RotateSignedPreKeyJob());
|
|
||||||
|
|
||||||
throw new TextSecureExpiredException("Too many signed prekey rotation failures");
|
throw new TextSecureExpiredException("Too many signed prekey rotation failures");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -99,7 +97,7 @@ public abstract class PushSendJob extends SendJob {
|
|||||||
|
|
||||||
if (getRunAttempt() > 1) {
|
if (getRunAttempt() > 1) {
|
||||||
Log.i(TAG, "Scheduling service outage detection job.");
|
Log.i(TAG, "Scheduling service outage detection job.");
|
||||||
ApplicationContext.getInstance(context).getJobManager().add(new ServiceOutageDetectionJob());
|
ApplicationDependencies.getJobManager().add(new ServiceOutageDetectionJob());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ public class PushTextSendJob extends PushSendJob {
|
|||||||
warn(TAG, "Failure", e);
|
warn(TAG, "Failure", e);
|
||||||
database.markAsPendingInsecureSmsFallback(record.getId());
|
database.markAsPendingInsecureSmsFallback(record.getId());
|
||||||
MessageNotifier.notifyMessageDeliveryFailed(context, record.getRecipient(), record.getThreadId());
|
MessageNotifier.notifyMessageDeliveryFailed(context, record.getRecipient(), record.getThreadId());
|
||||||
ApplicationContext.getInstance(context).getJobManager().add(new DirectoryRefreshJob(false));
|
ApplicationDependencies.getJobManager().add(new DirectoryRefreshJob(false));
|
||||||
} catch (UntrustedIdentityException e) {
|
} catch (UntrustedIdentityException e) {
|
||||||
warn(TAG, "Failure", e);
|
warn(TAG, "Failure", e);
|
||||||
database.addMismatchedIdentity(record.getId(), Recipient.external(context, e.getE164Number()).getId(), e.getIdentityKey());
|
database.addMismatchedIdentity(record.getId(), Recipient.external(context, e.getE164Number()).getId(), e.getIdentityKey());
|
||||||
|
@ -55,9 +55,7 @@ public class RefreshAttributesJob extends BaseJob {
|
|||||||
signalAccountManager.setAccountAttributes(null, registrationId, fetchesMessages, pin,
|
signalAccountManager.setAccountAttributes(null, registrationId, fetchesMessages, pin,
|
||||||
unidentifiedAccessKey, universalUnidentifiedAccess);
|
unidentifiedAccessKey, universalUnidentifiedAccess);
|
||||||
|
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new RefreshUnidentifiedDeliveryAbilityJob());
|
||||||
.getJobManager()
|
|
||||||
.add(new RefreshUnidentifiedDeliveryAbilityJob());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -75,9 +75,7 @@ public class RefreshPreKeysJob extends BaseJob {
|
|||||||
PreKeyUtil.setActiveSignedPreKeyId(context, signedPreKeyRecord.getId());
|
PreKeyUtil.setActiveSignedPreKeyId(context, signedPreKeyRecord.getId());
|
||||||
TextSecurePreferences.setSignedPreKeyRegistered(context, true);
|
TextSecurePreferences.setSignedPreKeyRegistered(context, true);
|
||||||
|
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new CleanPreKeysJob());
|
||||||
.getJobManager()
|
|
||||||
.add(new CleanPreKeysJob());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -221,9 +221,7 @@ public class RetrieveProfileJob extends BaseJob {
|
|||||||
if (recipient.getProfileKey() == null) return;
|
if (recipient.getProfileKey() == null) return;
|
||||||
|
|
||||||
if (!Util.equals(profileAvatar, recipient.getProfileAvatar())) {
|
if (!Util.equals(profileAvatar, recipient.getProfileAvatar())) {
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new RetrieveProfileAvatarJob(recipient, profileAvatar));
|
||||||
.getJobManager()
|
|
||||||
.add(new RetrieveProfileAvatarJob(recipient, profileAvatar));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,9 +56,7 @@ public class RotateProfileKeyJob extends BaseJob {
|
|||||||
accountManager.setProfileName(profileKey, TextSecurePreferences.getProfileName(context));
|
accountManager.setProfileName(profileKey, TextSecurePreferences.getProfileName(context));
|
||||||
accountManager.setProfileAvatar(profileKey, getProfileAvatar());
|
accountManager.setProfileAvatar(profileKey, getProfileAvatar());
|
||||||
|
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new RefreshAttributesJob());
|
||||||
.getJobManager()
|
|
||||||
.add(new RefreshAttributesJob());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -59,9 +59,7 @@ public class RotateSignedPreKeyJob extends BaseJob {
|
|||||||
TextSecurePreferences.setSignedPreKeyRegistered(context, true);
|
TextSecurePreferences.setSignedPreKeyRegistered(context, true);
|
||||||
TextSecurePreferences.setSignedPreKeyFailureCount(context, 0);
|
TextSecurePreferences.setSignedPreKeyFailureCount(context, 0);
|
||||||
|
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new CleanPreKeysJob());
|
||||||
.getJobManager()
|
|
||||||
.add(new CleanPreKeysJob());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -4,6 +4,7 @@ import android.app.Activity;
|
|||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.telephony.SmsManager;
|
import android.telephony.SmsManager;
|
||||||
|
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobmanager.Data;
|
import org.thoughtcrime.securesms.jobmanager.Data;
|
||||||
import org.thoughtcrime.securesms.jobmanager.Job;
|
import org.thoughtcrime.securesms.jobmanager.Job;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
@ -102,9 +103,7 @@ public class SmsSentJob extends BaseJob {
|
|||||||
case SmsManager.RESULT_ERROR_NO_SERVICE:
|
case SmsManager.RESULT_ERROR_NO_SERVICE:
|
||||||
case SmsManager.RESULT_ERROR_RADIO_OFF:
|
case SmsManager.RESULT_ERROR_RADIO_OFF:
|
||||||
Log.w(TAG, "Service connectivity problem, requeuing...");
|
Log.w(TAG, "Service connectivity problem, requeuing...");
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new SmsSendJob(context, messageId, record.getIndividualRecipient(), runAttempt + 1));
|
||||||
.getJobManager()
|
|
||||||
.add(new SmsSendJob(context, messageId, record.getIndividualRecipient(), runAttempt + 1));
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
database.markAsSentFailed(messageId);
|
database.markAsSentFailed(messageId);
|
||||||
|
@ -79,7 +79,7 @@ public class StickerPackDownloadJob extends BaseJob {
|
|||||||
}
|
}
|
||||||
|
|
||||||
SignalServiceMessageReceiver receiver = ApplicationDependencies.getSignalServiceMessageReceiver();
|
SignalServiceMessageReceiver receiver = ApplicationDependencies.getSignalServiceMessageReceiver();
|
||||||
JobManager jobManager = ApplicationContext.getInstance(context).getJobManager();
|
JobManager jobManager = ApplicationDependencies.getJobManager();
|
||||||
StickerDatabase stickerDatabase = DatabaseFactory.getStickerDatabase(context);
|
StickerDatabase stickerDatabase = DatabaseFactory.getStickerDatabase(context);
|
||||||
byte[] packIdBytes = Hex.fromStringCondensed(packId);
|
byte[] packIdBytes = Hex.fromStringCondensed(packId);
|
||||||
byte[] packKeyBytes = Hex.fromStringCondensed(packKey);
|
byte[] packKeyBytes = Hex.fromStringCondensed(packKey);
|
||||||
|
@ -57,6 +57,7 @@ import org.json.JSONObject;
|
|||||||
import org.thoughtcrime.securesms.ApplicationContext;
|
import org.thoughtcrime.securesms.ApplicationContext;
|
||||||
import org.thoughtcrime.securesms.R;
|
import org.thoughtcrime.securesms.R;
|
||||||
import org.thoughtcrime.securesms.contactshare.SimpleTextWatcher;
|
import org.thoughtcrime.securesms.contactshare.SimpleTextWatcher;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
import org.thoughtcrime.securesms.logsubmit.util.Scrubber;
|
import org.thoughtcrime.securesms.logsubmit.util.Scrubber;
|
||||||
import org.thoughtcrime.securesms.util.BucketInfo;
|
import org.thoughtcrime.securesms.util.BucketInfo;
|
||||||
@ -394,7 +395,7 @@ public class SubmitLogFragment extends Fragment {
|
|||||||
.append("\n\n\n")
|
.append("\n\n\n")
|
||||||
.append(HEADER_JOBS)
|
.append(HEADER_JOBS)
|
||||||
.append("\n\n")
|
.append("\n\n")
|
||||||
.append(Scrubber.scrub(ApplicationContext.getInstance(context).getJobManager().getDebugInfo()))
|
.append(Scrubber.scrub(ApplicationDependencies.getJobManager().getDebugInfo()))
|
||||||
.append("\n\n\n");
|
.append("\n\n\n");
|
||||||
|
|
||||||
if (VERSION.SDK_INT >= 28) {
|
if (VERSION.SDK_INT >= 28) {
|
||||||
|
@ -18,6 +18,7 @@ import org.thoughtcrime.securesms.database.MmsDatabase;
|
|||||||
import org.thoughtcrime.securesms.database.MmsDatabase.Reader;
|
import org.thoughtcrime.securesms.database.MmsDatabase.Reader;
|
||||||
import org.thoughtcrime.securesms.database.PushDatabase;
|
import org.thoughtcrime.securesms.database.PushDatabase;
|
||||||
import org.thoughtcrime.securesms.database.model.MessageRecord;
|
import org.thoughtcrime.securesms.database.model.MessageRecord;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobmanager.Data;
|
import org.thoughtcrime.securesms.jobmanager.Data;
|
||||||
import org.thoughtcrime.securesms.jobmanager.Job;
|
import org.thoughtcrime.securesms.jobmanager.Job;
|
||||||
import org.thoughtcrime.securesms.jobs.AttachmentDownloadJob;
|
import org.thoughtcrime.securesms.jobs.AttachmentDownloadJob;
|
||||||
@ -134,9 +135,7 @@ public class LegacyMigrationJob extends MigrationJob {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (lastSeenVersion < SIGNED_PREKEY_VERSION) {
|
if (lastSeenVersion < SIGNED_PREKEY_VERSION) {
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new CreateSignedPreKeyJob(context));
|
||||||
.getJobManager()
|
|
||||||
.add(new CreateSignedPreKeyJob(context));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lastSeenVersion < NO_DECRYPT_QUEUE_VERSION) {
|
if (lastSeenVersion < NO_DECRYPT_QUEUE_VERSION) {
|
||||||
@ -156,9 +155,7 @@ public class LegacyMigrationJob extends MigrationJob {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (lastSeenVersion < CONTACTS_ACCOUNT_VERSION) {
|
if (lastSeenVersion < CONTACTS_ACCOUNT_VERSION) {
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new DirectoryRefreshJob(false));
|
||||||
.getJobManager()
|
|
||||||
.add(new DirectoryRefreshJob(false));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lastSeenVersion < MEDIA_DOWNLOAD_CONTROLS_VERSION) {
|
if (lastSeenVersion < MEDIA_DOWNLOAD_CONTROLS_VERSION) {
|
||||||
@ -166,18 +163,12 @@ public class LegacyMigrationJob extends MigrationJob {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (lastSeenVersion < REDPHONE_SUPPORT_VERSION) {
|
if (lastSeenVersion < REDPHONE_SUPPORT_VERSION) {
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new RefreshAttributesJob());
|
||||||
.getJobManager()
|
ApplicationDependencies.getJobManager().add(new DirectoryRefreshJob(false));
|
||||||
.add(new RefreshAttributesJob());
|
|
||||||
ApplicationContext.getInstance(context)
|
|
||||||
.getJobManager()
|
|
||||||
.add(new DirectoryRefreshJob(false));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lastSeenVersion < PROFILES) {
|
if (lastSeenVersion < PROFILES) {
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new DirectoryRefreshJob(false));
|
||||||
.getJobManager()
|
|
||||||
.add(new DirectoryRefreshJob(false));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lastSeenVersion < SCREENSHOTS) {
|
if (lastSeenVersion < SCREENSHOTS) {
|
||||||
@ -268,16 +259,12 @@ public class LegacyMigrationJob extends MigrationJob {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Log.i(TAG, "Scheduling UD attributes refresh.");
|
Log.i(TAG, "Scheduling UD attributes refresh.");
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new RefreshAttributesJob());
|
||||||
.getJobManager()
|
|
||||||
.add(new RefreshAttributesJob());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lastSeenVersion < SIGNALING_KEY_DEPRECATION) {
|
if (lastSeenVersion < SIGNALING_KEY_DEPRECATION) {
|
||||||
Log.i(TAG, "Scheduling a RefreshAttributesJob to remove the signaling key remotely.");
|
Log.i(TAG, "Scheduling a RefreshAttributesJob to remove the signaling key remotely.");
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new RefreshAttributesJob());
|
||||||
.getJobManager()
|
|
||||||
.add(new RefreshAttributesJob());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -301,9 +288,7 @@ public class LegacyMigrationJob extends MigrationJob {
|
|||||||
attachmentDb.setTransferState(attachment.getMmsId(), attachment.getAttachmentId(), AttachmentDatabase.TRANSFER_PROGRESS_DONE);
|
attachmentDb.setTransferState(attachment.getMmsId(), attachment.getAttachmentId(), AttachmentDatabase.TRANSFER_PROGRESS_DONE);
|
||||||
} else if (record != null && !record.isOutgoing() && record.isPush()) {
|
} else if (record != null && !record.isOutgoing() && record.isPush()) {
|
||||||
Log.i(TAG, "queuing new attachment download job for incoming push part " + attachment.getAttachmentId() + ".");
|
Log.i(TAG, "queuing new attachment download job for incoming push part " + attachment.getAttachmentId() + ".");
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new AttachmentDownloadJob(attachment.getMmsId(), attachment.getAttachmentId(), false));
|
||||||
.getJobManager()
|
|
||||||
.add(new AttachmentDownloadJob(attachment.getMmsId(), attachment.getAttachmentId(), false));
|
|
||||||
}
|
}
|
||||||
reader.close();
|
reader.close();
|
||||||
}
|
}
|
||||||
@ -317,10 +302,8 @@ public class LegacyMigrationJob extends MigrationJob {
|
|||||||
pushReader = pushDatabase.getPending();
|
pushReader = pushDatabase.getPending();
|
||||||
|
|
||||||
while (pushReader != null && pushReader.moveToNext()) {
|
while (pushReader != null && pushReader.moveToNext()) {
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new PushDecryptJob(context,
|
||||||
.getJobManager()
|
pushReader.getLong(pushReader.getColumnIndexOrThrow(PushDatabase.ID))));
|
||||||
.add(new PushDecryptJob(context,
|
|
||||||
pushReader.getLong(pushReader.getColumnIndexOrThrow(PushDatabase.ID))));
|
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
if (pushReader != null)
|
if (pushReader != null)
|
||||||
|
@ -17,6 +17,7 @@ import org.thoughtcrime.securesms.database.DatabaseFactory;
|
|||||||
import org.thoughtcrime.securesms.database.MessagingDatabase.ExpirationInfo;
|
import org.thoughtcrime.securesms.database.MessagingDatabase.ExpirationInfo;
|
||||||
import org.thoughtcrime.securesms.database.MessagingDatabase.MarkedMessageInfo;
|
import org.thoughtcrime.securesms.database.MessagingDatabase.MarkedMessageInfo;
|
||||||
import org.thoughtcrime.securesms.database.MessagingDatabase.SyncMessageId;
|
import org.thoughtcrime.securesms.database.MessagingDatabase.SyncMessageId;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobs.MultiDeviceReadUpdateJob;
|
import org.thoughtcrime.securesms.jobs.MultiDeviceReadUpdateJob;
|
||||||
import org.thoughtcrime.securesms.jobs.SendReadReceiptJob;
|
import org.thoughtcrime.securesms.jobs.SendReadReceiptJob;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
@ -76,9 +77,7 @@ public class MarkReadReceiver extends BroadcastReceiver {
|
|||||||
syncMessageIds.add(messageInfo.getSyncMessageId());
|
syncMessageIds.add(messageInfo.getSyncMessageId());
|
||||||
}
|
}
|
||||||
|
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new MultiDeviceReadUpdateJob(syncMessageIds));
|
||||||
.getJobManager()
|
|
||||||
.add(new MultiDeviceReadUpdateJob(syncMessageIds));
|
|
||||||
|
|
||||||
Map<RecipientId, List<SyncMessageId>> recipientIdMap = Stream.of(markedReadMessages)
|
Map<RecipientId, List<SyncMessageId>> recipientIdMap = Stream.of(markedReadMessages)
|
||||||
.map(MarkedMessageInfo::getSyncMessageId)
|
.map(MarkedMessageInfo::getSyncMessageId)
|
||||||
@ -87,9 +86,7 @@ public class MarkReadReceiver extends BroadcastReceiver {
|
|||||||
for (Map.Entry<RecipientId, List<SyncMessageId>> entry : recipientIdMap.entrySet()) {
|
for (Map.Entry<RecipientId, List<SyncMessageId>> entry : recipientIdMap.entrySet()) {
|
||||||
List<Long> timestamps = Stream.of(entry.getValue()).map(SyncMessageId::getTimetamp).toList();
|
List<Long> timestamps = Stream.of(entry.getValue()).map(SyncMessageId::getTimetamp).toList();
|
||||||
|
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new SendReadReceiptJob(entry.getKey(), timestamps));
|
||||||
.getJobManager()
|
|
||||||
.add(new SendReadReceiptJob(entry.getKey(), timestamps));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -173,12 +173,10 @@ public class AppProtectionPreferenceFragment extends CorrectedPreferenceFragment
|
|||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
boolean enabled = (boolean)newValue;
|
boolean enabled = (boolean)newValue;
|
||||||
ApplicationContext.getInstance(getContext())
|
ApplicationDependencies.getJobManager().add(new MultiDeviceConfigurationUpdateJob(enabled,
|
||||||
.getJobManager()
|
TextSecurePreferences.isTypingIndicatorsEnabled(requireContext()),
|
||||||
.add(new MultiDeviceConfigurationUpdateJob(enabled,
|
TextSecurePreferences.isShowUnidentifiedDeliveryIndicatorsEnabled(getContext()),
|
||||||
TextSecurePreferences.isTypingIndicatorsEnabled(requireContext()),
|
TextSecurePreferences.isLinkPreviewsEnabled(getContext())));
|
||||||
TextSecurePreferences.isShowUnidentifiedDeliveryIndicatorsEnabled(getContext()),
|
|
||||||
TextSecurePreferences.isLinkPreviewsEnabled(getContext())));
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -188,12 +186,10 @@ public class AppProtectionPreferenceFragment extends CorrectedPreferenceFragment
|
|||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
boolean enabled = (boolean)newValue;
|
boolean enabled = (boolean)newValue;
|
||||||
ApplicationContext.getInstance(getContext())
|
ApplicationDependencies.getJobManager().add(new MultiDeviceConfigurationUpdateJob(TextSecurePreferences.isReadReceiptsEnabled(requireContext()),
|
||||||
.getJobManager()
|
enabled,
|
||||||
.add(new MultiDeviceConfigurationUpdateJob(TextSecurePreferences.isReadReceiptsEnabled(requireContext()),
|
TextSecurePreferences.isShowUnidentifiedDeliveryIndicatorsEnabled(getContext()),
|
||||||
enabled,
|
TextSecurePreferences.isLinkPreviewsEnabled(getContext())));
|
||||||
TextSecurePreferences.isShowUnidentifiedDeliveryIndicatorsEnabled(getContext()),
|
|
||||||
TextSecurePreferences.isLinkPreviewsEnabled(getContext())));
|
|
||||||
|
|
||||||
if (!enabled) {
|
if (!enabled) {
|
||||||
ApplicationContext.getInstance(requireContext()).getTypingStatusRepository().clear();
|
ApplicationContext.getInstance(requireContext()).getTypingStatusRepository().clear();
|
||||||
@ -207,12 +203,10 @@ public class AppProtectionPreferenceFragment extends CorrectedPreferenceFragment
|
|||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
boolean enabled = (boolean)newValue;
|
boolean enabled = (boolean)newValue;
|
||||||
ApplicationContext.getInstance(requireContext())
|
ApplicationDependencies.getJobManager().add(new MultiDeviceConfigurationUpdateJob(TextSecurePreferences.isReadReceiptsEnabled(requireContext()),
|
||||||
.getJobManager()
|
TextSecurePreferences.isTypingIndicatorsEnabled(requireContext()),
|
||||||
.add(new MultiDeviceConfigurationUpdateJob(TextSecurePreferences.isReadReceiptsEnabled(requireContext()),
|
TextSecurePreferences.isShowUnidentifiedDeliveryIndicatorsEnabled(requireContext()),
|
||||||
TextSecurePreferences.isTypingIndicatorsEnabled(requireContext()),
|
enabled));
|
||||||
TextSecurePreferences.isShowUnidentifiedDeliveryIndicatorsEnabled(requireContext()),
|
|
||||||
enabled));
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -310,12 +304,10 @@ public class AppProtectionPreferenceFragment extends CorrectedPreferenceFragment
|
|||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
boolean enabled = (boolean) newValue;
|
boolean enabled = (boolean) newValue;
|
||||||
ApplicationContext.getInstance(getContext())
|
ApplicationDependencies.getJobManager().add(new MultiDeviceConfigurationUpdateJob(TextSecurePreferences.isReadReceiptsEnabled(getContext()),
|
||||||
.getJobManager()
|
TextSecurePreferences.isTypingIndicatorsEnabled(getContext()),
|
||||||
.add(new MultiDeviceConfigurationUpdateJob(TextSecurePreferences.isReadReceiptsEnabled(getContext()),
|
enabled,
|
||||||
TextSecurePreferences.isTypingIndicatorsEnabled(getContext()),
|
TextSecurePreferences.isLinkPreviewsEnabled(getContext())));
|
||||||
enabled,
|
|
||||||
TextSecurePreferences.isLinkPreviewsEnabled(getContext())));
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -324,9 +316,7 @@ public class AppProtectionPreferenceFragment extends CorrectedPreferenceFragment
|
|||||||
private class UniversalUnidentifiedAccessChangedListener implements Preference.OnPreferenceChangeListener {
|
private class UniversalUnidentifiedAccessChangedListener implements Preference.OnPreferenceChangeListener {
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object o) {
|
public boolean onPreferenceChange(Preference preference, Object o) {
|
||||||
ApplicationContext.getInstance(getContext())
|
ApplicationDependencies.getJobManager().add(new RefreshAttributesJob());
|
||||||
.getJobManager()
|
|
||||||
.add(new RefreshAttributesJob());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,7 @@ import org.thoughtcrime.securesms.R;
|
|||||||
import org.thoughtcrime.securesms.backup.BackupDialog;
|
import org.thoughtcrime.securesms.backup.BackupDialog;
|
||||||
import org.thoughtcrime.securesms.backup.FullBackupBase.BackupEvent;
|
import org.thoughtcrime.securesms.backup.FullBackupBase.BackupEvent;
|
||||||
import org.thoughtcrime.securesms.components.SwitchPreferenceCompat;
|
import org.thoughtcrime.securesms.components.SwitchPreferenceCompat;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobs.LocalBackupJob;
|
import org.thoughtcrime.securesms.jobs.LocalBackupJob;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
import org.thoughtcrime.securesms.permissions.Permissions;
|
import org.thoughtcrime.securesms.permissions.Permissions;
|
||||||
@ -161,9 +162,7 @@ public class ChatsPreferenceFragment extends ListSummaryPreferenceFragment {
|
|||||||
.ifNecessary()
|
.ifNecessary()
|
||||||
.onAllGranted(() -> {
|
.onAllGranted(() -> {
|
||||||
Log.i(TAG, "Queing backup...");
|
Log.i(TAG, "Queing backup...");
|
||||||
ApplicationContext.getInstance(getContext())
|
ApplicationDependencies.getJobManager().add(new LocalBackupJob());
|
||||||
.getJobManager()
|
|
||||||
.add(new LocalBackupJob());
|
|
||||||
})
|
})
|
||||||
.withPermanentDenialDialog(getString(R.string.ChatsPreferenceFragment_signal_requires_external_storage_permission_in_order_to_create_backups))
|
.withPermanentDenialDialog(getString(R.string.ChatsPreferenceFragment_signal_requires_external_storage_permission_in_order_to_create_backups))
|
||||||
.execute();
|
.execute();
|
||||||
|
@ -5,12 +5,13 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.ApplicationContext;
|
import org.thoughtcrime.securesms.ApplicationContext;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobs.PushNotificationReceiveJob;
|
import org.thoughtcrime.securesms.jobs.PushNotificationReceiveJob;
|
||||||
|
|
||||||
public class BootReceiver extends BroadcastReceiver {
|
public class BootReceiver extends BroadcastReceiver {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
ApplicationContext.getInstance(context).getJobManager().add(new PushNotificationReceiveJob(context));
|
ApplicationDependencies.getJobManager().add(new PushNotificationReceiveJob(context));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.ApplicationContext;
|
import org.thoughtcrime.securesms.ApplicationContext;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob;
|
import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob;
|
||||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||||
|
|
||||||
@ -22,9 +23,7 @@ public class DirectoryRefreshListener extends PersistentAlarmManagerListener {
|
|||||||
@Override
|
@Override
|
||||||
protected long onAlarm(Context context, long scheduledTime) {
|
protected long onAlarm(Context context, long scheduledTime) {
|
||||||
if (scheduledTime != 0 && TextSecurePreferences.isPushRegistered(context)) {
|
if (scheduledTime != 0 && TextSecurePreferences.isPushRegistered(context)) {
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new DirectoryRefreshJob(true));
|
||||||
.getJobManager()
|
|
||||||
.add(new DirectoryRefreshJob(true));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
long newTime = System.currentTimeMillis() + INTERVAL;
|
long newTime = System.currentTimeMillis() + INTERVAL;
|
||||||
|
@ -5,6 +5,7 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.ApplicationContext;
|
import org.thoughtcrime.securesms.ApplicationContext;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobs.LocalBackupJob;
|
import org.thoughtcrime.securesms.jobs.LocalBackupJob;
|
||||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||||
|
|
||||||
@ -22,7 +23,7 @@ public class LocalBackupListener extends PersistentAlarmManagerListener {
|
|||||||
@Override
|
@Override
|
||||||
protected long onAlarm(Context context, long scheduledTime) {
|
protected long onAlarm(Context context, long scheduledTime) {
|
||||||
if (TextSecurePreferences.isBackupEnabled(context)) {
|
if (TextSecurePreferences.isBackupEnabled(context)) {
|
||||||
ApplicationContext.getInstance(context).getJobManager().add(new LocalBackupJob());
|
ApplicationDependencies.getJobManager().add(new LocalBackupJob());
|
||||||
}
|
}
|
||||||
|
|
||||||
long nextTime = System.currentTimeMillis() + INTERVAL;
|
long nextTime = System.currentTimeMillis() + INTERVAL;
|
||||||
|
@ -20,6 +20,8 @@ import android.content.BroadcastReceiver;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.provider.Telephony;
|
import android.provider.Telephony;
|
||||||
|
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.ApplicationContext;
|
import org.thoughtcrime.securesms.ApplicationContext;
|
||||||
@ -54,9 +56,7 @@ public class MmsListener extends BroadcastReceiver {
|
|||||||
Log.i(TAG, "Relevant!");
|
Log.i(TAG, "Relevant!");
|
||||||
int subscriptionId = intent.getExtras().getInt("subscription", -1);
|
int subscriptionId = intent.getExtras().getInt("subscription", -1);
|
||||||
|
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new MmsReceiveJob(intent.getByteArrayExtra("data"), subscriptionId));
|
||||||
.getJobManager()
|
|
||||||
.add(new MmsReceiveJob(intent.getByteArrayExtra("data"), subscriptionId));
|
|
||||||
|
|
||||||
abortBroadcast();
|
abortBroadcast();
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.ApplicationContext;
|
import org.thoughtcrime.securesms.ApplicationContext;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobs.RotateCertificateJob;
|
import org.thoughtcrime.securesms.jobs.RotateCertificateJob;
|
||||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||||
|
|
||||||
@ -21,9 +22,7 @@ public class RotateSenderCertificateListener extends PersistentAlarmManagerListe
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected long onAlarm(Context context, long scheduledTime) {
|
protected long onAlarm(Context context, long scheduledTime) {
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new RotateCertificateJob(context));
|
||||||
.getJobManager()
|
|
||||||
.add(new RotateCertificateJob(context));
|
|
||||||
|
|
||||||
long nextTime = System.currentTimeMillis() + INTERVAL;
|
long nextTime = System.currentTimeMillis() + INTERVAL;
|
||||||
TextSecurePreferences.setUnidentifiedAccessCertificateRotationTime(context, nextTime);
|
TextSecurePreferences.setUnidentifiedAccessCertificateRotationTime(context, nextTime);
|
||||||
|
@ -5,6 +5,7 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.ApplicationContext;
|
import org.thoughtcrime.securesms.ApplicationContext;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobs.RotateSignedPreKeyJob;
|
import org.thoughtcrime.securesms.jobs.RotateSignedPreKeyJob;
|
||||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||||
|
|
||||||
@ -22,9 +23,7 @@ public class RotateSignedPreKeyListener extends PersistentAlarmManagerListener {
|
|||||||
@Override
|
@Override
|
||||||
protected long onAlarm(Context context, long scheduledTime) {
|
protected long onAlarm(Context context, long scheduledTime) {
|
||||||
if (scheduledTime != 0 && TextSecurePreferences.isPushRegistered(context)) {
|
if (scheduledTime != 0 && TextSecurePreferences.isPushRegistered(context)) {
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new RotateSignedPreKeyJob());
|
||||||
.getJobManager()
|
|
||||||
.add(new RotateSignedPreKeyJob());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
long nextTime = System.currentTimeMillis() + INTERVAL;
|
long nextTime = System.currentTimeMillis() + INTERVAL;
|
||||||
|
@ -5,6 +5,7 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.telephony.SmsMessage;
|
import android.telephony.SmsMessage;
|
||||||
|
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobmanager.JobManager;
|
import org.thoughtcrime.securesms.jobmanager.JobManager;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
|
|
||||||
@ -21,7 +22,7 @@ public class SmsDeliveryListener extends BroadcastReceiver {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
JobManager jobManager = ApplicationContext.getInstance(context).getJobManager();
|
JobManager jobManager = ApplicationDependencies.getJobManager();
|
||||||
long messageId = intent.getLongExtra("message_id", -1);
|
long messageId = intent.getLongExtra("message_id", -1);
|
||||||
int runAttempt = intent.getIntExtra("run_attempt", 0);
|
int runAttempt = intent.getIntExtra("run_attempt", 0);
|
||||||
|
|
||||||
|
@ -22,6 +22,8 @@ import android.content.Intent;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.provider.Telephony;
|
import android.provider.Telephony;
|
||||||
import android.telephony.SmsMessage;
|
import android.telephony.SmsMessage;
|
||||||
|
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.ApplicationContext;
|
import org.thoughtcrime.securesms.ApplicationContext;
|
||||||
@ -105,7 +107,7 @@ public class SmsListener extends BroadcastReceiver {
|
|||||||
Object[] pdus = (Object[]) intent.getExtras().get("pdus");
|
Object[] pdus = (Object[]) intent.getExtras().get("pdus");
|
||||||
int subscriptionId = intent.getExtras().getInt("subscription", -1);
|
int subscriptionId = intent.getExtras().getInt("subscription", -1);
|
||||||
|
|
||||||
ApplicationContext.getInstance(context).getJobManager().add(new SmsReceiveJob(pdus, subscriptionId));
|
ApplicationDependencies.getJobManager().add(new SmsReceiveJob(pdus, subscriptionId));
|
||||||
|
|
||||||
abortBroadcast();
|
abortBroadcast();
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,8 @@ package org.thoughtcrime.securesms.service;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.ApplicationContext;
|
import org.thoughtcrime.securesms.ApplicationContext;
|
||||||
@ -29,9 +31,7 @@ public class UpdateApkRefreshListener extends PersistentAlarmManagerListener {
|
|||||||
|
|
||||||
if (scheduledTime != 0 && BuildConfig.PLAY_STORE_DISABLED) {
|
if (scheduledTime != 0 && BuildConfig.PLAY_STORE_DISABLED) {
|
||||||
Log.i(TAG, "Queueing APK update job...");
|
Log.i(TAG, "Queueing APK update job...");
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new UpdateApkJob());
|
||||||
.getJobManager()
|
|
||||||
.add(new UpdateApkJob());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
long newTime = System.currentTimeMillis() + INTERVAL;
|
long newTime = System.currentTimeMillis() + INTERVAL;
|
||||||
|
@ -37,6 +37,7 @@ import org.thoughtcrime.securesms.database.SmsDatabase;
|
|||||||
import org.thoughtcrime.securesms.database.ThreadDatabase;
|
import org.thoughtcrime.securesms.database.ThreadDatabase;
|
||||||
import org.thoughtcrime.securesms.database.model.MessageRecord;
|
import org.thoughtcrime.securesms.database.model.MessageRecord;
|
||||||
import org.thoughtcrime.securesms.database.model.SmsMessageRecord;
|
import org.thoughtcrime.securesms.database.model.SmsMessageRecord;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobmanager.Job;
|
import org.thoughtcrime.securesms.jobmanager.Job;
|
||||||
import org.thoughtcrime.securesms.jobmanager.JobManager;
|
import org.thoughtcrime.securesms.jobmanager.JobManager;
|
||||||
import org.thoughtcrime.securesms.jobs.AttachmentCopyJob;
|
import org.thoughtcrime.securesms.jobs.AttachmentCopyJob;
|
||||||
@ -212,10 +213,9 @@ public class MessageSender {
|
|||||||
copyJobs.size(),
|
copyJobs.size(),
|
||||||
messageJobs.size()));
|
messageJobs.size()));
|
||||||
|
|
||||||
JobManager.Chain chain = ApplicationContext.getInstance(context)
|
JobManager.Chain chain = ApplicationDependencies.getJobManager()
|
||||||
.getJobManager()
|
.startChain(compressionJobs)
|
||||||
.startChain(compressionJobs)
|
.then(uploadJobs);
|
||||||
.then(uploadJobs);
|
|
||||||
|
|
||||||
if (copyJobs.size() > 0) {
|
if (copyJobs.size() > 0) {
|
||||||
chain = chain.then(copyJobs);
|
chain = chain.then(copyJobs);
|
||||||
@ -274,27 +274,27 @@ public class MessageSender {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void sendTextPush(Context context, Recipient recipient, long messageId) {
|
private static void sendTextPush(Context context, Recipient recipient, long messageId) {
|
||||||
JobManager jobManager = ApplicationContext.getInstance(context).getJobManager();
|
JobManager jobManager = ApplicationDependencies.getJobManager();
|
||||||
jobManager.add(new PushTextSendJob(messageId, recipient));
|
jobManager.add(new PushTextSendJob(messageId, recipient));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void sendMediaPush(Context context, Recipient recipient, long messageId) {
|
private static void sendMediaPush(Context context, Recipient recipient, long messageId) {
|
||||||
JobManager jobManager = ApplicationContext.getInstance(context).getJobManager();
|
JobManager jobManager = ApplicationDependencies.getJobManager();
|
||||||
PushMediaSendJob.enqueue(context, jobManager, messageId, recipient);
|
PushMediaSendJob.enqueue(context, jobManager, messageId, recipient);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void sendGroupPush(Context context, Recipient recipient, long messageId, RecipientId filterRecipientId) {
|
private static void sendGroupPush(Context context, Recipient recipient, long messageId, RecipientId filterRecipientId) {
|
||||||
JobManager jobManager = ApplicationContext.getInstance(context).getJobManager();
|
JobManager jobManager = ApplicationDependencies.getJobManager();
|
||||||
PushGroupSendJob.enqueue(context, jobManager, messageId, recipient.getId(), filterRecipientId);
|
PushGroupSendJob.enqueue(context, jobManager, messageId, recipient.getId(), filterRecipientId);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void sendSms(Context context, Recipient recipient, long messageId) {
|
private static void sendSms(Context context, Recipient recipient, long messageId) {
|
||||||
JobManager jobManager = ApplicationContext.getInstance(context).getJobManager();
|
JobManager jobManager = ApplicationDependencies.getJobManager();
|
||||||
jobManager.add(new SmsSendJob(context, messageId, recipient));
|
jobManager.add(new SmsSendJob(context, messageId, recipient));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void sendMms(Context context, long messageId) {
|
private static void sendMms(Context context, long messageId) {
|
||||||
JobManager jobManager = ApplicationContext.getInstance(context).getJobManager();
|
JobManager jobManager = ApplicationDependencies.getJobManager();
|
||||||
MmsSendJob.enqueue(context, jobManager, messageId);
|
MmsSendJob.enqueue(context, jobManager, messageId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ import org.thoughtcrime.securesms.database.DatabaseFactory;
|
|||||||
import org.thoughtcrime.securesms.database.StickerDatabase;
|
import org.thoughtcrime.securesms.database.StickerDatabase;
|
||||||
import org.thoughtcrime.securesms.database.StickerDatabase.StickerPackRecordReader;
|
import org.thoughtcrime.securesms.database.StickerDatabase.StickerPackRecordReader;
|
||||||
import org.thoughtcrime.securesms.database.model.StickerPackRecord;
|
import org.thoughtcrime.securesms.database.model.StickerPackRecord;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobmanager.JobManager;
|
import org.thoughtcrime.securesms.jobmanager.JobManager;
|
||||||
import org.thoughtcrime.securesms.jobs.MultiDeviceStickerPackOperationJob;
|
import org.thoughtcrime.securesms.jobs.MultiDeviceStickerPackOperationJob;
|
||||||
import org.thoughtcrime.securesms.jobs.StickerPackDownloadJob;
|
import org.thoughtcrime.securesms.jobs.StickerPackDownloadJob;
|
||||||
@ -37,7 +38,7 @@ final class StickerManagementRepository {
|
|||||||
|
|
||||||
void fetchUnretrievedReferencePacks() {
|
void fetchUnretrievedReferencePacks() {
|
||||||
SignalExecutors.SERIAL.execute(() -> {
|
SignalExecutors.SERIAL.execute(() -> {
|
||||||
JobManager jobManager = ApplicationContext.getInstance(context).getJobManager();
|
JobManager jobManager = ApplicationDependencies.getJobManager();
|
||||||
|
|
||||||
try (Cursor cursor = attachmentDatabase.getUnavailableStickerPacks()) {
|
try (Cursor cursor = attachmentDatabase.getUnavailableStickerPacks()) {
|
||||||
while (cursor != null && cursor.moveToNext()) {
|
while (cursor != null && cursor.moveToNext()) {
|
||||||
@ -78,16 +79,14 @@ final class StickerManagementRepository {
|
|||||||
stickerDatabase.uninstallPack(packId);
|
stickerDatabase.uninstallPack(packId);
|
||||||
|
|
||||||
if (TextSecurePreferences.isMultiDevice(context)) {
|
if (TextSecurePreferences.isMultiDevice(context)) {
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new MultiDeviceStickerPackOperationJob(packId, packKey, MultiDeviceStickerPackOperationJob.Type.REMOVE));
|
||||||
.getJobManager()
|
|
||||||
.add(new MultiDeviceStickerPackOperationJob(packId, packKey, MultiDeviceStickerPackOperationJob.Type.REMOVE));
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void installStickerPack(@NonNull String packId, @NonNull String packKey) {
|
void installStickerPack(@NonNull String packId, @NonNull String packKey) {
|
||||||
SignalExecutors.SERIAL.execute(() -> {
|
SignalExecutors.SERIAL.execute(() -> {
|
||||||
JobManager jobManager = ApplicationContext.getInstance(context).getJobManager();
|
JobManager jobManager = ApplicationDependencies.getJobManager();
|
||||||
|
|
||||||
if (stickerDatabase.isPackAvailableAsReference(packId)) {
|
if (stickerDatabase.isPackAvailableAsReference(packId)) {
|
||||||
stickerDatabase.markPackAsInstalled(packId);
|
stickerDatabase.markPackAsInstalled(packId);
|
||||||
|
@ -21,6 +21,7 @@ import org.thoughtcrime.securesms.ApplicationContext;
|
|||||||
import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity;
|
import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity;
|
||||||
import org.thoughtcrime.securesms.R;
|
import org.thoughtcrime.securesms.R;
|
||||||
import org.thoughtcrime.securesms.ShareActivity;
|
import org.thoughtcrime.securesms.ShareActivity;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.jobs.StickerPackDownloadJob;
|
import org.thoughtcrime.securesms.jobs.StickerPackDownloadJob;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader;
|
import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader;
|
||||||
@ -162,9 +163,7 @@ public final class StickerPackPreviewActivity extends PassphraseRequiredActionBa
|
|||||||
|
|
||||||
installButton.setOnClickListener(v -> {
|
installButton.setOnClickListener(v -> {
|
||||||
SimpleTask.run(() -> {
|
SimpleTask.run(() -> {
|
||||||
ApplicationContext.getInstance(this)
|
ApplicationDependencies.getJobManager().add(new StickerPackDownloadJob(manifest.getPackId(), manifest.getPackKey(), false));
|
||||||
.getJobManager()
|
|
||||||
.add(new StickerPackDownloadJob(manifest.getPackId(), manifest.getPackKey(), false));
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}, (nothing) -> finish());
|
}, (nothing) -> finish());
|
||||||
|
@ -14,6 +14,8 @@ import android.provider.ContactsContract;
|
|||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
|
|
||||||
import com.annimon.stream.Collectors;
|
import com.annimon.stream.Collectors;
|
||||||
@ -81,9 +83,7 @@ public class DirectoryHelper {
|
|||||||
List<RecipientId> newlyActiveUsers = refreshDirectory(context, AccountManagerFactory.createManager(context));
|
List<RecipientId> newlyActiveUsers = refreshDirectory(context, AccountManagerFactory.createManager(context));
|
||||||
|
|
||||||
if (TextSecurePreferences.isMultiDevice(context)) {
|
if (TextSecurePreferences.isMultiDevice(context)) {
|
||||||
ApplicationContext.getInstance(context)
|
ApplicationDependencies.getJobManager().add(new MultiDeviceContactUpdateJob());
|
||||||
.getJobManager()
|
|
||||||
.add(new MultiDeviceContactUpdateJob());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (notifyOfNewUsers) notifyNewUsers(context, newlyActiveUsers);
|
if (notifyOfNewUsers) notifyNewUsers(context, newlyActiveUsers);
|
||||||
@ -349,7 +349,7 @@ public class DirectoryHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!activeUser && TextSecurePreferences.isMultiDevice(context)) {
|
if (!activeUser && TextSecurePreferences.isMultiDevice(context)) {
|
||||||
ApplicationContext.getInstance(context).getJobManager().add(new MultiDeviceContactUpdateJob());
|
ApplicationDependencies.getJobManager().add(new MultiDeviceContactUpdateJob());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!activeUser && systemContact && !TextSecurePreferences.getNeedsSqlCipherMigration(context)) {
|
if (!activeUser && systemContact && !TextSecurePreferences.getNeedsSqlCipherMigration(context)) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user