Browse Source

Merge branch 'master' of github.com:McPhysix/Spherical

feature_fragments
Simon Leistikow 5 years ago
parent
commit
d8de607696
  1. 8
      app/src/main/AndroidManifest.xml
  2. 18
      app/src/main/java/de/trac/spherical/MainActivity.java
  3. 5
      app/src/main/java/de/trac/spherical/parser/SphereParser.java

8
app/src/main/AndroidManifest.xml

@ -2,6 +2,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="de.trac.spherical">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
@ -23,6 +25,12 @@
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<data android:mimeType="image/*" />
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>

18
app/src/main/java/de/trac/spherical/MainActivity.java

@ -75,7 +75,7 @@ public class MainActivity extends AppCompatActivity {
displayPhotoSphere(imageUri);
break;
case MIME_IMAGE:
default:
displayMaybePhotoSphere(imageUri);
break;
}
@ -95,12 +95,10 @@ public class MainActivity extends AppCompatActivity {
String xml = SphereParser.getXMLContent(inputStream);
PhotoSphereMetadata metadata = SphereParser.parse(xml);
inputStream = getContentResolver().openInputStream(uri);
if (metadata.isUsePanoramaViewer()) {
displayPhotoSphere(inputStream, metadata);
if (metadata == null || !metadata.isUsePanoramaViewer()) {
displayFlatImage(getContentResolver().openInputStream(uri));
} else {
displayFlatImage(inputStream);
displayPhotoSphere(getContentResolver().openInputStream(uri), metadata);
}
} catch (FileNotFoundException e) {
@ -120,6 +118,11 @@ public class MainActivity extends AppCompatActivity {
String xml = SphereParser.getXMLContent(inputStream);
PhotoSphereMetadata metadata = SphereParser.parse(xml);
if (metadata == null) {
Log.e(TAG, "Metadata is null. Fall back to flat image.");
displayFlatImage(getContentResolver().openInputStream(uri));
}
displayPhotoSphere(getContentResolver().openInputStream(uri), metadata);
} catch (FileNotFoundException e) {
@ -133,6 +136,7 @@ public class MainActivity extends AppCompatActivity {
private void displayPhotoSphere(InputStream inputStream, PhotoSphereMetadata metadata) {
renderer.setBitmap(BitmapFactory.decodeStream(inputStream));
Log.d(TAG, "Display Photo Sphere!");
}
/**
@ -140,6 +144,6 @@ public class MainActivity extends AppCompatActivity {
* @param inputStream
*/
private void displayFlatImage(InputStream inputStream) {
Toast.makeText(this, "Not yet implemented", Toast.LENGTH_SHORT).show();
Log.d(TAG, "Display Flat Image!");
}
}

5
app/src/main/java/de/trac/spherical/parser/SphereParser.java

@ -115,12 +115,15 @@ public class SphereParser {
byte[] xml = new byte[xmlLen - 2];
i = inputStream.read(xml);
throwIfUnexpectedEOF(i, r.length);
throwIfUnexpectedEOF(i, xml.length);
return new String(xml);
}
public static PhotoSphereMetadata parse(String xmp) {
if (xmp == null) {
return null;
}
PhotoSphereMetadata meta = new PhotoSphereMetadata();
meta.setUsePanoramaViewer(parseBoolean(USE_PANORAMA_VIEWER, xmp, true));
meta.setCaptureSoftware(parseString(CAPTURE_SOFTWARE, xmp));

Loading…
Cancel
Save