Signal-Android/app/src/main/java/org/thoughtcrime/securesms/push/AccountManagerFactory.java

80 wiersze
3.5 KiB
Java

package org.thoughtcrime.securesms.push;
import android.content.Context;
import androidx.annotation.NonNull;
import com.google.android.gms.security.ProviderInstaller;
import org.signal.core.util.concurrent.SignalExecutors;
import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.BuildConfig;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.util.FeatureFlags;
import org.whispersystems.signalservice.api.SignalServiceAccountManager;
import org.whispersystems.signalservice.api.push.ACI;
import org.whispersystems.signalservice.api.push.PNI;
public class AccountManagerFactory {
private static final String TAG = Log.tag(AccountManagerFactory.class);
public static @NonNull SignalServiceAccountManager createAuthenticated(@NonNull Context context,
@NonNull ACI aci,
@NonNull PNI pni,
@NonNull String e164,
int deviceId,
@NonNull String password)
{
if (ApplicationDependencies.getSignalServiceNetworkAccess().isCensored(e164)) {
SignalExecutors.BOUNDED.execute(() -> {
try {
ProviderInstaller.installIfNeeded(context);
} catch (Throwable t) {
Log.w(TAG, t);
}
});
}
return new SignalServiceAccountManager(ApplicationDependencies.getSignalServiceNetworkAccess().getConfiguration(e164),
aci,
pni,
e164,
deviceId,
password,
BuildConfig.SIGNAL_AGENT,
FeatureFlags.okHttpAutomaticRetry(),
FeatureFlags.groupLimits().getHardLimit());
}
/**
* Should only be used during registration when you haven't yet been assigned an ACI.
*/
public static @NonNull SignalServiceAccountManager createUnauthenticated(@NonNull Context context,
@NonNull String e164,
int deviceId,
@NonNull String password)
{
if (new SignalServiceNetworkAccess(context).isCensored(e164)) {
SignalExecutors.BOUNDED.execute(() -> {
try {
ProviderInstaller.installIfNeeded(context);
} catch (Throwable t) {
Log.w(TAG, t);
}
});
}
return new SignalServiceAccountManager(ApplicationDependencies.getSignalServiceNetworkAccess().getConfiguration(e164),
null,
null,
e164,
deviceId,
password,
BuildConfig.SIGNAL_AGENT,
FeatureFlags.okHttpAutomaticRetry(),
FeatureFlags.groupLimits().getHardLimit());
}
}