Improve TrustKeysActivity slider responsiveness

Andreas Straub created

Slider used to skip back on drag-and-drop action. The switch doesn't
trigger explicit whole UI refreshes anymore, it now directly adjusts the
"done" button's locked status.

Change summary

src/main/java/eu/siacs/conversations/ui/TrustKeysActivity.java | 22 ++--
1 file changed, 11 insertions(+), 11 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/ui/TrustKeysActivity.java 🔗

@@ -124,9 +124,7 @@ public class TrustKeysActivity extends XmppActivity implements OnKeyStatusUpdate
 						@Override
 						public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
 							ownKeysToTrust.put(identityKey, isChecked);
-							refreshUi();
-							xmppConnectionService.updateAccountUi();
-							xmppConnectionService.updateConversationUi();
+							// own fingerprints have no impact on locked status.
 						}
 					},
 					null
@@ -140,9 +138,7 @@ public class TrustKeysActivity extends XmppActivity implements OnKeyStatusUpdate
 						@Override
 						public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
 							foreignKeysToTrust.put(identityKey, isChecked);
-							refreshUi();
-							xmppConnectionService.updateAccountUi();
-							xmppConnectionService.updateConversationUi();
+							lockOrUnlockAsNeeded();
 						}
 					},
 					null
@@ -161,11 +157,7 @@ public class TrustKeysActivity extends XmppActivity implements OnKeyStatusUpdate
 			setFetching();
 			lock();
 		} else {
-			if (!hasOtherTrustedKeys && !foreignKeysToTrust.values().contains(true)){
-				lock();
-			} else {
-				unlock();
-			}
+			lockOrUnlockAsNeeded();
 			setDone();
 		}
 	}
@@ -245,6 +237,14 @@ public class TrustKeysActivity extends XmppActivity implements OnKeyStatusUpdate
 		mSaveButton.setTextColor(getSecondaryTextColor());
 	}
 
+	private void lockOrUnlockAsNeeded() {
+		if (!hasOtherTrustedKeys && !foreignKeysToTrust.values().contains(true)){
+			lock();
+		} else {
+			unlock();
+		}
+	}
+
 	private void setDone() {
 		mSaveButton.setText(getString(R.string.done));
 	}