Skip to content

Commit c2ac755

Browse files
authored
Merge pull request Catrobat#3541 from MeIbtihajnaeem/develop
CATROID-458:Crash while creating a new Actor
2 parents 54455db + 887764d commit c2ac755

File tree

3 files changed

+25
-10
lines changed

3 files changed

+25
-10
lines changed

catroid/src/main/java/org/catrobat/catroid/sensing/CollisionPolygonCreationTask.java

+8-4
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,24 @@
2424
package org.catrobat.catroid.sensing;
2525

2626
import android.os.Process;
27+
import android.util.Log;
2728

2829
import org.catrobat.catroid.common.LookData;
2930

3031
public class CollisionPolygonCreationTask implements Runnable {
31-
3232
private LookData lookdata;
33-
33+
private static final String TAG = CollisionPolygonCreationTask.class.getSimpleName();
3434
public CollisionPolygonCreationTask(LookData lookdata) {
35+
3536
this.lookdata = lookdata;
3637
}
37-
3838
@Override
3939
public void run() {
4040
android.os.Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
41-
lookdata.getCollisionInformation().loadCollisionPolygon();
41+
try {
42+
lookdata.getCollisionInformation().loadCollisionPolygon();
43+
} catch (NullPointerException exception) {
44+
Log.e(TAG, "Image format not supported ");
45+
}
4246
}
4347
}

catroid/src/main/java/org/catrobat/catroid/ui/ProjectActivity.java

+16-5
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,14 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
264264
}
265265
}
266266

267+
public void imgFormatNotSupportedDialog() {
268+
269+
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this).setMessage(getString(R.string.Image_format_not_supported)).setPositiveButton(getString(R.string.ok), (dialog1, which) -> dialog1.cancel());
270+
271+
AlertDialog alertDialog = alertDialogBuilder.create();
272+
alertDialog.show();
273+
}
274+
267275
public void addSpriteFromUri(final Uri uri) {
268276
final Scene currentScene = ProjectManager.getInstance().getCurrentlyEditedScene();
269277

@@ -295,12 +303,15 @@ public void addSpriteFromUri(final Uri uri) {
295303
currentScene.addSprite(sprite);
296304
try {
297305
File imageDirectory = new File(currentScene.getDirectory(), IMAGE_DIRECTORY_NAME);
298-
File file = StorageOperations
299-
.copyUriToDir(getContentResolver(), uri, imageDirectory, lookFileName);
300-
306+
File file = StorageOperations.copyUriToDir(getContentResolver(), uri, imageDirectory, lookFileName);
301307
LookData lookData = new LookData(textInput, file);
302-
sprite.getLookList().add(lookData);
303-
lookData.getCollisionInformation().calculate();
308+
if (lookData.getImageMimeType() == null) {
309+
imgFormatNotSupportedDialog();
310+
currentScene.removeSprite(sprite);
311+
} else {
312+
sprite.getLookList().add(lookData);
313+
lookData.getCollisionInformation().calculate();
314+
}
304315
} catch (IOException e) {
305316
Log.e(TAG, Log.getStackTraceString(e));
306317
}

catroid/src/main/res/values/strings.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -538,7 +538,7 @@
538538
<string name="nfc_tag_name_label">NFC tag name</string>
539539
<string name="string_label">Text</string>
540540
<string name="data_label">Name</string>
541-
541+
<string name="Image_format_not_supported">Image format not supported</string>
542542
<!-- Details -->
543543
<string name="project_details">Last access: %s, size: %s</string>
544544
<string name="last_access_today">today, %s</string>

0 commit comments

Comments
 (0)