kopia lustrzana https://github.com/ryukoposting/Signal-Android
Revert "Fix dynamic language override for app context."
This reverts commit 75a19ada23f4fc0d5111fb74d234c7c6f48ba503.fork-5.53.8
rodzic
78acc485fc
commit
35d0f1fc8c
|
@ -35,22 +35,24 @@ import org.signal.core.util.logging.AndroidLogger;
|
||||||
import org.signal.core.util.logging.Log;
|
import org.signal.core.util.logging.Log;
|
||||||
import org.signal.core.util.tracing.Tracer;
|
import org.signal.core.util.tracing.Tracer;
|
||||||
import org.signal.glide.SignalGlideCodecs;
|
import org.signal.glide.SignalGlideCodecs;
|
||||||
|
import org.thoughtcrime.securesms.emoji.JumboEmoji;
|
||||||
|
import org.thoughtcrime.securesms.mms.SignalGlideModule;
|
||||||
import org.signal.ringrtc.CallManager;
|
import org.signal.ringrtc.CallManager;
|
||||||
import org.thoughtcrime.securesms.avatar.AvatarPickerStorage;
|
import org.thoughtcrime.securesms.avatar.AvatarPickerStorage;
|
||||||
import org.thoughtcrime.securesms.crypto.AttachmentSecretProvider;
|
import org.thoughtcrime.securesms.crypto.AttachmentSecretProvider;
|
||||||
import org.thoughtcrime.securesms.crypto.DatabaseSecretProvider;
|
import org.thoughtcrime.securesms.crypto.DatabaseSecretProvider;
|
||||||
import org.thoughtcrime.securesms.database.LogDatabase;
|
import org.thoughtcrime.securesms.database.LogDatabase;
|
||||||
import org.thoughtcrime.securesms.database.SignalDatabase;
|
|
||||||
import org.thoughtcrime.securesms.database.SqlCipherLibraryLoader;
|
import org.thoughtcrime.securesms.database.SqlCipherLibraryLoader;
|
||||||
|
import org.thoughtcrime.securesms.database.SignalDatabase;
|
||||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencyProvider;
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencyProvider;
|
||||||
import org.thoughtcrime.securesms.emoji.EmojiSource;
|
import org.thoughtcrime.securesms.emoji.EmojiSource;
|
||||||
import org.thoughtcrime.securesms.emoji.JumboEmoji;
|
|
||||||
import org.thoughtcrime.securesms.gcm.FcmJobService;
|
import org.thoughtcrime.securesms.gcm.FcmJobService;
|
||||||
import org.thoughtcrime.securesms.jobs.CreateSignedPreKeyJob;
|
import org.thoughtcrime.securesms.jobs.CreateSignedPreKeyJob;
|
||||||
import org.thoughtcrime.securesms.jobs.DownloadLatestEmojiDataJob;
|
import org.thoughtcrime.securesms.jobs.DownloadLatestEmojiDataJob;
|
||||||
import org.thoughtcrime.securesms.jobs.EmojiSearchIndexDownloadJob;
|
import org.thoughtcrime.securesms.jobs.EmojiSearchIndexDownloadJob;
|
||||||
import org.thoughtcrime.securesms.jobs.FcmRefreshJob;
|
import org.thoughtcrime.securesms.jobs.FcmRefreshJob;
|
||||||
|
import org.thoughtcrime.securesms.jobs.GroupV1MigrationJob;
|
||||||
import org.thoughtcrime.securesms.jobs.MultiDeviceContactUpdateJob;
|
import org.thoughtcrime.securesms.jobs.MultiDeviceContactUpdateJob;
|
||||||
import org.thoughtcrime.securesms.jobs.ProfileUploadJob;
|
import org.thoughtcrime.securesms.jobs.ProfileUploadJob;
|
||||||
import org.thoughtcrime.securesms.jobs.PushNotificationReceiveJob;
|
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.messageprocessingalarm.MessageProcessReceiver;
|
||||||
import org.thoughtcrime.securesms.migrations.ApplicationMigrations;
|
import org.thoughtcrime.securesms.migrations.ApplicationMigrations;
|
||||||
import org.thoughtcrime.securesms.mms.SignalGlideComponents;
|
import org.thoughtcrime.securesms.mms.SignalGlideComponents;
|
||||||
import org.thoughtcrime.securesms.mms.SignalGlideModule;
|
|
||||||
import org.thoughtcrime.securesms.notifications.NotificationChannels;
|
import org.thoughtcrime.securesms.notifications.NotificationChannels;
|
||||||
import org.thoughtcrime.securesms.providers.BlobProvider;
|
import org.thoughtcrime.securesms.providers.BlobProvider;
|
||||||
import org.thoughtcrime.securesms.ratelimit.RateLimitUtil;
|
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.thoughtcrime.securesms.util.dynamiclanguage.DynamicLanguageContextWrapper;
|
||||||
import org.whispersystems.libsignal.logging.SignalProtocolLoggerProvider;
|
import org.whispersystems.libsignal.logging.SignalProtocolLoggerProvider;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.net.SocketException;
|
import java.net.SocketException;
|
||||||
import java.net.SocketTimeoutException;
|
import java.net.SocketTimeoutException;
|
||||||
import java.security.Security;
|
import java.security.Security;
|
||||||
|
@ -469,7 +471,8 @@ public class ApplicationContext extends MultiDexApplication implements AppForegr
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void attachBaseContext(Context base) {
|
protected void attachBaseContext(Context base) {
|
||||||
super.attachBaseContext(DynamicLanguageContextWrapper.getUpdatedApplicationContext(base));
|
DynamicLanguageContextWrapper.updateContext(base);
|
||||||
|
super.attachBaseContext(base);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class ProviderInitializationException extends RuntimeException {
|
private static class ProviderInitializationException extends RuntimeException {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package org.thoughtcrime.securesms.components.settings.app.changenumber
|
package org.thoughtcrime.securesms.components.settings.app.changenumber
|
||||||
|
|
||||||
import android.content.Context
|
import android.app.Application
|
||||||
import androidx.annotation.WorkerThread
|
import androidx.annotation.WorkerThread
|
||||||
import androidx.lifecycle.AbstractSavedStateViewModelFactory
|
import androidx.lifecycle.AbstractSavedStateViewModelFactory
|
||||||
import androidx.lifecycle.LiveData
|
import androidx.lifecycle.LiveData
|
||||||
|
@ -165,7 +165,7 @@ class ChangeNumberViewModel(
|
||||||
class Factory(owner: SavedStateRegistryOwner) : AbstractSavedStateViewModelFactory(owner, null) {
|
class Factory(owner: SavedStateRegistryOwner) : AbstractSavedStateViewModelFactory(owner, null) {
|
||||||
|
|
||||||
override fun <T : ViewModel?> create(key: String, modelClass: Class<T>, handle: SavedStateHandle): T {
|
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 localNumber: String = SignalStore.account().e164!!
|
||||||
val password: String = SignalStore.account().servicePassword!!
|
val password: String = SignalStore.account().servicePassword!!
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package org.thoughtcrime.securesms.conversation;
|
package org.thoughtcrime.securesms.conversation;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.app.Application;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
@ -117,7 +117,7 @@ final class ConversationGroupViewModel extends ViewModel {
|
||||||
|
|
||||||
private static @Nullable GroupRecord getGroupRecordForRecipient(@Nullable Recipient recipient) {
|
private static @Nullable GroupRecord getGroupRecordForRecipient(@Nullable Recipient recipient) {
|
||||||
if (recipient != null && recipient.isGroup()) {
|
if (recipient != null && recipient.isGroup()) {
|
||||||
Context context = ApplicationDependencies.getApplication();
|
Application context = ApplicationDependencies.getApplication();
|
||||||
GroupDatabase groupDatabase = SignalDatabase.groups();
|
GroupDatabase groupDatabase = SignalDatabase.groups();
|
||||||
return groupDatabase.getGroup(recipient.getId()).orNull();
|
return groupDatabase.getGroup(recipient.getId()).orNull();
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package org.thoughtcrime.securesms.conversation;
|
package org.thoughtcrime.securesms.conversation;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.app.Application;
|
||||||
|
|
||||||
import androidx.annotation.MainThread;
|
import androidx.annotation.MainThread;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
@ -66,7 +66,7 @@ public class ConversationViewModel extends ViewModel {
|
||||||
|
|
||||||
private static final String TAG = Log.tag(ConversationViewModel.class);
|
private static final String TAG = Log.tag(ConversationViewModel.class);
|
||||||
|
|
||||||
private final Context context;
|
private final Application context;
|
||||||
private final MediaRepository mediaRepository;
|
private final MediaRepository mediaRepository;
|
||||||
private final ConversationRepository conversationRepository;
|
private final ConversationRepository conversationRepository;
|
||||||
private final MutableLiveData<List<Media>> recentMedia;
|
private final MutableLiveData<List<Media>> recentMedia;
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package org.thoughtcrime.securesms.conversation;
|
package org.thoughtcrime.securesms.conversation;
|
||||||
|
|
||||||
|
import android.app.Application;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
@ -22,7 +23,7 @@ public class MessageCountsViewModel extends ViewModel {
|
||||||
|
|
||||||
private static final Executor EXECUTOR = new SerialMonoLifoExecutor(SignalExecutors.BOUNDED);
|
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 MutableLiveData<Long> threadId = new MutableLiveData<>(-1L);
|
||||||
private final LiveData<Pair<Integer, Integer>> unreadCounts;
|
private final LiveData<Pair<Integer, Integer>> unreadCounts;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package org.thoughtcrime.securesms.conversationlist;
|
package org.thoughtcrime.securesms.conversationlist;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.app.Application;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
@ -79,7 +79,7 @@ class ConversationListViewModel extends ViewModel {
|
||||||
private SearchResult activeSearchResult;
|
private SearchResult activeSearchResult;
|
||||||
private int pinnedCount;
|
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.megaphone = new MutableLiveData<>();
|
||||||
this.searchResult = new MutableLiveData<>();
|
this.searchResult = new MutableLiveData<>();
|
||||||
this.internalSelection = new HashSet<>();
|
this.internalSelection = new HashSet<>();
|
||||||
|
|
|
@ -2,7 +2,6 @@ package org.thoughtcrime.securesms.database;
|
||||||
|
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
import android.content.ContentValues;
|
import android.content.ContentValues;
|
||||||
import android.content.Context;
|
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
@ -47,9 +46,9 @@ public class KeyValueDatabase extends SQLiteOpenHelper implements SignalDatabase
|
||||||
|
|
||||||
private static volatile KeyValueDatabase instance;
|
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) {
|
if (instance == null) {
|
||||||
synchronized (KeyValueDatabase.class) {
|
synchronized (KeyValueDatabase.class) {
|
||||||
if (instance == null) {
|
if (instance == null) {
|
||||||
|
@ -61,7 +60,7 @@ public class KeyValueDatabase extends SQLiteOpenHelper implements SignalDatabase
|
||||||
return instance;
|
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());
|
super(application, DATABASE_NAME, databaseSecret.asString(), null, DATABASE_VERSION, 0,new SqlCipherErrorHandler(DATABASE_NAME), new SqlCipherDatabaseHook());
|
||||||
|
|
||||||
this.application = application;
|
this.application = application;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
package org.thoughtcrime.securesms.database
|
package org.thoughtcrime.securesms.database
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
|
import android.app.Application
|
||||||
import android.content.ContentValues
|
import android.content.ContentValues
|
||||||
import android.content.Context
|
|
||||||
import net.zetetic.database.sqlcipher.SQLiteDatabase
|
import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
import net.zetetic.database.sqlcipher.SQLiteOpenHelper
|
import net.zetetic.database.sqlcipher.SQLiteOpenHelper
|
||||||
import org.signal.core.util.logging.Log
|
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.
|
* This is it's own separate physical database, so it cannot do joins or queries with any other tables.
|
||||||
*/
|
*/
|
||||||
class LocalMetricsDatabase private constructor(
|
class LocalMetricsDatabase private constructor(
|
||||||
application: Context,
|
application: Application,
|
||||||
databaseSecret: DatabaseSecret
|
databaseSecret: DatabaseSecret
|
||||||
) :
|
) :
|
||||||
SQLiteOpenHelper(
|
SQLiteOpenHelper(
|
||||||
|
@ -77,7 +77,7 @@ class LocalMetricsDatabase private constructor(
|
||||||
private var instance: LocalMetricsDatabase? = null
|
private var instance: LocalMetricsDatabase? = null
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun getInstance(context: Context): LocalMetricsDatabase {
|
fun getInstance(context: Application): LocalMetricsDatabase {
|
||||||
if (instance == null) {
|
if (instance == null) {
|
||||||
synchronized(LocalMetricsDatabase::class.java) {
|
synchronized(LocalMetricsDatabase::class.java) {
|
||||||
if (instance == null) {
|
if (instance == null) {
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
package org.thoughtcrime.securesms.database
|
package org.thoughtcrime.securesms.database
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
|
import android.app.Application
|
||||||
import android.content.ContentValues
|
import android.content.ContentValues
|
||||||
import android.content.Context
|
|
||||||
import android.database.Cursor
|
import android.database.Cursor
|
||||||
import net.zetetic.database.sqlcipher.SQLiteDatabase
|
import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
import net.zetetic.database.sqlcipher.SQLiteOpenHelper
|
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.
|
* This is it's own separate physical database, so it cannot do joins or queries with any other tables.
|
||||||
*/
|
*/
|
||||||
class LogDatabase private constructor(
|
class LogDatabase private constructor(
|
||||||
application: Context,
|
application: Application,
|
||||||
databaseSecret: DatabaseSecret
|
databaseSecret: DatabaseSecret
|
||||||
) :
|
) :
|
||||||
SQLiteOpenHelper(
|
SQLiteOpenHelper(
|
||||||
|
@ -78,7 +78,7 @@ class LogDatabase private constructor(
|
||||||
private var instance: LogDatabase? = null
|
private var instance: LogDatabase? = null
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun getInstance(context: Context): LogDatabase {
|
fun getInstance(context: Application): LogDatabase {
|
||||||
if (instance == null) {
|
if (instance == null) {
|
||||||
synchronized(LogDatabase::class.java) {
|
synchronized(LogDatabase::class.java) {
|
||||||
if (instance == null) {
|
if (instance == null) {
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package org.thoughtcrime.securesms.dependencies;
|
package org.thoughtcrime.securesms.dependencies;
|
||||||
|
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
import android.content.Context;
|
|
||||||
|
|
||||||
import androidx.annotation.MainThread;
|
import androidx.annotation.MainThread;
|
||||||
import androidx.annotation.NonNull;
|
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.FrameRateTracker;
|
||||||
import org.thoughtcrime.securesms.util.Hex;
|
import org.thoughtcrime.securesms.util.Hex;
|
||||||
import org.thoughtcrime.securesms.util.IasKeyStore;
|
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.SimpleExoPlayerPool;
|
||||||
|
import org.thoughtcrime.securesms.video.exo.GiphyMp4Cache;
|
||||||
import org.thoughtcrime.securesms.webrtc.audio.AudioManagerCompat;
|
import org.thoughtcrime.securesms.webrtc.audio.AudioManagerCompat;
|
||||||
import org.whispersystems.signalservice.api.KeyBackupService;
|
import org.whispersystems.signalservice.api.KeyBackupService;
|
||||||
import org.whispersystems.signalservice.api.SignalServiceAccountManager;
|
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 FRAME_RATE_TRACKER_LOCK = new Object();
|
||||||
private static final Object JOB_MANAGER_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 Provider provider;
|
||||||
private static AppForegroundObserver appForegroundObserver;
|
private static AppForegroundObserver appForegroundObserver;
|
||||||
|
|
||||||
|
@ -134,14 +132,10 @@ public class ApplicationDependencies {
|
||||||
return ApplicationDependencies.application != null;
|
return ApplicationDependencies.application != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static @NonNull Context getApplication() {
|
public static @NonNull Application getApplication() {
|
||||||
return application;
|
return application;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void updateApplicationLanguage() {
|
|
||||||
application = DynamicLanguageContextWrapper.getUpdatedApplicationContext(application);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static @NonNull SignalServiceAccountManager getSignalServiceAccountManager() {
|
public static @NonNull SignalServiceAccountManager getSignalServiceAccountManager() {
|
||||||
SignalServiceAccountManager local = accountManager;
|
SignalServiceAccountManager local = accountManager;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package org.thoughtcrime.securesms.groups.ui.addtogroup;
|
package org.thoughtcrime.securesms.groups.ui.addtogroup;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.app.Application;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.lifecycle.ViewModel;
|
import androidx.lifecycle.ViewModel;
|
||||||
|
@ -19,7 +19,7 @@ import java.util.Objects;
|
||||||
|
|
||||||
public final class AddToGroupViewModel extends ViewModel {
|
public final class AddToGroupViewModel extends ViewModel {
|
||||||
|
|
||||||
private final Context context;
|
private final Application context;
|
||||||
private final AddToGroupRepository repository;
|
private final AddToGroupRepository repository;
|
||||||
private final RecipientId recipientId;
|
private final RecipientId recipientId;
|
||||||
private final SingleLiveEvent<Event> events = new SingleLiveEvent<>();
|
private final SingleLiveEvent<Event> events = new SingleLiveEvent<>();
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package org.thoughtcrime.securesms.groups.ui.chooseadmin;
|
package org.thoughtcrime.securesms.groups.ui.chooseadmin;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.app.Application;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.WorkerThread;
|
import androidx.annotation.WorkerThread;
|
||||||
|
@ -16,9 +16,9 @@ import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public final class ChooseNewAdminRepository {
|
public final class ChooseNewAdminRepository {
|
||||||
private final Context context;
|
private final Application context;
|
||||||
|
|
||||||
ChooseNewAdminRepository(@NonNull Context context) {
|
ChooseNewAdminRepository(@NonNull Application context) {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package org.thoughtcrime.securesms.jobmanager.impl;
|
package org.thoughtcrime.securesms.jobmanager.impl;
|
||||||
|
|
||||||
|
import android.app.Application;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.telephony.PhoneStateListener;
|
import android.telephony.PhoneStateListener;
|
||||||
import android.telephony.ServiceState;
|
import android.telephony.ServiceState;
|
||||||
|
@ -20,7 +21,7 @@ public class CellServiceConstraintObserver implements ConstraintObserver {
|
||||||
|
|
||||||
private static volatile CellServiceConstraintObserver instance;
|
private static volatile CellServiceConstraintObserver instance;
|
||||||
|
|
||||||
public static CellServiceConstraintObserver getInstance(@NonNull Context application) {
|
public static CellServiceConstraintObserver getInstance(@NonNull Application application) {
|
||||||
if (instance == null) {
|
if (instance == null) {
|
||||||
synchronized (CellServiceConstraintObserver.class) {
|
synchronized (CellServiceConstraintObserver.class) {
|
||||||
if (instance == null) {
|
if (instance == null) {
|
||||||
|
@ -31,7 +32,7 @@ public class CellServiceConstraintObserver implements ConstraintObserver {
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
private CellServiceConstraintObserver(@NonNull Context application) {
|
private CellServiceConstraintObserver(@NonNull Application application) {
|
||||||
TelephonyManager telephonyManager = (TelephonyManager) application.getSystemService(Context.TELEPHONY_SERVICE);
|
TelephonyManager telephonyManager = (TelephonyManager) application.getSystemService(Context.TELEPHONY_SERVICE);
|
||||||
ServiceStateListener serviceStateListener = new ServiceStateListener();
|
ServiceStateListener serviceStateListener = new ServiceStateListener();
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
package org.thoughtcrime.securesms.jobmanager.impl;
|
package org.thoughtcrime.securesms.jobmanager.impl;
|
||||||
|
|
||||||
|
import android.app.Application;
|
||||||
import android.app.job.JobInfo;
|
import android.app.job.JobInfo;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
import android.net.NetworkInfo;
|
import android.net.NetworkInfo;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
import androidx.annotation.RequiresApi;
|
import androidx.annotation.RequiresApi;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.jobmanager.Constraint;
|
import org.thoughtcrime.securesms.jobmanager.Constraint;
|
||||||
|
@ -14,9 +16,9 @@ public class NetworkConstraint implements Constraint {
|
||||||
|
|
||||||
public static final String KEY = "NetworkConstraint";
|
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;
|
this.application = application;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -51,9 +53,9 @@ public class NetworkConstraint implements Constraint {
|
||||||
|
|
||||||
public static final class Factory implements Constraint.Factory<NetworkConstraint> {
|
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;
|
this.application = application;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package org.thoughtcrime.securesms.jobmanager.impl;
|
package org.thoughtcrime.securesms.jobmanager.impl;
|
||||||
|
|
||||||
|
import android.app.Application;
|
||||||
import android.app.job.JobInfo;
|
import android.app.job.JobInfo;
|
||||||
import android.content.Context;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
@ -13,10 +13,10 @@ public class NetworkOrCellServiceConstraint implements Constraint {
|
||||||
public static final String KEY = "NetworkOrCellServiceConstraint";
|
public static final String KEY = "NetworkOrCellServiceConstraint";
|
||||||
public static final String LEGACY_KEY = "CellServiceConstraint";
|
public static final String LEGACY_KEY = "CellServiceConstraint";
|
||||||
|
|
||||||
private final Context application;
|
private final Application application;
|
||||||
private final NetworkConstraint networkConstraint;
|
private final NetworkConstraint networkConstraint;
|
||||||
|
|
||||||
private NetworkOrCellServiceConstraint(@NonNull Context application) {
|
private NetworkOrCellServiceConstraint(@NonNull Application application) {
|
||||||
this.application = application;
|
this.application = application;
|
||||||
this.networkConstraint = new NetworkConstraint.Factory(application).create();
|
this.networkConstraint = new NetworkConstraint.Factory(application).create();
|
||||||
}
|
}
|
||||||
|
@ -39,15 +39,15 @@ public class NetworkOrCellServiceConstraint implements Constraint {
|
||||||
public void applyToJobInfo(@NonNull JobInfo.Builder jobInfoBuilder) {
|
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();
|
return CellServiceConstraintObserver.getInstance(application).hasService();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Factory implements Constraint.Factory<NetworkOrCellServiceConstraint> {
|
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;
|
this.application = application;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package org.thoughtcrime.securesms.jobmanager.impl;
|
package org.thoughtcrime.securesms.jobmanager.impl;
|
||||||
|
|
||||||
|
import android.app.Application;
|
||||||
import android.app.job.JobInfo;
|
import android.app.job.JobInfo;
|
||||||
import android.content.Context;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
@ -12,9 +12,9 @@ public class SqlCipherMigrationConstraint implements Constraint {
|
||||||
|
|
||||||
public static final String KEY = "SqlCipherMigrationConstraint";
|
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;
|
this.application = application;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,9 +35,9 @@ public class SqlCipherMigrationConstraint implements Constraint {
|
||||||
|
|
||||||
public static final class Factory implements Constraint.Factory<SqlCipherMigrationConstraint> {
|
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;
|
this.application = application;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package org.thoughtcrime.securesms.jobs;
|
package org.thoughtcrime.securesms.jobs;
|
||||||
|
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
import android.content.Context;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
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>() {{
|
return new HashMap<String, Constraint.Factory>() {{
|
||||||
put(AutoDownloadEmojiConstraint.KEY, new AutoDownloadEmojiConstraint.Factory(application));
|
put(AutoDownloadEmojiConstraint.KEY, new AutoDownloadEmojiConstraint.Factory(application));
|
||||||
put(ChargingConstraint.KEY, new ChargingConstraint.Factory());
|
put(ChargingConstraint.KEY, new ChargingConstraint.Factory());
|
||||||
|
|
|
@ -203,7 +203,6 @@ public final class SettingsValues extends SignalStoreValues {
|
||||||
|
|
||||||
public void setLanguage(@NonNull String language) {
|
public void setLanguage(@NonNull String language) {
|
||||||
TextSecurePreferences.setLanguage(ApplicationDependencies.getApplication(), language);
|
TextSecurePreferences.setLanguage(ApplicationDependencies.getApplication(), language);
|
||||||
ApplicationDependencies.updateApplicationLanguage();
|
|
||||||
onConfigurationSettingChanged.postValue(LANGUAGE);
|
onConfigurationSettingChanged.postValue(LANGUAGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package org.thoughtcrime.securesms.logsubmit
|
package org.thoughtcrime.securesms.logsubmit
|
||||||
|
|
||||||
import android.content.Context
|
import android.app.Application
|
||||||
import org.signal.paging.PagedDataSource
|
import org.signal.paging.PagedDataSource
|
||||||
import org.thoughtcrime.securesms.database.LogDatabase
|
import org.thoughtcrime.securesms.database.LogDatabase
|
||||||
import org.thoughtcrime.securesms.logsubmit.util.Scrubber
|
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.
|
* @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(
|
class LogDataSource(
|
||||||
application: Context,
|
application: Application,
|
||||||
private val prefixLines: List<LogLine>,
|
private val prefixLines: List<LogLine>,
|
||||||
private val untilTime: Long
|
private val untilTime: Long
|
||||||
) :
|
) :
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
package org.thoughtcrime.securesms.logsubmit;
|
package org.thoughtcrime.securesms.logsubmit;
|
||||||
|
|
||||||
|
import android.app.Application;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.ParcelFileDescriptor;
|
import android.os.ParcelFileDescriptor;
|
||||||
|
import android.os.SystemClock;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
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.net.StandardUserAgentInterceptor;
|
||||||
import org.thoughtcrime.securesms.providers.BlobProvider;
|
import org.thoughtcrime.securesms.providers.BlobProvider;
|
||||||
import org.thoughtcrime.securesms.push.SignalServiceNetworkAccess;
|
import org.thoughtcrime.securesms.push.SignalServiceNetworkAccess;
|
||||||
|
import org.thoughtcrime.securesms.util.ByteUnit;
|
||||||
import org.thoughtcrime.securesms.util.FeatureFlags;
|
import org.thoughtcrime.securesms.util.FeatureFlags;
|
||||||
import org.thoughtcrime.securesms.util.Stopwatch;
|
import org.thoughtcrime.securesms.util.Stopwatch;
|
||||||
|
import org.thoughtcrime.securesms.util.Util;
|
||||||
import org.whispersystems.libsignal.util.guava.Optional;
|
import org.whispersystems.libsignal.util.guava.Optional;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import java.util.zip.GZIPOutputStream;
|
import java.util.zip.GZIPOutputStream;
|
||||||
|
|
||||||
|
@ -91,7 +97,7 @@ public class SubmitDebugLogRepository {
|
||||||
add(new LogSectionLoggerHeader());
|
add(new LogSectionLoggerHeader());
|
||||||
}};
|
}};
|
||||||
|
|
||||||
private final Context context;
|
private final Application context;
|
||||||
private final ExecutorService executor;
|
private final ExecutorService executor;
|
||||||
|
|
||||||
public SubmitDebugLogRepository() {
|
public SubmitDebugLogRepository() {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package org.thoughtcrime.securesms.profiles.manage;
|
package org.thoughtcrime.securesms.profiles.manage;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.app.Application;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.WorkerThread;
|
import androidx.annotation.WorkerThread;
|
||||||
|
@ -21,7 +21,7 @@ class UsernameEditRepository {
|
||||||
|
|
||||||
private static final String TAG = Log.tag(UsernameEditRepository.class);
|
private static final String TAG = Log.tag(UsernameEditRepository.class);
|
||||||
|
|
||||||
private final Context application;
|
private final Application application;
|
||||||
private final SignalServiceAccountManager accountManager;
|
private final SignalServiceAccountManager accountManager;
|
||||||
private final Executor executor;
|
private final Executor executor;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package org.thoughtcrime.securesms.profiles.manage;
|
package org.thoughtcrime.securesms.profiles.manage;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.app.Application;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
@ -22,7 +22,7 @@ class UsernameEditViewModel extends ViewModel {
|
||||||
|
|
||||||
private static final String TAG = Log.tag(UsernameEditViewModel.class);
|
private static final String TAG = Log.tag(UsernameEditViewModel.class);
|
||||||
|
|
||||||
private final Context application;
|
private final Application application;
|
||||||
private final MutableLiveData<State> uiState;
|
private final MutableLiveData<State> uiState;
|
||||||
private final SingleLiveEvent<Event> events;
|
private final SingleLiveEvent<Event> events;
|
||||||
private final UsernameEditRepository repo;
|
private final UsernameEditRepository repo;
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package org.thoughtcrime.securesms.registration;
|
package org.thoughtcrime.securesms.registration;
|
||||||
|
|
||||||
|
import android.app.Application;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
@ -57,9 +58,9 @@ public final class RegistrationRepository {
|
||||||
|
|
||||||
private static final String TAG = Log.tag(RegistrationRepository.class);
|
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;
|
this.context = context;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package org.thoughtcrime.securesms.registration
|
package org.thoughtcrime.securesms.registration
|
||||||
|
|
||||||
import android.content.Context
|
import android.app.Application
|
||||||
import io.reactivex.rxjava3.core.Single
|
import io.reactivex.rxjava3.core.Single
|
||||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||||
import org.signal.core.util.logging.Log
|
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.
|
* 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(
|
fun requestVerificationCode(
|
||||||
e164: String,
|
e164: String,
|
||||||
|
|
|
@ -28,14 +28,7 @@ public final class DynamicLanguageContextWrapper {
|
||||||
return LocaleParser.findBestMatchingLocaleForLanguage(language);
|
return LocaleParser.findBestMatchingLocaleForLanguage(language);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static @NonNull Context getUpdatedApplicationContext(@NonNull Context base) {
|
public static void updateContext(@NonNull Context base) {
|
||||||
updateContext(base);
|
|
||||||
|
|
||||||
Configuration configuration = base.getResources().getConfiguration();
|
|
||||||
return base.createConfigurationContext(configuration);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void updateContext(@NonNull Context base) {
|
|
||||||
Configuration config = base.getResources().getConfiguration();
|
Configuration config = base.getResources().getConfiguration();
|
||||||
|
|
||||||
prepareOverrideConfiguration(base, config);
|
prepareOverrideConfiguration(base, config);
|
||||||
|
|
Ładowanie…
Reference in New Issue