Loading packages/SystemUI/src/com/android/systemui/screenrecord/RecordingService.java +12 −9 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import com.android.internal.logging.UiEventLogger; import com.android.systemui.R; import com.android.systemui.dagger.qualifiers.LongRunning; import com.android.systemui.settings.CurrentUserContextTracker; import com.android.systemui.statusbar.phone.KeyguardDismissUtil; import java.io.IOException; import java.util.concurrent.Executor; Loading Loading @@ -70,7 +71,7 @@ public class RecordingService extends Service implements MediaRecorder.OnInfoLis private static final String ACTION_SHARE = "com.android.systemui.screenrecord.SHARE"; private final RecordingController mController; private final KeyguardDismissUtil mKeyguardDismissUtil; private ScreenRecordingAudioSource mAudioSource; private boolean mShowTaps; private boolean mOriginalShowTaps; Loading @@ -83,12 +84,13 @@ public class RecordingService extends Service implements MediaRecorder.OnInfoLis @Inject public RecordingService(RecordingController controller, @LongRunning Executor executor, UiEventLogger uiEventLogger, NotificationManager notificationManager, CurrentUserContextTracker userContextTracker) { CurrentUserContextTracker userContextTracker, KeyguardDismissUtil keyguardDismissUtil) { mController = controller; mLongExecutor = executor; mUiEventLogger = uiEventLogger; mNotificationManager = notificationManager; mUserContextTracker = userContextTracker; mKeyguardDismissUtil = keyguardDismissUtil; } /** Loading Loading @@ -168,16 +170,17 @@ public class RecordingService extends Service implements MediaRecorder.OnInfoLis Intent shareIntent = new Intent(Intent.ACTION_SEND) .setType("video/mp4") .putExtra(Intent.EXTRA_STREAM, shareUri); mKeyguardDismissUtil.executeWhenUnlocked(() -> { String shareLabel = getResources().getString(R.string.screenrecord_share_label); // Close quick shade sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)); startActivity(Intent.createChooser(shareIntent, shareLabel) .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); // Remove notification mNotificationManager.cancelAsUser(null, NOTIFICATION_VIEW_ID, currentUser); return false; }, false); startActivity(Intent.createChooser(shareIntent, shareLabel) .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); // Close quick shade sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)); break; } return Service.START_STICKY; Loading packages/SystemUI/tests/src/com/android/systemui/screenrecord/RecordingServiceTest.java +9 −1 Original line number Diff line number Diff line Loading @@ -32,7 +32,9 @@ import androidx.test.filters.SmallTest; import com.android.internal.logging.UiEventLogger; import com.android.systemui.SysuiTestCase; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.settings.CurrentUserContextTracker; import com.android.systemui.statusbar.phone.KeyguardDismissUtil; import org.junit.Before; import org.junit.Test; Loading Loading @@ -61,6 +63,12 @@ public class RecordingServiceTest extends SysuiTestCase { private Executor mExecutor; @Mock private CurrentUserContextTracker mUserContextTracker; private KeyguardDismissUtil mKeyguardDismissUtil = new KeyguardDismissUtil() { public void executeWhenUnlocked(ActivityStarter.OnDismissAction action, boolean requiresShadeOpen) { action.onDismiss(); } }; private RecordingService mRecordingService; Loading @@ -68,7 +76,7 @@ public class RecordingServiceTest extends SysuiTestCase { public void setUp() throws Exception { MockitoAnnotations.initMocks(this); mRecordingService = Mockito.spy(new RecordingService(mController, mExecutor, mUiEventLogger, mNotificationManager, mUserContextTracker)); mNotificationManager, mUserContextTracker, mKeyguardDismissUtil)); // Return actual context info doReturn(mContext).when(mRecordingService).getApplicationContext(); Loading Loading
packages/SystemUI/src/com/android/systemui/screenrecord/RecordingService.java +12 −9 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import com.android.internal.logging.UiEventLogger; import com.android.systemui.R; import com.android.systemui.dagger.qualifiers.LongRunning; import com.android.systemui.settings.CurrentUserContextTracker; import com.android.systemui.statusbar.phone.KeyguardDismissUtil; import java.io.IOException; import java.util.concurrent.Executor; Loading Loading @@ -70,7 +71,7 @@ public class RecordingService extends Service implements MediaRecorder.OnInfoLis private static final String ACTION_SHARE = "com.android.systemui.screenrecord.SHARE"; private final RecordingController mController; private final KeyguardDismissUtil mKeyguardDismissUtil; private ScreenRecordingAudioSource mAudioSource; private boolean mShowTaps; private boolean mOriginalShowTaps; Loading @@ -83,12 +84,13 @@ public class RecordingService extends Service implements MediaRecorder.OnInfoLis @Inject public RecordingService(RecordingController controller, @LongRunning Executor executor, UiEventLogger uiEventLogger, NotificationManager notificationManager, CurrentUserContextTracker userContextTracker) { CurrentUserContextTracker userContextTracker, KeyguardDismissUtil keyguardDismissUtil) { mController = controller; mLongExecutor = executor; mUiEventLogger = uiEventLogger; mNotificationManager = notificationManager; mUserContextTracker = userContextTracker; mKeyguardDismissUtil = keyguardDismissUtil; } /** Loading Loading @@ -168,16 +170,17 @@ public class RecordingService extends Service implements MediaRecorder.OnInfoLis Intent shareIntent = new Intent(Intent.ACTION_SEND) .setType("video/mp4") .putExtra(Intent.EXTRA_STREAM, shareUri); mKeyguardDismissUtil.executeWhenUnlocked(() -> { String shareLabel = getResources().getString(R.string.screenrecord_share_label); // Close quick shade sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)); startActivity(Intent.createChooser(shareIntent, shareLabel) .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); // Remove notification mNotificationManager.cancelAsUser(null, NOTIFICATION_VIEW_ID, currentUser); return false; }, false); startActivity(Intent.createChooser(shareIntent, shareLabel) .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); // Close quick shade sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)); break; } return Service.START_STICKY; Loading
packages/SystemUI/tests/src/com/android/systemui/screenrecord/RecordingServiceTest.java +9 −1 Original line number Diff line number Diff line Loading @@ -32,7 +32,9 @@ import androidx.test.filters.SmallTest; import com.android.internal.logging.UiEventLogger; import com.android.systemui.SysuiTestCase; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.settings.CurrentUserContextTracker; import com.android.systemui.statusbar.phone.KeyguardDismissUtil; import org.junit.Before; import org.junit.Test; Loading Loading @@ -61,6 +63,12 @@ public class RecordingServiceTest extends SysuiTestCase { private Executor mExecutor; @Mock private CurrentUserContextTracker mUserContextTracker; private KeyguardDismissUtil mKeyguardDismissUtil = new KeyguardDismissUtil() { public void executeWhenUnlocked(ActivityStarter.OnDismissAction action, boolean requiresShadeOpen) { action.onDismiss(); } }; private RecordingService mRecordingService; Loading @@ -68,7 +76,7 @@ public class RecordingServiceTest extends SysuiTestCase { public void setUp() throws Exception { MockitoAnnotations.initMocks(this); mRecordingService = Mockito.spy(new RecordingService(mController, mExecutor, mUiEventLogger, mNotificationManager, mUserContextTracker)); mNotificationManager, mUserContextTracker, mKeyguardDismissUtil)); // Return actual context info doReturn(mContext).when(mRecordingService).getApplicationContext(); Loading