Revert "Fix dynamic language override for app context."

This reverts commit 75a19ada23f4fc0d5111fb74d234c7c6f48ba503.
fork-5.53.8
Rashad Sookram 2022-01-21 18:11:49 -05:00 zatwierdzone przez Greyson Parrelli
rodzic 78acc485fc
commit 35d0f1fc8c
25 zmienionych plików z 74 dodań i 76 usunięć

Wyświetl plik

@ -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 {

Wyświetl plik

@ -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 <T : ViewModel?> create(key: String, modelClass: Class<T>, 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!!

Wyświetl plik

@ -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 {

Wyświetl plik

@ -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<List<Media>> recentMedia;

Wyświetl plik

@ -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<Long> threadId = new MutableLiveData<>(-1L);
private final LiveData<Pair<Integer, Integer>> unreadCounts;

Wyświetl plik

@ -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<>();

Wyświetl plik

@ -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;

Wyświetl plik

@ -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) {

Wyświetl plik

@ -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) {

Wyświetl plik

@ -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;

Wyświetl plik

@ -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<Event> events = new SingleLiveEvent<>();

Wyświetl plik

@ -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;
}

Wyświetl plik

@ -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();

Wyświetl plik

@ -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<NetworkConstraint> {
private final Context application;
private final Application application;
public Factory(@NonNull Context application) {
public Factory(@NonNull Application application) {
this.application = application;
}

Wyświetl plik

@ -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<NetworkOrCellServiceConstraint> {
private final Context application;
private final Application application;
public Factory(@NonNull Context application) {
public Factory(@NonNull Application application) {
this.application = application;
}

Wyświetl plik

@ -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<SqlCipherMigrationConstraint> {
private final Context application;
private final Application application;
public Factory(@NonNull Context application) {
public Factory(@NonNull Application application) {
this.application = application;
}

Wyświetl plik

@ -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<String, Constraint.Factory> getConstraintFactories(@NonNull Context application) {
public static Map<String, Constraint.Factory> getConstraintFactories(@NonNull Application application) {
return new HashMap<String, Constraint.Factory>() {{
put(AutoDownloadEmojiConstraint.KEY, new AutoDownloadEmojiConstraint.Factory(application));
put(ChargingConstraint.KEY, new ChargingConstraint.Factory());

Wyświetl plik

@ -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);
}

Wyświetl plik

@ -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<LogLine>,
private val untilTime: Long
) :

Wyświetl plik

@ -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() {

Wyświetl plik

@ -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;

Wyświetl plik

@ -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<State> uiState;
private final SingleLiveEvent<Event> events;
private final UsernameEditRepository repo;

Wyświetl plik

@ -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;
}

Wyświetl plik

@ -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,

Wyświetl plik

@ -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);