Only restart web socket if url/token was changed
This commit is contained in:
@@ -14,6 +14,8 @@ import android.support.v4.app.NotificationCompat;
|
|||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
@@ -30,6 +32,8 @@ public class PushService extends Service {
|
|||||||
private final OkHttpClient client = new OkHttpClient.Builder().readTimeout(0, TimeUnit.MILLISECONDS).build();
|
private final OkHttpClient client = new OkHttpClient.Builder().readTimeout(0, TimeUnit.MILLISECONDS).build();
|
||||||
private static final String TOKEN = "@global:token";
|
private static final String TOKEN = "@global:token";
|
||||||
private static final String URL = "@global:url";
|
private static final String URL = "@global:url";
|
||||||
|
private static final List<String> UPDATE_ON_KEYS = Arrays.asList(TOKEN, URL);
|
||||||
|
|
||||||
private Handler handler = null;
|
private Handler handler = null;
|
||||||
private WebSocket socket = null;
|
private WebSocket socket = null;
|
||||||
private Gson gson = null;
|
private Gson gson = null;
|
||||||
@@ -37,6 +41,10 @@ public class PushService extends Service {
|
|||||||
private SharedPreferences.OnSharedPreferenceChangeListener listener = new SharedPreferences.OnSharedPreferenceChangeListener() {
|
private SharedPreferences.OnSharedPreferenceChangeListener listener = new SharedPreferences.OnSharedPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||||
|
if (!UPDATE_ON_KEYS.contains(key)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (socket != null) {
|
if (socket != null) {
|
||||||
Log.i("Closing WebSocket (preference change)");
|
Log.i("Closing WebSocket (preference change)");
|
||||||
socket.close(1000, "client logout");
|
socket.close(1000, "client logout");
|
||||||
|
|||||||
Reference in New Issue
Block a user