Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IDE-73 Add camera picture to screenshot #5006

Open
wants to merge 5 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
IDE-73 fix manual screenshot logic, fix warnings
  • Loading branch information
Jakob committed Jun 27, 2024
commit 915a381f99b15209b41f8cf04212e17e16f1a705
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
* Catroid: An on-device visual programming system for Android devices
* Copyright (C) 2010-2022 The Catrobat Team
* Copyright (C) 2010-2024 The Catrobat Team
* (<https://developer.catrobat.org/credits>)
*
* This program is free software: you can redistribute it and/or modify
Expand Down Expand Up @@ -45,7 +45,11 @@ import org.mockito.internal.verification.VerificationModeFactory.times
import java.io.File

@RunWith(Parameterized::class)
class ScreenshotSaverTest(private val name: String, private val fileName: String?, private val expectedResult: Boolean) {
class ScreenshotSaverTest(
private val name: String,
private val fileName: String?,
private val expectedResult: Boolean
) {
@Rule
@JvmField
var activityTestRule = ActivityTestRule(StageActivity::class.java, false, true)
Expand All @@ -54,11 +58,11 @@ class ScreenshotSaverTest(private val name: String, private val fileName: String
@JvmStatic
@Parameterized.Parameters(name = "{0}")
fun data() = listOf(
arrayOf("VALID", "valid.png", true),
arrayOf("NULL", null, false),
arrayOf("WHITESPACES", " ", false),
arrayOf("ILLEGAL_CHARACTERS", "|\\?*<\":>+[]/'", false)
)
arrayOf("VALID", "valid.png", true),
arrayOf("NULL", null, false),
arrayOf("WHITESPACES", " ", false),
arrayOf("ILLEGAL_CHARACTERS", "|\\?*<\":>+[]/'", false)
)
}

private lateinit var screenshotSaver: ScreenshotSaver
Expand All @@ -70,7 +74,7 @@ class ScreenshotSaverTest(private val name: String, private val fileName: String
ScreenValues.setToDefaultScreenSize()
val height = ScreenValues.currentScreenResolution.height
val width = ScreenValues.currentScreenResolution.width
dummyData = Pixmap(width, height, Format.RGBA8888);
dummyData = Pixmap(width, height, Format.RGBA8888)
val stageActivity = activityTestRule.activity
val folder = stageActivity.cacheDir.absolutePath + "/"
gdxFileHandler = AndroidFiles(stageActivity.assets, stageActivity.filesDir.absolutePath)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
* Catroid: An on-device visual programming system for Android devices
* Copyright (C) 2010-2022 The Catrobat Team
* Copyright (C) 2010-2024 The Catrobat Team
* (<https://developer.catrobat.org/credits>)
*
* This program is free software: you can redistribute it and/or modify
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
* Catroid: An on-device visual programming system for Android devices
* Copyright (C) 2010-2022 The Catrobat Team
* Copyright (C) 2010-2024 The Catrobat Team
* (<https://developer.catrobat.org/credits>)
*
* This program is free software: you can redistribute it and/or modify
Expand Down Expand Up @@ -83,7 +83,8 @@ class ScreenshotSaver(
}

private fun saveScreenshot(
data: Pixmap, fileName: String
data: Pixmap,
fileName: String
): Boolean {
val fullScreenBitmap: Bitmap =
if (StageActivity.getActiveCameraManager() != null && StageActivity.getActiveCameraManager().previewVisible &&
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import java.io.ByteArrayOutputStream

object ScreenshotUtils {

@SuppressWarnings("MagicNumber")
fun convertPixmapToBitmap(pixmap: Pixmap): Bitmap {
var y: Int
var yl: Int
Expand All @@ -53,13 +54,15 @@ object ScreenshotUtils {
return bmp
}

@SuppressWarnings("MagicNumber")
fun convertBitmapToPixmap(bitmap: Bitmap): Pixmap {
val stream = ByteArrayOutputStream()
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream)
val byteArray = stream.toByteArray()
return Pixmap(byteArray, 0, byteArray.size)
}

@SuppressWarnings("MagicNumber")
fun getFrameBufferPixmapFlip(x: Int, y: Int, w: Int, h: Int, flipY: Boolean): Pixmap {
val pixmap = ScreenUtils.getFrameBufferPixmap(x, y, w, h)
val pixels = pixmap.pixels
Expand Down Expand Up @@ -116,4 +119,4 @@ object ScreenshotUtils {
)
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
* Catroid: An on-device visual programming system for Android devices
* Copyright (C) 2010-2022 The Catrobat Team
* Copyright (C) 2010-2024 The Catrobat Team
* (<https://developer.catrobat.org/credits>)
*
* This program is free software: you can redistribute it and/or modify
Expand Down Expand Up @@ -252,10 +252,8 @@ public void onBackPressed() {
} else {
StageLifeCycleController.stagePause(this);
idlingResource.increment();
if (cameraManager != null && cameraManager.getPreviewVisible()) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
cameraManager.makePreviewScreenShot();
}
if (cameraManager != null && cameraManager.getPreviewVisible() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
cameraManager.makePreviewScreenShot();
}
stageListener.requestTakingScreenshot(SCREENSHOT_AUTOMATIC_FILE_NAME,
success -> runOnUiThread(() -> idlingResource.decrement()));
Expand Down Expand Up @@ -307,7 +305,7 @@ void calculateScreenSizes() {
ScreenValues.currentScreenResolution.flipToFit(projectResolution);

resizePossible = ScreenValues.currentScreenResolution.sameRatioOrMeasurements(projectResolution)
|| ProjectManager.getInstance().getCurrentProject().isCastProject();
|| ProjectManager.getInstance().getCurrentProject().isCastProject();

if (resizePossible) {
stageListener.setMaxViewPort(projectResolution.resizeToFit(ScreenValues.currentScreenResolution));
Expand Down Expand Up @@ -417,7 +415,7 @@ public void adaptToDeniedPermissions(List<String> deniedPermissions) {
Brick.ResourcesSet requiredResources = new Brick.ResourcesSet();
Project project = ProjectManager.getInstance().getCurrentProject();

for (Scene scene: project.getSceneList()) {
for (Scene scene : project.getSceneList()) {
for (Sprite sprite : scene.getSpriteList()) {
for (Brick brick : sprite.getAllBricks()) {
brick.addRequiredResources(requiredResources);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
* Catroid: An on-device visual programming system for Android devices
* Copyright (C) 2010-2023 The Catrobat Team
* Copyright (C) 2010-2024 The Catrobat Team
* (<https://developer.catrobat.org/credits>)
*
* This program is free software: you can redistribute it and/or modify
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
* Catroid: An on-device visual programming system for Android devices
* Copyright (C) 2010-2022 The Catrobat Team
* Copyright (C) 2010-2024 The Catrobat Team
* (<https://developer.catrobat.org/credits>)
*
* This program is free software: you can redistribute it and/or modify
Expand All @@ -24,7 +24,6 @@

import android.app.Dialog;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.os.SystemClock;
import android.util.Log;
Expand Down Expand Up @@ -199,11 +198,7 @@ private void makeScreenshot() {
ToastUtil.showError(getContext(), stageActivity.getResources().getString(R.string.cast_error_not_connected_msg));
return;
}
if (StageActivity.getActiveCameraManager() != null && StageActivity.getActiveCameraManager().getPreviewVisible()) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
StageActivity.getActiveCameraManager().makePreviewScreenShot();
}
}

stageListener.requestTakingScreenshot(SCREENSHOT_MANUAL_FILE_NAME,
success -> {
if (success) {
Expand Down