From 111ad9578841c63fe9328c8017886d3ca8441b4b Mon Sep 17 00:00:00 2001 From: zhangjiaqing Date: Tue, 21 Feb 2023 17:39:59 +0800 Subject: RingtoneManager#setActualDefaultRingtone() open OutputStream of cacheUri with "wt" mode the default mode is "w",if the cache file is not deleted successfully before openOutputStream and the size of new ringtone is smaller than old rongtone,the cache file will be a mixture of old and new ringtone. Bug: 263074833 Change-Id: Ib7a0bf5e2a9f695aa4701c91c0b79c6bce2d76f1 --- media/java/android/media/RingtoneManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/media/java/android/media/RingtoneManager.java b/media/java/android/media/RingtoneManager.java index 27db41cb9f4e..171349a26569 100644 --- a/media/java/android/media/RingtoneManager.java +++ b/media/java/android/media/RingtoneManager.java @@ -841,7 +841,7 @@ public class RingtoneManager { if (ringtoneUri != null) { final Uri cacheUri = getCacheForType(type, context.getUserId()); try (InputStream in = openRingtone(context, ringtoneUri); - OutputStream out = resolver.openOutputStream(cacheUri)) { + OutputStream out = resolver.openOutputStream(cacheUri, "wt")) { FileUtils.copy(in, out); } catch (IOException e) { Log.w(TAG, "Failed to cache ringtone: " + e); -- cgit v1.2.3-59-g8ed1b