]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/manager/storage/SignalAccount.java
Only allow setting PIN by master device
[signal-cli] / src / main / java / org / asamk / signal / manager / storage / SignalAccount.java
index 9922ca57d05f0f3e54d91d77af1ae38281038b7e..cb6f7461dd0c5234f8498a8e4f5cbc48dcb0349c 100644 (file)
@@ -91,7 +91,7 @@ public class SignalAccount implements Closeable {
         this.fileChannel = fileChannel;
         this.lock = lock;
         jsonProcessor.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE); // disable autodetect
-        jsonProcessor.enable(SerializationFeature.INDENT_OUTPUT); // for pretty print, you can disable it.
+        jsonProcessor.enable(SerializationFeature.INDENT_OUTPUT); // for pretty print
         jsonProcessor.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
         jsonProcessor.disable(JsonParser.Feature.AUTO_CLOSE_SOURCE);
         jsonProcessor.disable(JsonGenerator.Feature.AUTO_CLOSE_TARGET);
@@ -505,6 +505,10 @@ public class SignalAccount implements Closeable {
         this.deviceId = deviceId;
     }
 
+    public boolean isMasterDevice() {
+        return deviceId == SignalServiceAddress.DEFAULT_DEVICE_ID;
+    }
+
     public String getPassword() {
         return password;
     }
@@ -585,7 +589,9 @@ public class SignalAccount implements Closeable {
 
     @Override
     public void close() throws IOException {
-        save();
+        if (fileChannel.isOpen()) {
+            save();
+        }
         synchronized (fileChannel) {
             try {
                 lock.close();