diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 0e5a5d0654..53fe7fd3e3 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -38,58 +38,36 @@
-
-
-
-
-
-
-
-
-
+
+
-
+
-
-
+
-
-
+
-
-
-
+
+
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
@@ -612,11 +576,6 @@
-
-
-
-
-
-
-
-
fcmToken;
-
- if (gcmSupported) {
- fcmToken = FcmUtil.getToken();
- } else {
- fcmToken = Optional.absent();
- }
+ Optional fcmToken = Optional.absent();
accountManager = AccountManagerFactory.createManager(RegistrationActivity.this, e164number, password);
accountManager.requestSmsVerificationCode(smsRetrieverSupported, registrationState.captchaToken);
diff --git a/src/org/thoughtcrime/securesms/components/ConversationItemFooter.java b/src/org/thoughtcrime/securesms/components/ConversationItemFooter.java
index 00c50630d6..cf30ea76b9 100644
--- a/src/org/thoughtcrime/securesms/components/ConversationItemFooter.java
+++ b/src/org/thoughtcrime/securesms/components/ConversationItemFooter.java
@@ -1,6 +1,5 @@
package org.thoughtcrime.securesms.components;
-import android.Manifest;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.res.TypedArray;
@@ -14,22 +13,18 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import org.thoughtcrime.securesms.ApplicationContext;
-import network.loki.messenger.R;
import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.database.model.MessageRecord;
-import org.thoughtcrime.securesms.permissions.Permissions;
import org.thoughtcrime.securesms.service.ExpiringMessageManager;
import org.thoughtcrime.securesms.util.DateUtils;
-import org.thoughtcrime.securesms.util.dualsim.SubscriptionInfoCompat;
-import org.thoughtcrime.securesms.util.dualsim.SubscriptionManagerCompat;
-import org.whispersystems.libsignal.util.guava.Optional;
import java.util.Locale;
+import network.loki.messenger.R;
+
public class ConversationItemFooter extends LinearLayout {
private TextView dateView;
- private TextView simView;
private ExpirationTimerView timerView;
private ImageView insecureIndicatorView;
private DeliveryStatusView deliveryStatusView;
@@ -53,7 +48,6 @@ public class ConversationItemFooter extends LinearLayout {
inflate(getContext(), R.layout.conversation_item_footer, this);
dateView = findViewById(R.id.footer_date);
- simView = findViewById(R.id.footer_sim_info);
timerView = findViewById(R.id.footer_expiration_timer);
insecureIndicatorView = findViewById(R.id.footer_insecure_indicator);
deliveryStatusView = findViewById(R.id.footer_delivery_status);
@@ -74,7 +68,6 @@ public class ConversationItemFooter extends LinearLayout {
public void setMessageRecord(@NonNull MessageRecord messageRecord, @NonNull Locale locale) {
presentDate(messageRecord, locale);
- presentSimInfo(messageRecord);
presentTimer(messageRecord);
presentInsecureIndicator(messageRecord);
presentDeliveryStatus(messageRecord);
@@ -82,7 +75,6 @@ public class ConversationItemFooter extends LinearLayout {
public void setTextColor(int color) {
dateView.setTextColor(color);
- simView.setTextColor(color);
}
public void setIconColor(int color) {
@@ -103,26 +95,6 @@ public class ConversationItemFooter extends LinearLayout {
}
}
- private void presentSimInfo(@NonNull MessageRecord messageRecord) {
- SubscriptionManagerCompat subscriptionManager = new SubscriptionManagerCompat(getContext());
-
- if (messageRecord.isPush() || messageRecord.getSubscriptionId() == -1 || !Permissions.hasAll(getContext(), Manifest.permission.READ_PHONE_STATE) || !subscriptionManager.isMultiSim()) {
- simView.setVisibility(View.GONE);
- } else {
- Optional subscriptionInfo = subscriptionManager.getActiveSubscriptionInfo(messageRecord.getSubscriptionId());
-
- if (subscriptionInfo.isPresent() && messageRecord.isOutgoing()) {
- simView.setText(getContext().getString(R.string.ConversationItem_from_s, subscriptionInfo.get().getDisplayName()));
- simView.setVisibility(View.VISIBLE);
- } else if (subscriptionInfo.isPresent()) {
- simView.setText(getContext().getString(R.string.ConversationItem_to_s, subscriptionInfo.get().getDisplayName()));
- simView.setVisibility(View.VISIBLE);
- } else {
- simView.setVisibility(View.GONE);
- }
- }
- }
-
@SuppressLint("StaticFieldLeak")
private void presentTimer(@NonNull final MessageRecord messageRecord) {
if (messageRecord.getExpiresIn() > 0 && !messageRecord.isPending()) {
diff --git a/src/org/thoughtcrime/securesms/contacts/ContactsSyncAdapter.java b/src/org/thoughtcrime/securesms/contacts/ContactsSyncAdapter.java
deleted file mode 100644
index 71d3b790d1..0000000000
--- a/src/org/thoughtcrime/securesms/contacts/ContactsSyncAdapter.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.thoughtcrime.securesms.contacts;
-
-import android.accounts.Account;
-import android.content.AbstractThreadedSyncAdapter;
-import android.content.ContentProviderClient;
-import android.content.Context;
-import android.content.SyncResult;
-import android.os.Bundle;
-import org.thoughtcrime.securesms.logging.Log;
-
-import org.thoughtcrime.securesms.util.DirectoryHelper;
-import org.thoughtcrime.securesms.util.TextSecurePreferences;
-
-import java.io.IOException;
-
-public class ContactsSyncAdapter extends AbstractThreadedSyncAdapter {
-
- private static final String TAG = ContactsSyncAdapter.class.getSimpleName();
-
- public ContactsSyncAdapter(Context context, boolean autoInitialize) {
- super(context, autoInitialize);
- }
-
- @Override
- public void onPerformSync(Account account, Bundle extras, String authority,
- ContentProviderClient provider, SyncResult syncResult)
- {
- Log.i(TAG, "onPerformSync(" + authority +")");
-
- if (TextSecurePreferences.isPushRegistered(getContext())) {
- try {
- DirectoryHelper.refreshDirectory(getContext(), true);
- } catch (IOException e) {
- Log.w(TAG, e);
- }
- }
- }
-
- @Override
- public void onSyncCanceled() {
- Log.w(TAG, "onSyncCanceled()");
- }
-
- @Override
- public void onSyncCanceled(Thread thread) {
- Log.w(TAG, "onSyncCanceled(" + thread + ")");
- }
-
-}
diff --git a/src/org/thoughtcrime/securesms/dependencies/SignalCommunicationModule.java b/src/org/thoughtcrime/securesms/dependencies/SignalCommunicationModule.java
index c59224d481..9e1bf481f1 100644
--- a/src/org/thoughtcrime/securesms/dependencies/SignalCommunicationModule.java
+++ b/src/org/thoughtcrime/securesms/dependencies/SignalCommunicationModule.java
@@ -9,13 +9,11 @@ import org.thoughtcrime.securesms.DeviceListFragment;
import org.thoughtcrime.securesms.crypto.storage.SignalProtocolStoreImpl;
import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.events.ReminderUpdateEvent;
-import org.thoughtcrime.securesms.gcm.FcmService;
import org.thoughtcrime.securesms.jobs.AttachmentDownloadJob;
import org.thoughtcrime.securesms.jobs.AttachmentUploadJob;
import org.thoughtcrime.securesms.jobs.AvatarDownloadJob;
import org.thoughtcrime.securesms.jobs.CleanPreKeysJob;
import org.thoughtcrime.securesms.jobs.CreateSignedPreKeyJob;
-import org.thoughtcrime.securesms.jobs.FcmRefreshJob;
import org.thoughtcrime.securesms.jobs.MultiDeviceBlockedUpdateJob;
import org.thoughtcrime.securesms.jobs.MultiDeviceConfigurationUpdateJob;
import org.thoughtcrime.securesms.jobs.MultiDeviceContactUpdateJob;
@@ -86,7 +84,6 @@ import network.loki.messenger.BuildConfig;
MultiDeviceBlockedUpdateJob.class,
DeviceListFragment.class,
RefreshAttributesJob.class,
- FcmRefreshJob.class,
RequestGroupInfoJob.class,
PushGroupUpdateJob.class,
AvatarDownloadJob.class,
@@ -99,7 +96,6 @@ import network.loki.messenger.BuildConfig;
MultiDeviceProfileKeyUpdateJob.class,
SendReadReceiptJob.class,
AppProtectionPreferenceFragment.class,
- FcmService.class,
RotateCertificateJob.class,
SendDeliveryReceiptJob.class,
RotateProfileKeyJob.class,
diff --git a/src/org/thoughtcrime/securesms/gcm/FcmService.java b/src/org/thoughtcrime/securesms/gcm/FcmService.java
deleted file mode 100644
index cbb3da3807..0000000000
--- a/src/org/thoughtcrime/securesms/gcm/FcmService.java
+++ /dev/null
@@ -1,158 +0,0 @@
-package org.thoughtcrime.securesms.gcm;
-
-import android.content.Context;
-import android.os.PowerManager;
-import android.support.annotation.NonNull;
-
-import com.google.firebase.messaging.FirebaseMessagingService;
-import com.google.firebase.messaging.RemoteMessage;
-
-import org.thoughtcrime.securesms.ApplicationContext;
-import network.loki.messenger.R;
-import org.thoughtcrime.securesms.dependencies.InjectableType;
-import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint;
-import org.thoughtcrime.securesms.jobs.FcmRefreshJob;
-import org.thoughtcrime.securesms.jobs.PushNotificationReceiveJob;
-import org.thoughtcrime.securesms.logging.Log;
-import org.thoughtcrime.securesms.notifications.NotificationChannels;
-import org.thoughtcrime.securesms.service.GenericForegroundService;
-import org.thoughtcrime.securesms.util.PowerManagerCompat;
-import org.thoughtcrime.securesms.util.ServiceUtil;
-import org.thoughtcrime.securesms.util.TextSecurePreferences;
-import org.thoughtcrime.securesms.util.WakeLockUtil;
-import org.thoughtcrime.securesms.util.concurrent.SignalExecutors;
-import org.whispersystems.signalservice.api.SignalServiceMessageReceiver;
-import org.whispersystems.signalservice.internal.util.Util;
-
-import java.io.IOException;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.Executor;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import javax.inject.Inject;
-
-public class FcmService extends FirebaseMessagingService implements InjectableType {
-
- private static final String TAG = FcmService.class.getSimpleName();
-
- private static final Executor MESSAGE_EXECUTOR = SignalExecutors.newCachedSingleThreadExecutor("FcmMessageProcessing");
- private static final String WAKE_LOCK_TAG = "FcmMessageProcessing";
-
- @Inject SignalServiceMessageReceiver messageReceiver;
-
- private static int activeCount;
-
- @Override
- public void onMessageReceived(RemoteMessage remoteMessage) {
- Log.i(TAG, "FCM message... Original Priority: " + remoteMessage.getOriginalPriority() + ", Actual Priority: " + remoteMessage.getPriority());
- ApplicationContext.getInstance(getApplicationContext()).injectDependencies(this);
-
- WakeLockUtil.runWithLock(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK, 60000, WAKE_LOCK_TAG, () -> {
- handleReceivedNotification(getApplicationContext());
- });
- }
-
- @Override
- public void onNewToken(String token) {
- Log.i(TAG, "onNewToken()");
-
- if (!TextSecurePreferences.isPushRegistered(getApplicationContext())) {
- Log.i(TAG, "Got a new FCM token, but the user isn't registered.");
- return;
- }
-
- ApplicationContext.getInstance(getApplicationContext())
- .getJobManager()
- .add(new FcmRefreshJob());
- }
-
- private void handleReceivedNotification(Context context) {
- if (!incrementActiveGcmCount()) {
- Log.i(TAG, "Skipping FCM processing -- there's already one enqueued.");
- return;
- }
-
- TextSecurePreferences.setNeedsMessagePull(context, true);
-
- long startTime = System.currentTimeMillis();
- PowerManager powerManager = ServiceUtil.getPowerManager(getApplicationContext());
- boolean doze = PowerManagerCompat.isDeviceIdleMode(powerManager);
- boolean network = new NetworkConstraint.Factory(ApplicationContext.getInstance(context)).create().isMet();
-
- final Object foregroundLock = new Object();
- final AtomicBoolean foregroundRunning = new AtomicBoolean(false);
- final AtomicBoolean taskCompleted = new AtomicBoolean(false);
- final CountDownLatch latch = new CountDownLatch(1);
-
- if (doze || !network) {
- Log.i(TAG, "Starting a foreground task because we may be operating in a constrained environment. Doze: " + doze + " Network: " + network);
- showForegroundNotification(context);
- foregroundRunning.set(true);
- latch.countDown();
- }
-
- MESSAGE_EXECUTOR.execute(() -> {
- try {
- new PushNotificationReceiveJob(context).pullAndProcessMessages(messageReceiver, TAG, startTime);
- } catch (IOException e) {
- Log.i(TAG, "Failed to retrieve the envelope. Scheduling on JobManager.", e);
- ApplicationContext.getInstance(context)
- .getJobManager()
- .add(new PushNotificationReceiveJob(context));
- } finally {
- synchronized (foregroundLock) {
- if (foregroundRunning.getAndSet(false)) {
- GenericForegroundService.stopForegroundTask(context);
- } else {
- latch.countDown();
- }
- taskCompleted.set(true);
- }
-
- decrementActiveGcmCount();
- Log.i(TAG, "Processing complete.");
- }
- });
-
- if (!foregroundRunning.get()) {
- new Thread("FcmForegroundServiceTimer") {
- @Override
- public void run() {
- Util.sleep(7000);
- synchronized (foregroundLock) {
- if (!taskCompleted.get() && !foregroundRunning.getAndSet(true)) {
- Log.i(TAG, "Starting a foreground task because the job is running long.");
- showForegroundNotification(context);
- latch.countDown();
- }
- }
- }
- }.start();
- }
-
- try {
- latch.await();
- } catch (InterruptedException e) {
- Log.w(TAG, "Latch was interrupted.", e);
- }
- }
-
- private void showForegroundNotification(@NonNull Context context) {
- GenericForegroundService.startForegroundTask(context,
- context.getString(R.string.GcmBroadcastReceiver_retrieving_a_message),
- NotificationChannels.OTHER,
- R.drawable.ic_signal_downloading);
- }
-
- private static synchronized boolean incrementActiveGcmCount() {
- if (activeCount < 2) {
- activeCount++;
- return true;
- }
- return false;
- }
-
- private static synchronized void decrementActiveGcmCount() {
- activeCount--;
- }
-}
diff --git a/src/org/thoughtcrime/securesms/gcm/FcmUtil.java b/src/org/thoughtcrime/securesms/gcm/FcmUtil.java
deleted file mode 100644
index 2a2e2b04d5..0000000000
--- a/src/org/thoughtcrime/securesms/gcm/FcmUtil.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package org.thoughtcrime.securesms.gcm;
-
-import android.support.annotation.WorkerThread;
-import android.text.TextUtils;
-
-import com.google.firebase.iid.FirebaseInstanceId;
-
-import org.thoughtcrime.securesms.logging.Log;
-import org.whispersystems.libsignal.util.guava.Optional;
-
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.atomic.AtomicReference;
-
-public final class FcmUtil {
-
- private static final String TAG = FcmUtil.class.getSimpleName();
-
- /**
- * Retrieves the current FCM token. If one isn't available, it'll be generated.
- */
- @WorkerThread
- public static Optional getToken() {
- CountDownLatch latch = new CountDownLatch(1);
- AtomicReference token = new AtomicReference<>(null);
-
- FirebaseInstanceId.getInstance().getInstanceId().addOnCompleteListener(task -> {
- if (task.isSuccessful() && task.getResult() != null && !TextUtils.isEmpty(task.getResult().getToken())) {
- token.set(task.getResult().getToken());
- } else {
- Log.w(TAG, "Failed to get the token.", task.getException());
- }
-
- latch.countDown();
- });
-
- try {
- latch.await();
- } catch (InterruptedException e) {
- Log.w(TAG, "Was interrupted while waiting for the token.");
- }
-
- return Optional.fromNullable(token.get());
- }
-}
diff --git a/src/org/thoughtcrime/securesms/jobmanager/migration/WorkManagerFactoryMappings.java b/src/org/thoughtcrime/securesms/jobmanager/migration/WorkManagerFactoryMappings.java
index 156fdf9b0f..4957ebd72d 100644
--- a/src/org/thoughtcrime/securesms/jobmanager/migration/WorkManagerFactoryMappings.java
+++ b/src/org/thoughtcrime/securesms/jobmanager/migration/WorkManagerFactoryMappings.java
@@ -9,7 +9,6 @@ import org.thoughtcrime.securesms.jobs.AvatarDownloadJob;
import org.thoughtcrime.securesms.jobs.CleanPreKeysJob;
import org.thoughtcrime.securesms.jobs.CreateSignedPreKeyJob;
import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob;
-import org.thoughtcrime.securesms.jobs.FcmRefreshJob;
import org.thoughtcrime.securesms.jobs.LocalBackupJob;
import org.thoughtcrime.securesms.jobs.MmsDownloadJob;
import org.thoughtcrime.securesms.jobs.MmsReceiveJob;
@@ -59,7 +58,6 @@ public class WorkManagerFactoryMappings {
put(CleanPreKeysJob.class.getName(), CleanPreKeysJob.KEY);
put(CreateSignedPreKeyJob.class.getName(), CreateSignedPreKeyJob.KEY);
put(DirectoryRefreshJob.class.getName(), DirectoryRefreshJob.KEY);
- put(FcmRefreshJob.class.getName(), FcmRefreshJob.KEY);
put(LocalBackupJob.class.getName(), LocalBackupJob.KEY);
put(MmsDownloadJob.class.getName(), MmsDownloadJob.KEY);
put(MmsReceiveJob.class.getName(), MmsReceiveJob.KEY);
diff --git a/src/org/thoughtcrime/securesms/jobs/FcmRefreshJob.java b/src/org/thoughtcrime/securesms/jobs/FcmRefreshJob.java
deleted file mode 100644
index 2f63316d2a..0000000000
--- a/src/org/thoughtcrime/securesms/jobs/FcmRefreshJob.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/**
- * Copyright (C) 2014 Open Whisper Systems
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package org.thoughtcrime.securesms.jobs;
-
-import android.app.NotificationManager;
-import android.app.PendingIntent;
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.BitmapFactory;
-import android.support.annotation.NonNull;
-import android.support.v4.app.NotificationCompat;
-
-import com.google.android.gms.common.ConnectionResult;
-import com.google.android.gms.common.GoogleApiAvailability;
-
-import org.thoughtcrime.securesms.gcm.FcmUtil;
-import org.thoughtcrime.securesms.jobmanager.Data;
-import org.thoughtcrime.securesms.jobmanager.Job;
-import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint;
-import org.thoughtcrime.securesms.logging.Log;
-
-import org.thoughtcrime.securesms.PlayServicesProblemActivity;
-import network.loki.messenger.R;
-import org.thoughtcrime.securesms.dependencies.InjectableType;
-import org.thoughtcrime.securesms.notifications.NotificationChannels;
-import org.thoughtcrime.securesms.transport.RetryLaterException;
-import org.thoughtcrime.securesms.util.TextSecurePreferences;
-import org.whispersystems.libsignal.util.guava.Optional;
-import org.whispersystems.signalservice.api.SignalServiceAccountManager;
-import org.whispersystems.signalservice.api.push.exceptions.NonSuccessfulResponseCodeException;
-
-import java.io.IOException;
-import java.util.concurrent.TimeUnit;
-
-import javax.inject.Inject;
-
-public class FcmRefreshJob extends BaseJob implements InjectableType {
-
- public static final String KEY = "FcmRefreshJob";
-
- private static final String TAG = FcmRefreshJob.class.getSimpleName();
-
- @Inject SignalServiceAccountManager textSecureAccountManager;
-
- public FcmRefreshJob() {
- this(new Job.Parameters.Builder()
- .setQueue("FcmRefreshJob")
- .addConstraint(NetworkConstraint.KEY)
- .setMaxAttempts(1)
- .setLifespan(TimeUnit.MINUTES.toMillis(5))
- .setMaxInstances(1)
- .build());
- }
-
- private FcmRefreshJob(@NonNull Job.Parameters parameters) {
- super(parameters);
- }
-
- @Override
- public @NonNull Data serialize() {
- return Data.EMPTY;
- }
-
- @Override
- public @NonNull String getFactoryKey() {
- return KEY;
- }
-
- @Override
- public void onRun() throws Exception {
- if (TextSecurePreferences.isFcmDisabled(context)) return;
-
- Log.i(TAG, "Reregistering FCM...");
-
- int result = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(context);
-
- if (result != ConnectionResult.SUCCESS) {
- notifyFcmFailure();
- } else {
- Optional token = FcmUtil.getToken();
-
- if (token.isPresent()) {
- String oldToken = TextSecurePreferences.getFcmToken(context);
-
- if (!token.get().equals(oldToken)) {
- int oldLength = oldToken != null ? oldToken.length() : -1;
- Log.i(TAG, "Token changed. oldLength: " + oldLength + " newLength: " + token.get().length());
- } else {
- Log.i(TAG, "Token didn't change.");
- }
-
- textSecureAccountManager.setGcmId(token);
- TextSecurePreferences.setFcmToken(context, token.get());
- TextSecurePreferences.setFcmTokenLastSetTime(context, System.currentTimeMillis());
- TextSecurePreferences.setWebsocketRegistered(context, true);
- } else {
- throw new RetryLaterException(new IOException("Failed to retrieve a token."));
- }
- }
- }
-
- @Override
- public void onCanceled() {
- Log.w(TAG, "GCM reregistration failed after retry attempt exhaustion!");
- }
-
- @Override
- public boolean onShouldRetry(@NonNull Exception throwable) {
- if (throwable instanceof NonSuccessfulResponseCodeException) return false;
- return true;
- }
-
- private void notifyFcmFailure() {
- Intent intent = new Intent(context, PlayServicesProblemActivity.class);
- PendingIntent pendingIntent = PendingIntent.getActivity(context, 1122, intent, PendingIntent.FLAG_CANCEL_CURRENT);
- NotificationCompat.Builder builder = new NotificationCompat.Builder(context, NotificationChannels.FAILURES);
-
- builder.setSmallIcon(R.drawable.ic_notification);
- builder.setLargeIcon(BitmapFactory.decodeResource(context.getResources(),
- R.drawable.ic_action_warning_red));
- builder.setContentTitle(context.getString(R.string.GcmRefreshJob_Permanent_Signal_communication_failure));
- builder.setContentText(context.getString(R.string.GcmRefreshJob_Signal_was_unable_to_register_with_Google_Play_Services));
- builder.setTicker(context.getString(R.string.GcmRefreshJob_Permanent_Signal_communication_failure));
- builder.setVibrate(new long[] {0, 1000});
- builder.setContentIntent(pendingIntent);
-
- ((NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE))
- .notify(12, builder.build());
- }
-
- public static final class Factory implements Job.Factory {
- @Override
- public @NonNull FcmRefreshJob create(@NonNull Parameters parameters, @NonNull Data data) {
- return new FcmRefreshJob(parameters);
- }
- }
-}
diff --git a/src/org/thoughtcrime/securesms/jobs/JobManagerFactories.java b/src/org/thoughtcrime/securesms/jobs/JobManagerFactories.java
index cfa9aa7beb..266d6194df 100644
--- a/src/org/thoughtcrime/securesms/jobs/JobManagerFactories.java
+++ b/src/org/thoughtcrime/securesms/jobs/JobManagerFactories.java
@@ -31,7 +31,6 @@ public final class JobManagerFactories {
put(CleanPreKeysJob.KEY, new CleanPreKeysJob.Factory());
put(CreateSignedPreKeyJob.KEY, new CreateSignedPreKeyJob.Factory());
put(DirectoryRefreshJob.KEY, new DirectoryRefreshJob.Factory(application));
- put(FcmRefreshJob.KEY, new FcmRefreshJob.Factory());
put(LocalBackupJob.KEY, new LocalBackupJob.Factory());
put(MmsDownloadJob.KEY, new MmsDownloadJob.Factory());
put(MmsReceiveJob.KEY, new MmsReceiveJob.Factory());
diff --git a/src/org/thoughtcrime/securesms/service/ContactsSyncAdapterService.java b/src/org/thoughtcrime/securesms/service/ContactsSyncAdapterService.java
deleted file mode 100644
index c162d9104d..0000000000
--- a/src/org/thoughtcrime/securesms/service/ContactsSyncAdapterService.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.thoughtcrime.securesms.service;
-
-import android.app.Service;
-import android.content.Intent;
-import android.os.IBinder;
-import android.support.annotation.Nullable;
-
-import org.thoughtcrime.securesms.contacts.ContactsSyncAdapter;
-
-public class ContactsSyncAdapterService extends Service {
-
- private static ContactsSyncAdapter syncAdapter;
-
- @Override
- public synchronized void onCreate() {
- if (syncAdapter == null) {
- syncAdapter = new ContactsSyncAdapter(this, true);
- }
- }
-
- @Nullable
- @Override
- public IBinder onBind(Intent intent) {
- return syncAdapter.getSyncAdapterBinder();
- }
-}