diff --git a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java index a86eecafc..fc6af695a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java @@ -35,22 +35,24 @@ import org.signal.core.util.logging.AndroidLogger; import org.signal.core.util.logging.Log; import org.signal.core.util.tracing.Tracer; import org.signal.glide.SignalGlideCodecs; +import org.thoughtcrime.securesms.emoji.JumboEmoji; +import org.thoughtcrime.securesms.mms.SignalGlideModule; import org.signal.ringrtc.CallManager; import org.thoughtcrime.securesms.avatar.AvatarPickerStorage; import org.thoughtcrime.securesms.crypto.AttachmentSecretProvider; import org.thoughtcrime.securesms.crypto.DatabaseSecretProvider; import org.thoughtcrime.securesms.database.LogDatabase; -import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.SqlCipherLibraryLoader; +import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; import org.thoughtcrime.securesms.dependencies.ApplicationDependencyProvider; import org.thoughtcrime.securesms.emoji.EmojiSource; -import org.thoughtcrime.securesms.emoji.JumboEmoji; import org.thoughtcrime.securesms.gcm.FcmJobService; import org.thoughtcrime.securesms.jobs.CreateSignedPreKeyJob; import org.thoughtcrime.securesms.jobs.DownloadLatestEmojiDataJob; import org.thoughtcrime.securesms.jobs.EmojiSearchIndexDownloadJob; import org.thoughtcrime.securesms.jobs.FcmRefreshJob; +import org.thoughtcrime.securesms.jobs.GroupV1MigrationJob; import org.thoughtcrime.securesms.jobs.MultiDeviceContactUpdateJob; import org.thoughtcrime.securesms.jobs.ProfileUploadJob; import org.thoughtcrime.securesms.jobs.PushNotificationReceiveJob; @@ -63,7 +65,6 @@ import org.thoughtcrime.securesms.logging.PersistentLogger; import org.thoughtcrime.securesms.messageprocessingalarm.MessageProcessReceiver; import org.thoughtcrime.securesms.migrations.ApplicationMigrations; import org.thoughtcrime.securesms.mms.SignalGlideComponents; -import org.thoughtcrime.securesms.mms.SignalGlideModule; import org.thoughtcrime.securesms.notifications.NotificationChannels; import org.thoughtcrime.securesms.providers.BlobProvider; import org.thoughtcrime.securesms.ratelimit.RateLimitUtil; @@ -89,6 +90,7 @@ import org.thoughtcrime.securesms.util.VersionTracker; import org.thoughtcrime.securesms.util.dynamiclanguage.DynamicLanguageContextWrapper; import org.whispersystems.libsignal.logging.SignalProtocolLoggerProvider; +import java.io.IOException; import java.net.SocketException; import java.net.SocketTimeoutException; import java.security.Security; @@ -469,7 +471,8 @@ public class ApplicationContext extends MultiDexApplication implements AppForegr @Override protected void attachBaseContext(Context base) { - super.attachBaseContext(DynamicLanguageContextWrapper.getUpdatedApplicationContext(base)); + DynamicLanguageContextWrapper.updateContext(base); + super.attachBaseContext(base); } private static class ProviderInitializationException extends RuntimeException { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/changenumber/ChangeNumberViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/changenumber/ChangeNumberViewModel.kt index eb3ae92d0..25eae29e2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/changenumber/ChangeNumberViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/changenumber/ChangeNumberViewModel.kt @@ -1,6 +1,6 @@ package org.thoughtcrime.securesms.components.settings.app.changenumber -import android.content.Context +import android.app.Application import androidx.annotation.WorkerThread import androidx.lifecycle.AbstractSavedStateViewModelFactory import androidx.lifecycle.LiveData @@ -165,7 +165,7 @@ class ChangeNumberViewModel( class Factory(owner: SavedStateRegistryOwner) : AbstractSavedStateViewModelFactory(owner, null) { override fun create(key: String, modelClass: Class, handle: SavedStateHandle): T { - val context: Context = ApplicationDependencies.getApplication() + val context: Application = ApplicationDependencies.getApplication() val localNumber: String = SignalStore.account().e164!! val password: String = SignalStore.account().servicePassword!! diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationGroupViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationGroupViewModel.java index 96b1b9800..7dd279259 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationGroupViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationGroupViewModel.java @@ -1,6 +1,6 @@ package org.thoughtcrime.securesms.conversation; -import android.content.Context; +import android.app.Application; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -117,7 +117,7 @@ final class ConversationGroupViewModel extends ViewModel { private static @Nullable GroupRecord getGroupRecordForRecipient(@Nullable Recipient recipient) { if (recipient != null && recipient.isGroup()) { - Context context = ApplicationDependencies.getApplication(); + Application context = ApplicationDependencies.getApplication(); GroupDatabase groupDatabase = SignalDatabase.groups(); return groupDatabase.getGroup(recipient.getId()).orNull(); } else { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationViewModel.java index 3749a6424..243dd3f6d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationViewModel.java @@ -1,6 +1,6 @@ package org.thoughtcrime.securesms.conversation; -import android.content.Context; +import android.app.Application; import androidx.annotation.MainThread; import androidx.annotation.NonNull; @@ -66,7 +66,7 @@ public class ConversationViewModel extends ViewModel { private static final String TAG = Log.tag(ConversationViewModel.class); - private final Context context; + private final Application context; private final MediaRepository mediaRepository; private final ConversationRepository conversationRepository; private final MutableLiveData> recentMedia; diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/MessageCountsViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/MessageCountsViewModel.java index 23d73d4d7..b02b1969e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/MessageCountsViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/MessageCountsViewModel.java @@ -1,5 +1,6 @@ package org.thoughtcrime.securesms.conversation; +import android.app.Application; import android.content.Context; import androidx.annotation.NonNull; @@ -22,7 +23,7 @@ public class MessageCountsViewModel extends ViewModel { private static final Executor EXECUTOR = new SerialMonoLifoExecutor(SignalExecutors.BOUNDED); - private final Context context; + private final Application context; private final MutableLiveData threadId = new MutableLiveData<>(-1L); private final LiveData> unreadCounts; diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListViewModel.java index ea98f44c5..f50a9ee43 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListViewModel.java @@ -1,6 +1,6 @@ package org.thoughtcrime.securesms.conversationlist; -import android.content.Context; +import android.app.Application; import android.text.TextUtils; import androidx.annotation.NonNull; @@ -79,7 +79,7 @@ class ConversationListViewModel extends ViewModel { private SearchResult activeSearchResult; private int pinnedCount; - private ConversationListViewModel(@NonNull Context application, @NonNull SearchRepository searchRepository, boolean isArchived) { + private ConversationListViewModel(@NonNull Application application, @NonNull SearchRepository searchRepository, boolean isArchived) { this.megaphone = new MutableLiveData<>(); this.searchResult = new MutableLiveData<>(); this.internalSelection = new HashSet<>(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/KeyValueDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/KeyValueDatabase.java index a2466ee78..e4fc82e92 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/KeyValueDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/KeyValueDatabase.java @@ -2,7 +2,6 @@ package org.thoughtcrime.securesms.database; import android.app.Application; import android.content.ContentValues; -import android.content.Context; import android.database.Cursor; import androidx.annotation.NonNull; @@ -47,9 +46,9 @@ public class KeyValueDatabase extends SQLiteOpenHelper implements SignalDatabase private static volatile KeyValueDatabase instance; - private final Context application; + private final Application application; - public static @NonNull KeyValueDatabase getInstance(@NonNull Context context) { + public static @NonNull KeyValueDatabase getInstance(@NonNull Application context) { if (instance == null) { synchronized (KeyValueDatabase.class) { if (instance == null) { @@ -61,7 +60,7 @@ public class KeyValueDatabase extends SQLiteOpenHelper implements SignalDatabase return instance; } - private KeyValueDatabase(@NonNull Context application, @NonNull DatabaseSecret databaseSecret) { + private KeyValueDatabase(@NonNull Application application, @NonNull DatabaseSecret databaseSecret) { super(application, DATABASE_NAME, databaseSecret.asString(), null, DATABASE_VERSION, 0,new SqlCipherErrorHandler(DATABASE_NAME), new SqlCipherDatabaseHook()); this.application = application; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/LocalMetricsDatabase.kt b/app/src/main/java/org/thoughtcrime/securesms/database/LocalMetricsDatabase.kt index fbbe622fe..ef7fc05b1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/LocalMetricsDatabase.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/LocalMetricsDatabase.kt @@ -1,8 +1,8 @@ package org.thoughtcrime.securesms.database import android.annotation.SuppressLint +import android.app.Application import android.content.ContentValues -import android.content.Context import net.zetetic.database.sqlcipher.SQLiteDatabase import net.zetetic.database.sqlcipher.SQLiteOpenHelper import org.signal.core.util.logging.Log @@ -24,7 +24,7 @@ import java.util.concurrent.TimeUnit * This is it's own separate physical database, so it cannot do joins or queries with any other tables. */ class LocalMetricsDatabase private constructor( - application: Context, + application: Application, databaseSecret: DatabaseSecret ) : SQLiteOpenHelper( @@ -77,7 +77,7 @@ class LocalMetricsDatabase private constructor( private var instance: LocalMetricsDatabase? = null @JvmStatic - fun getInstance(context: Context): LocalMetricsDatabase { + fun getInstance(context: Application): LocalMetricsDatabase { if (instance == null) { synchronized(LocalMetricsDatabase::class.java) { if (instance == null) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/LogDatabase.kt b/app/src/main/java/org/thoughtcrime/securesms/database/LogDatabase.kt index 42e357e79..60821caba 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/LogDatabase.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/LogDatabase.kt @@ -1,8 +1,8 @@ package org.thoughtcrime.securesms.database import android.annotation.SuppressLint +import android.app.Application import android.content.ContentValues -import android.content.Context import android.database.Cursor import net.zetetic.database.sqlcipher.SQLiteDatabase import net.zetetic.database.sqlcipher.SQLiteOpenHelper @@ -26,7 +26,7 @@ import java.util.concurrent.TimeUnit * This is it's own separate physical database, so it cannot do joins or queries with any other tables. */ class LogDatabase private constructor( - application: Context, + application: Application, databaseSecret: DatabaseSecret ) : SQLiteOpenHelper( @@ -78,7 +78,7 @@ class LogDatabase private constructor( private var instance: LogDatabase? = null @JvmStatic - fun getInstance(context: Context): LogDatabase { + fun getInstance(context: Application): LogDatabase { if (instance == null) { synchronized(LogDatabase::class.java) { if (instance == null) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencies.java b/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencies.java index 8904b9d3a..cec7009e4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencies.java +++ b/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencies.java @@ -1,7 +1,6 @@ package org.thoughtcrime.securesms.dependencies; import android.app.Application; -import android.content.Context; import androidx.annotation.MainThread; import androidx.annotation.NonNull; @@ -43,9 +42,8 @@ import org.thoughtcrime.securesms.util.EarlyMessageCache; import org.thoughtcrime.securesms.util.FrameRateTracker; import org.thoughtcrime.securesms.util.Hex; import org.thoughtcrime.securesms.util.IasKeyStore; -import org.thoughtcrime.securesms.util.dynamiclanguage.DynamicLanguageContextWrapper; -import org.thoughtcrime.securesms.video.exo.GiphyMp4Cache; import org.thoughtcrime.securesms.video.exo.SimpleExoPlayerPool; +import org.thoughtcrime.securesms.video.exo.GiphyMp4Cache; import org.thoughtcrime.securesms.webrtc.audio.AudioManagerCompat; import org.whispersystems.signalservice.api.KeyBackupService; import org.whispersystems.signalservice.api.SignalServiceAccountManager; @@ -71,7 +69,7 @@ public class ApplicationDependencies { private static final Object FRAME_RATE_TRACKER_LOCK = new Object(); private static final Object JOB_MANAGER_LOCK = new Object(); - private static Context application; + private static Application application; private static Provider provider; private static AppForegroundObserver appForegroundObserver; @@ -134,14 +132,10 @@ public class ApplicationDependencies { return ApplicationDependencies.application != null; } - public static @NonNull Context getApplication() { + public static @NonNull Application getApplication() { return application; } - public static void updateApplicationLanguage() { - application = DynamicLanguageContextWrapper.getUpdatedApplicationContext(application); - } - public static @NonNull SignalServiceAccountManager getSignalServiceAccountManager() { SignalServiceAccountManager local = accountManager; diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addtogroup/AddToGroupViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addtogroup/AddToGroupViewModel.java index bffc93445..cf998a73b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addtogroup/AddToGroupViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addtogroup/AddToGroupViewModel.java @@ -1,6 +1,6 @@ package org.thoughtcrime.securesms.groups.ui.addtogroup; -import android.content.Context; +import android.app.Application; import androidx.annotation.NonNull; import androidx.lifecycle.ViewModel; @@ -19,7 +19,7 @@ import java.util.Objects; public final class AddToGroupViewModel extends ViewModel { - private final Context context; + private final Application context; private final AddToGroupRepository repository; private final RecipientId recipientId; private final SingleLiveEvent events = new SingleLiveEvent<>(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/chooseadmin/ChooseNewAdminRepository.java b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/chooseadmin/ChooseNewAdminRepository.java index 6b3eafbd3..4aa165904 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/chooseadmin/ChooseNewAdminRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/chooseadmin/ChooseNewAdminRepository.java @@ -1,6 +1,6 @@ package org.thoughtcrime.securesms.groups.ui.chooseadmin; -import android.content.Context; +import android.app.Application; import androidx.annotation.NonNull; import androidx.annotation.WorkerThread; @@ -16,9 +16,9 @@ import java.io.IOException; import java.util.List; public final class ChooseNewAdminRepository { - private final Context context; + private final Application context; - ChooseNewAdminRepository(@NonNull Context context) { + ChooseNewAdminRepository(@NonNull Application context) { this.context = context; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/CellServiceConstraintObserver.java b/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/CellServiceConstraintObserver.java index fd01dc76d..80ca8b4d3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/CellServiceConstraintObserver.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/CellServiceConstraintObserver.java @@ -1,5 +1,6 @@ package org.thoughtcrime.securesms.jobmanager.impl; +import android.app.Application; import android.content.Context; import android.telephony.PhoneStateListener; import android.telephony.ServiceState; @@ -20,7 +21,7 @@ public class CellServiceConstraintObserver implements ConstraintObserver { private static volatile CellServiceConstraintObserver instance; - public static CellServiceConstraintObserver getInstance(@NonNull Context application) { + public static CellServiceConstraintObserver getInstance(@NonNull Application application) { if (instance == null) { synchronized (CellServiceConstraintObserver.class) { if (instance == null) { @@ -31,7 +32,7 @@ public class CellServiceConstraintObserver implements ConstraintObserver { return instance; } - private CellServiceConstraintObserver(@NonNull Context application) { + private CellServiceConstraintObserver(@NonNull Application application) { TelephonyManager telephonyManager = (TelephonyManager) application.getSystemService(Context.TELEPHONY_SERVICE); ServiceStateListener serviceStateListener = new ServiceStateListener(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/NetworkConstraint.java b/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/NetworkConstraint.java index dbe9ab9e5..493223e8d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/NetworkConstraint.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/NetworkConstraint.java @@ -1,11 +1,13 @@ package org.thoughtcrime.securesms.jobmanager.impl; +import android.app.Application; import android.app.job.JobInfo; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import org.thoughtcrime.securesms.jobmanager.Constraint; @@ -14,9 +16,9 @@ public class NetworkConstraint implements Constraint { public static final String KEY = "NetworkConstraint"; - private final Context application; + private final Application application; - private NetworkConstraint(@NonNull Context application) { + private NetworkConstraint(@NonNull Application application) { this.application = application; } @@ -51,9 +53,9 @@ public class NetworkConstraint implements Constraint { public static final class Factory implements Constraint.Factory { - private final Context application; + private final Application application; - public Factory(@NonNull Context application) { + public Factory(@NonNull Application application) { this.application = application; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/NetworkOrCellServiceConstraint.java b/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/NetworkOrCellServiceConstraint.java index 2d2c741a0..fea29c4c3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/NetworkOrCellServiceConstraint.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/NetworkOrCellServiceConstraint.java @@ -1,7 +1,7 @@ package org.thoughtcrime.securesms.jobmanager.impl; +import android.app.Application; import android.app.job.JobInfo; -import android.content.Context; import androidx.annotation.NonNull; @@ -13,10 +13,10 @@ public class NetworkOrCellServiceConstraint implements Constraint { public static final String KEY = "NetworkOrCellServiceConstraint"; public static final String LEGACY_KEY = "CellServiceConstraint"; - private final Context application; + private final Application application; private final NetworkConstraint networkConstraint; - private NetworkOrCellServiceConstraint(@NonNull Context application) { + private NetworkOrCellServiceConstraint(@NonNull Application application) { this.application = application; this.networkConstraint = new NetworkConstraint.Factory(application).create(); } @@ -39,15 +39,15 @@ public class NetworkOrCellServiceConstraint implements Constraint { public void applyToJobInfo(@NonNull JobInfo.Builder jobInfoBuilder) { } - private static boolean hasCellService(@NonNull Context application) { + private static boolean hasCellService(@NonNull Application application) { return CellServiceConstraintObserver.getInstance(application).hasService(); } public static class Factory implements Constraint.Factory { - private final Context application; + private final Application application; - public Factory(@NonNull Context application) { + public Factory(@NonNull Application application) { this.application = application; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/SqlCipherMigrationConstraint.java b/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/SqlCipherMigrationConstraint.java index a6945e575..ee624cf54 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/SqlCipherMigrationConstraint.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/SqlCipherMigrationConstraint.java @@ -1,7 +1,7 @@ package org.thoughtcrime.securesms.jobmanager.impl; +import android.app.Application; import android.app.job.JobInfo; -import android.content.Context; import androidx.annotation.NonNull; @@ -12,9 +12,9 @@ public class SqlCipherMigrationConstraint implements Constraint { public static final String KEY = "SqlCipherMigrationConstraint"; - private final Context application; + private final Application application; - private SqlCipherMigrationConstraint(@NonNull Context application) { + private SqlCipherMigrationConstraint(@NonNull Application application) { this.application = application; } @@ -35,9 +35,9 @@ public class SqlCipherMigrationConstraint implements Constraint { public static final class Factory implements Constraint.Factory { - private final Context application; + private final Application application; - public Factory(@NonNull Context application) { + public Factory(@NonNull Application application) { this.application = application; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/JobManagerFactories.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/JobManagerFactories.java index 3bce7a075..67b414e08 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/JobManagerFactories.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/JobManagerFactories.java @@ -1,7 +1,6 @@ package org.thoughtcrime.securesms.jobs; import android.app.Application; -import android.content.Context; import androidx.annotation.NonNull; @@ -227,7 +226,7 @@ public final class JobManagerFactories { }}; } - public static Map getConstraintFactories(@NonNull Context application) { + public static Map getConstraintFactories(@NonNull Application application) { return new HashMap() {{ put(AutoDownloadEmojiConstraint.KEY, new AutoDownloadEmojiConstraint.Factory(application)); put(ChargingConstraint.KEY, new ChargingConstraint.Factory()); diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SettingsValues.java b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SettingsValues.java index e39bdf4cc..c601f7820 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SettingsValues.java +++ b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SettingsValues.java @@ -203,7 +203,6 @@ public final class SettingsValues extends SignalStoreValues { public void setLanguage(@NonNull String language) { TextSecurePreferences.setLanguage(ApplicationDependencies.getApplication(), language); - ApplicationDependencies.updateApplicationLanguage(); onConfigurationSettingChanged.postValue(LANGUAGE); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogDataSource.kt b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogDataSource.kt index 759360fe6..43bb00768 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogDataSource.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogDataSource.kt @@ -1,6 +1,6 @@ package org.thoughtcrime.securesms.logsubmit -import android.content.Context +import android.app.Application import org.signal.paging.PagedDataSource import org.thoughtcrime.securesms.database.LogDatabase import org.thoughtcrime.securesms.logsubmit.util.Scrubber @@ -13,7 +13,7 @@ import java.lang.UnsupportedOperationException * @param untilTime Only show logs before this time. This is our way of making sure the set of logs we show on this screen doesn't grow. */ class LogDataSource( - application: Context, + application: Application, private val prefixLines: List, private val untilTime: Long ) : diff --git a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/SubmitDebugLogRepository.java b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/SubmitDebugLogRepository.java index 2a85ab8e5..c20b5cda2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/SubmitDebugLogRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/SubmitDebugLogRepository.java @@ -1,9 +1,11 @@ package org.thoughtcrime.securesms.logsubmit; +import android.app.Application; import android.content.Context; import android.net.Uri; import android.os.Build; import android.os.ParcelFileDescriptor; +import android.os.SystemClock; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -23,16 +25,20 @@ import org.thoughtcrime.securesms.logsubmit.util.Scrubber; import org.thoughtcrime.securesms.net.StandardUserAgentInterceptor; import org.thoughtcrime.securesms.providers.BlobProvider; import org.thoughtcrime.securesms.push.SignalServiceNetworkAccess; +import org.thoughtcrime.securesms.util.ByteUnit; import org.thoughtcrime.securesms.util.FeatureFlags; import org.thoughtcrime.securesms.util.Stopwatch; +import org.thoughtcrime.securesms.util.Util; import org.whispersystems.libsignal.util.guava.Optional; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; +import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.concurrent.ExecutorService; +import java.util.concurrent.TimeUnit; import java.util.regex.Pattern; import java.util.zip.GZIPOutputStream; @@ -91,7 +97,7 @@ public class SubmitDebugLogRepository { add(new LogSectionLoggerHeader()); }}; - private final Context context; + private final Application context; private final ExecutorService executor; public SubmitDebugLogRepository() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditRepository.java b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditRepository.java index feb2ec279..69390ceb4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditRepository.java @@ -1,6 +1,6 @@ package org.thoughtcrime.securesms.profiles.manage; -import android.content.Context; +import android.app.Application; import androidx.annotation.NonNull; import androidx.annotation.WorkerThread; @@ -21,7 +21,7 @@ class UsernameEditRepository { private static final String TAG = Log.tag(UsernameEditRepository.class); - private final Context application; + private final Application application; private final SignalServiceAccountManager accountManager; private final Executor executor; diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditViewModel.java index d92e7ad79..13ff7099d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditViewModel.java @@ -1,6 +1,6 @@ package org.thoughtcrime.securesms.profiles.manage; -import android.content.Context; +import android.app.Application; import android.text.TextUtils; import androidx.annotation.NonNull; @@ -22,7 +22,7 @@ class UsernameEditViewModel extends ViewModel { private static final String TAG = Log.tag(UsernameEditViewModel.class); - private final Context application; + private final Application application; private final MutableLiveData uiState; private final SingleLiveEvent events; private final UsernameEditRepository repo; diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/RegistrationRepository.java b/app/src/main/java/org/thoughtcrime/securesms/registration/RegistrationRepository.java index f505859ba..75ae1434f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/RegistrationRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/RegistrationRepository.java @@ -1,5 +1,6 @@ package org.thoughtcrime.securesms.registration; +import android.app.Application; import android.content.Context; import androidx.annotation.NonNull; @@ -57,9 +58,9 @@ public final class RegistrationRepository { private static final String TAG = Log.tag(RegistrationRepository.class); - private final Context context; + private final Application context; - public RegistrationRepository(@NonNull Context context) { + public RegistrationRepository(@NonNull Application context) { this.context = context; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/VerifyAccountRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/registration/VerifyAccountRepository.kt index f76550f84..bd40b8bfe 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/VerifyAccountRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/VerifyAccountRepository.kt @@ -1,6 +1,6 @@ package org.thoughtcrime.securesms.registration -import android.content.Context +import android.app.Application import io.reactivex.rxjava3.core.Single import io.reactivex.rxjava3.schedulers.Schedulers import org.signal.core.util.logging.Log @@ -28,7 +28,7 @@ import java.util.concurrent.TimeUnit /** * Request SMS/Phone verification codes to help prove ownership of a phone number. */ -class VerifyAccountRepository(private val context: Context) { +class VerifyAccountRepository(private val context: Application) { fun requestVerificationCode( e164: String, diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/dynamiclanguage/DynamicLanguageContextWrapper.java b/app/src/main/java/org/thoughtcrime/securesms/util/dynamiclanguage/DynamicLanguageContextWrapper.java index b16de8deb..47e6fe5fb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/dynamiclanguage/DynamicLanguageContextWrapper.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/dynamiclanguage/DynamicLanguageContextWrapper.java @@ -28,14 +28,7 @@ public final class DynamicLanguageContextWrapper { return LocaleParser.findBestMatchingLocaleForLanguage(language); } - public static @NonNull Context getUpdatedApplicationContext(@NonNull Context base) { - updateContext(base); - - Configuration configuration = base.getResources().getConfiguration(); - return base.createConfigurationContext(configuration); - } - - private static void updateContext(@NonNull Context base) { + public static void updateContext(@NonNull Context base) { Configuration config = base.getResources().getConfiguration(); prepareOverrideConfiguration(base, config);