mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-24 10:51:27 +01:00
Add UI support for configuring a proxy.
This commit is contained in:
@@ -22,6 +22,7 @@ import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint;
|
||||
import org.thoughtcrime.securesms.jobs.PushDecryptDrainedJob;
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||
import org.thoughtcrime.securesms.messages.IncomingMessageProcessor.Processor;
|
||||
import org.thoughtcrime.securesms.notifications.NotificationChannels;
|
||||
import org.thoughtcrime.securesms.push.SignalServiceNetworkAccess;
|
||||
@@ -56,6 +57,7 @@ public class IncomingMessageObserver {
|
||||
|
||||
private volatile boolean networkDrained;
|
||||
private volatile boolean decryptionDrained;
|
||||
private volatile boolean terminated;
|
||||
|
||||
public IncomingMessageObserver(@NonNull Application context) {
|
||||
this.context = context;
|
||||
@@ -138,9 +140,10 @@ public class IncomingMessageObserver {
|
||||
boolean websocketRegistered = TextSecurePreferences.isWebsocketRegistered(context);
|
||||
boolean isGcmDisabled = TextSecurePreferences.isFcmDisabled(context);
|
||||
boolean hasNetwork = NetworkConstraint.isMet(context);
|
||||
boolean hasProxy = SignalStore.proxy().isProxyEnabled();
|
||||
|
||||
Log.d(TAG, String.format("Network: %s, Foreground: %s, FCM: %s, Censored: %s, Registered: %s, Websocket Registered: %s",
|
||||
hasNetwork, appVisible, !isGcmDisabled, networkAccess.isCensored(context), registered, websocketRegistered));
|
||||
Log.d(TAG, String.format("Network: %s, Foreground: %s, FCM: %s, Censored: %s, Registered: %s, Websocket Registered: %s, Proxy: %s",
|
||||
hasNetwork, appVisible, !isGcmDisabled, networkAccess.isCensored(context), registered, websocketRegistered, hasProxy));
|
||||
|
||||
return registered &&
|
||||
websocketRegistered &&
|
||||
@@ -157,10 +160,19 @@ public class IncomingMessageObserver {
|
||||
}
|
||||
}
|
||||
|
||||
public void terminate() {
|
||||
Log.w(TAG, "Beginning termination.");
|
||||
terminated = true;
|
||||
shutdown(pipe, unidentifiedPipe);
|
||||
}
|
||||
|
||||
private void shutdown(@Nullable SignalServiceMessagePipe pipe, @Nullable SignalServiceMessagePipe unidentifiedPipe) {
|
||||
try {
|
||||
if (pipe != null) {
|
||||
Log.w(TAG, "Shutting down normal pipe.");
|
||||
pipe.shutdown();
|
||||
} else {
|
||||
Log.w(TAG, "No need to shutdown normal pipe, it doesn't exist.");
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
Log.w(TAG, "Closing normal pipe failed!", t);
|
||||
@@ -168,7 +180,10 @@ public class IncomingMessageObserver {
|
||||
|
||||
try {
|
||||
if (unidentifiedPipe != null) {
|
||||
Log.w(TAG, "Shutting down unidentified pipe.");
|
||||
unidentifiedPipe.shutdown();
|
||||
} else {
|
||||
Log.w(TAG, "No need to shutdown unidentified pipe, it doesn't exist.");
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
Log.w(TAG, "Closing unidentified pipe failed!", t);
|
||||
@@ -187,12 +202,13 @@ public class IncomingMessageObserver {
|
||||
|
||||
MessageRetrievalThread() {
|
||||
super("MessageRetrievalService");
|
||||
Log.i(TAG, "Initializing! (" + this.hashCode() + ")");
|
||||
setUncaughtExceptionHandler(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
while (true) {
|
||||
while (!terminated) {
|
||||
Log.i(TAG, "Waiting for websocket state change....");
|
||||
waitForConnectionNecessary();
|
||||
|
||||
@@ -236,6 +252,8 @@ public class IncomingMessageObserver {
|
||||
|
||||
Log.i(TAG, "Looping...");
|
||||
}
|
||||
|
||||
Log.w(TAG, "Terminated! (" + this.hashCode() + ")");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user