Loading packages/SystemUI/src/com/android/systemui/screenrecord/RecordingService.java +2 −4 Original line number Original line Diff line number Diff line Loading @@ -25,7 +25,6 @@ import android.app.Service; import android.content.Context; import android.content.Context; import android.content.Intent; import android.content.Intent; import android.content.res.Resources; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.drawable.Icon; import android.graphics.drawable.Icon; import android.media.MediaRecorder; import android.media.MediaRecorder; import android.net.Uri; import android.net.Uri; Loading Loading @@ -379,10 +378,9 @@ public class RecordingService extends Service implements ScreenMediaRecorderList .addExtras(extras); .addExtras(extras); // Add thumbnail if available // Add thumbnail if available Bitmap thumbnailBitmap = recording.getThumbnail(); if (recording.getThumbnail() != null) { if (thumbnailBitmap != null) { Notification.BigPictureStyle pictureStyle = new Notification.BigPictureStyle() Notification.BigPictureStyle pictureStyle = new Notification.BigPictureStyle() .bigPicture(thumbnailBitmap) .bigPicture(recording.getThumbnail()) .showBigPictureWhenCollapsed(true); .showBigPictureWhenCollapsed(true); builder.setStyle(pictureStyle); builder.setStyle(pictureStyle); } } Loading packages/SystemUI/src/com/android/systemui/screenrecord/ScreenMediaRecorder.java +24 −7 Original line number Original line Diff line number Diff line Loading @@ -23,10 +23,12 @@ import static com.android.systemui.screenrecord.ScreenRecordingAudioSource.MIC; import static com.android.systemui.screenrecord.ScreenRecordingAudioSource.MIC_AND_INTERNAL; import static com.android.systemui.screenrecord.ScreenRecordingAudioSource.MIC_AND_INTERNAL; import android.annotation.Nullable; import android.annotation.Nullable; import android.app.ActivityManager; import android.content.ContentResolver; import android.content.ContentResolver; import android.content.ContentValues; import android.content.ContentValues; import android.content.Context; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap; import android.graphics.drawable.Icon; import android.hardware.display.DisplayManager; import android.hardware.display.DisplayManager; import android.hardware.display.VirtualDisplay; import android.hardware.display.VirtualDisplay; import android.media.MediaCodec; import android.media.MediaCodec; Loading @@ -51,6 +53,7 @@ import android.util.Size; import android.view.Surface; import android.view.Surface; import android.view.WindowManager; import android.view.WindowManager; import com.android.internal.R; import com.android.systemui.mediaprojection.MediaProjectionCaptureTarget; import com.android.systemui.mediaprojection.MediaProjectionCaptureTarget; import java.io.Closeable; import java.io.Closeable; Loading Loading @@ -361,13 +364,26 @@ public class ScreenMediaRecorder extends MediaProjection.Callback { Files.copy(mTempVideoFile.toPath(), os); Files.copy(mTempVideoFile.toPath(), os); os.close(); os.close(); if (mTempAudioFile != null) mTempAudioFile.delete(); if (mTempAudioFile != null) mTempAudioFile.delete(); DisplayMetrics metrics = mContext.getResources().getDisplayMetrics(); SavedRecording recording = new SavedRecording( Size size = new Size(metrics.widthPixels, metrics.heightPixels); itemUri, mTempVideoFile, getRequiredThumbnailSize()); SavedRecording recording = new SavedRecording(itemUri, mTempVideoFile, size); mTempVideoFile.delete(); mTempVideoFile.delete(); return recording; return recording; } } /** * Returns the required {@code Size} of the thumbnail. */ private Size getRequiredThumbnailSize() { boolean isLowRam = ActivityManager.isLowRamDeviceStatic(); int thumbnailIconHeight = mContext.getResources().getDimensionPixelSize(isLowRam ? R.dimen.notification_big_picture_max_height_low_ram : R.dimen.notification_big_picture_max_height); int thumbnailIconWidth = mContext.getResources().getDimensionPixelSize(isLowRam ? R.dimen.notification_big_picture_max_width_low_ram : R.dimen.notification_big_picture_max_width); return new Size(thumbnailIconWidth, thumbnailIconHeight); } /** /** * Release the resources without saving the data * Release the resources without saving the data */ */ Loading @@ -386,13 +402,14 @@ public class ScreenMediaRecorder extends MediaProjection.Callback { public class SavedRecording { public class SavedRecording { private Uri mUri; private Uri mUri; private Bitmap mThumbnailBitmap; private Icon mThumbnailIcon; protected SavedRecording(Uri uri, File file, Size thumbnailSize) { protected SavedRecording(Uri uri, File file, Size thumbnailSize) { mUri = uri; mUri = uri; try { try { mThumbnailBitmap = ThumbnailUtils.createVideoThumbnail( Bitmap thumbnailBitmap = ThumbnailUtils.createVideoThumbnail( file, thumbnailSize, null); file, thumbnailSize, null); mThumbnailIcon = Icon.createWithBitmap(thumbnailBitmap); } catch (IOException e) { } catch (IOException e) { Log.e(TAG, "Error creating thumbnail", e); Log.e(TAG, "Error creating thumbnail", e); } } Loading @@ -402,8 +419,8 @@ public class ScreenMediaRecorder extends MediaProjection.Callback { return mUri; return mUri; } } public @Nullable Bitmap getThumbnail() { public @Nullable Icon getThumbnail() { return mThumbnailBitmap; return mThumbnailIcon; } } } } Loading Loading
packages/SystemUI/src/com/android/systemui/screenrecord/RecordingService.java +2 −4 Original line number Original line Diff line number Diff line Loading @@ -25,7 +25,6 @@ import android.app.Service; import android.content.Context; import android.content.Context; import android.content.Intent; import android.content.Intent; import android.content.res.Resources; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.drawable.Icon; import android.graphics.drawable.Icon; import android.media.MediaRecorder; import android.media.MediaRecorder; import android.net.Uri; import android.net.Uri; Loading Loading @@ -379,10 +378,9 @@ public class RecordingService extends Service implements ScreenMediaRecorderList .addExtras(extras); .addExtras(extras); // Add thumbnail if available // Add thumbnail if available Bitmap thumbnailBitmap = recording.getThumbnail(); if (recording.getThumbnail() != null) { if (thumbnailBitmap != null) { Notification.BigPictureStyle pictureStyle = new Notification.BigPictureStyle() Notification.BigPictureStyle pictureStyle = new Notification.BigPictureStyle() .bigPicture(thumbnailBitmap) .bigPicture(recording.getThumbnail()) .showBigPictureWhenCollapsed(true); .showBigPictureWhenCollapsed(true); builder.setStyle(pictureStyle); builder.setStyle(pictureStyle); } } Loading
packages/SystemUI/src/com/android/systemui/screenrecord/ScreenMediaRecorder.java +24 −7 Original line number Original line Diff line number Diff line Loading @@ -23,10 +23,12 @@ import static com.android.systemui.screenrecord.ScreenRecordingAudioSource.MIC; import static com.android.systemui.screenrecord.ScreenRecordingAudioSource.MIC_AND_INTERNAL; import static com.android.systemui.screenrecord.ScreenRecordingAudioSource.MIC_AND_INTERNAL; import android.annotation.Nullable; import android.annotation.Nullable; import android.app.ActivityManager; import android.content.ContentResolver; import android.content.ContentResolver; import android.content.ContentValues; import android.content.ContentValues; import android.content.Context; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap; import android.graphics.drawable.Icon; import android.hardware.display.DisplayManager; import android.hardware.display.DisplayManager; import android.hardware.display.VirtualDisplay; import android.hardware.display.VirtualDisplay; import android.media.MediaCodec; import android.media.MediaCodec; Loading @@ -51,6 +53,7 @@ import android.util.Size; import android.view.Surface; import android.view.Surface; import android.view.WindowManager; import android.view.WindowManager; import com.android.internal.R; import com.android.systemui.mediaprojection.MediaProjectionCaptureTarget; import com.android.systemui.mediaprojection.MediaProjectionCaptureTarget; import java.io.Closeable; import java.io.Closeable; Loading Loading @@ -361,13 +364,26 @@ public class ScreenMediaRecorder extends MediaProjection.Callback { Files.copy(mTempVideoFile.toPath(), os); Files.copy(mTempVideoFile.toPath(), os); os.close(); os.close(); if (mTempAudioFile != null) mTempAudioFile.delete(); if (mTempAudioFile != null) mTempAudioFile.delete(); DisplayMetrics metrics = mContext.getResources().getDisplayMetrics(); SavedRecording recording = new SavedRecording( Size size = new Size(metrics.widthPixels, metrics.heightPixels); itemUri, mTempVideoFile, getRequiredThumbnailSize()); SavedRecording recording = new SavedRecording(itemUri, mTempVideoFile, size); mTempVideoFile.delete(); mTempVideoFile.delete(); return recording; return recording; } } /** * Returns the required {@code Size} of the thumbnail. */ private Size getRequiredThumbnailSize() { boolean isLowRam = ActivityManager.isLowRamDeviceStatic(); int thumbnailIconHeight = mContext.getResources().getDimensionPixelSize(isLowRam ? R.dimen.notification_big_picture_max_height_low_ram : R.dimen.notification_big_picture_max_height); int thumbnailIconWidth = mContext.getResources().getDimensionPixelSize(isLowRam ? R.dimen.notification_big_picture_max_width_low_ram : R.dimen.notification_big_picture_max_width); return new Size(thumbnailIconWidth, thumbnailIconHeight); } /** /** * Release the resources without saving the data * Release the resources without saving the data */ */ Loading @@ -386,13 +402,14 @@ public class ScreenMediaRecorder extends MediaProjection.Callback { public class SavedRecording { public class SavedRecording { private Uri mUri; private Uri mUri; private Bitmap mThumbnailBitmap; private Icon mThumbnailIcon; protected SavedRecording(Uri uri, File file, Size thumbnailSize) { protected SavedRecording(Uri uri, File file, Size thumbnailSize) { mUri = uri; mUri = uri; try { try { mThumbnailBitmap = ThumbnailUtils.createVideoThumbnail( Bitmap thumbnailBitmap = ThumbnailUtils.createVideoThumbnail( file, thumbnailSize, null); file, thumbnailSize, null); mThumbnailIcon = Icon.createWithBitmap(thumbnailBitmap); } catch (IOException e) { } catch (IOException e) { Log.e(TAG, "Error creating thumbnail", e); Log.e(TAG, "Error creating thumbnail", e); } } Loading @@ -402,8 +419,8 @@ public class ScreenMediaRecorder extends MediaProjection.Callback { return mUri; return mUri; } } public @Nullable Bitmap getThumbnail() { public @Nullable Icon getThumbnail() { return mThumbnailBitmap; return mThumbnailIcon; } } } } Loading