diff --git a/shaky-sample/src/main/java/com/linkedin/android/shaky/app/ShakyDemo.java b/shaky-sample/src/main/java/com/linkedin/android/shaky/app/ShakyDemo.java index 4c2892c..eafa558 100644 --- a/shaky-sample/src/main/java/com/linkedin/android/shaky/app/ShakyDemo.java +++ b/shaky-sample/src/main/java/com/linkedin/android/shaky/app/ShakyDemo.java @@ -43,7 +43,7 @@ protected void onCreate(Bundle savedInstanceState) { // Initialize ScreenCaptureManager for the Shaky library ((ShakyApplication) getApplication()).getShaky().initializeScreenCapture(this); - + ViewCompat.setOnApplyWindowInsetsListener( getWindow().findViewById(R.id.demo_background), (v, insets) -> { diff --git a/shaky/src/main/java/com/linkedin/android/shaky/ScreenCaptureManager.java b/shaky/src/main/java/com/linkedin/android/shaky/ScreenCaptureManager.java index 9f11581..477fa29 100644 --- a/shaky/src/main/java/com/linkedin/android/shaky/ScreenCaptureManager.java +++ b/shaky/src/main/java/com/linkedin/android/shaky/ScreenCaptureManager.java @@ -15,8 +15,10 @@ import android.view.Display; import android.view.WindowManager; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; +import androidx.activity.result.ActivityResult; +import androidx.activity.result.ActivityResultLauncher; +import androidx.activity.result.contract.ActivityResultContracts; +import androidx.fragment.app.FragmentActivity; import androidx.activity.result.ActivityResult; import androidx.activity.result.ActivityResultLauncher; @@ -81,6 +83,10 @@ public void requestCapturePermission(Activity activity, CaptureCallback callback throw new IllegalStateException("ScreenCaptureManager must be initialized before requesting permission. Call initialize() in onCreate()."); } + if (mediaProjectionLauncher == null) { + throw new IllegalStateException("ScreenCaptureManager must be initialized before requesting permission. Call initialize() in onCreate()."); + } + this.captureCallback = callback; // Get screen metrics @@ -105,10 +111,6 @@ public void requestCapturePermission(Activity activity, CaptureCallback callback */ private void handleActivityResult(ActivityResult result) { if (result.getResultCode() == Activity.RESULT_OK && result.getData() != null) { - return false; - } - - if (resultCode == Activity.RESULT_OK && data != null) { // Start the foreground service before creating MediaProjection ScreenCaptureService.start(appContext);