From b735393c9ebd02597a78fff61b4a01c0a30d4439 Mon Sep 17 00:00:00 2001 From: Zim Date: Fri, 5 Nov 2021 19:02:45 +0000 Subject: [PATCH] Restart the MTP connection when changing transcode enabled To workaround some issues with transcoded file sizes transferred via MTP on Windows machines, we restart the MTP connection after changing the transcode flag. Test: Manual Bug: 184117074 Bug: 190422448 Change-Id: I8d151117e1f5d23c3ec20e8c7a4b4546c96f2c84 --- .../usb/UsbDetailsTranscodeMtpController.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsTranscodeMtpController.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsTranscodeMtpController.java index bbaaa318c42..c4404992638 100644 --- a/src/com/android/settings/connecteddevice/usb/UsbDetailsTranscodeMtpController.java +++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsTranscodeMtpController.java @@ -77,6 +77,12 @@ public class UsbDetailsTranscodeMtpController extends UsbDetailsController public boolean onPreferenceClick(Preference preference) { SystemProperties.set(TRANSCODE_MTP_SYS_PROP_KEY, Boolean.toString(mSwitchPreference.isChecked())); + + final long previousFunctions = mUsbBackend.getCurrentFunctions(); + // Toggle the MTP connection to reload file sizes for files shared via MTP clients + mUsbBackend.setCurrentFunctions(previousFunctions & ~UsbManager.FUNCTION_MTP); + mUsbBackend.setCurrentFunctions(previousFunctions); + return true; }