Working around the aspectJ implementation.

Instead of fully implementing the aspectJ, here we just parse the Box at the
constructor.
The code originially use aspects to implement the parse on demand for various
member functions. However, we can actually just parse in the constructor since
trimming need to parse most of the boxes anyway.

bug:7093055

Change-Id: If53fa9a413d561be80dbd6c4c37b0a14a9cec610
diff --git a/Android.mk b/Android.mk
index 6c6a6e9..d5b1561 100644
--- a/Android.mk
+++ b/Android.mk
@@ -18,6 +18,7 @@
 LOCAL_MODULE := mp4parser
 LOCAL_SDK_VERSION := 9
 LOCAL_SRC_FILES := $(call all-java-files-under, isoparser/src/main/java)
+LOCAL_JAVA_RESOURCE_DIRS := isoparser/src/main/resources
 
 include $(BUILD_STATIC_JAVA_LIBRARY)
 
diff --git a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/SampleEntry.java b/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/SampleEntry.java
index a1a5486..f9eb071 100644
--- a/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/SampleEntry.java
+++ b/isoparser/src/main/java/com/coremedia/iso/boxes/sampleentry/SampleEntry.java
@@ -107,8 +107,9 @@
 
     @Override
     public void parse(ReadableByteChannel readableByteChannel, ByteBuffer header, long contentSize, BoxParser boxParser) throws IOException {
-        super.parse(readableByteChannel, header, contentSize, boxParser);
         this.boxParser = boxParser;
+        super.parse(readableByteChannel, header, contentSize, boxParser);
+
     }
 
 
diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/AbstractBox.java b/isoparser/src/main/java/com/googlecode/mp4parser/AbstractBox.java
index f75bc1d..a2a4541 100644
--- a/isoparser/src/main/java/com/googlecode/mp4parser/AbstractBox.java
+++ b/isoparser/src/main/java/com/googlecode/mp4parser/AbstractBox.java
@@ -112,6 +112,10 @@
             assert contentSize < Integer.MAX_VALUE;
             content = ChannelHelper.readFully(readableByteChannel, contentSize);
         }
+        if (isParsed() == false) {
+            parseDetails();
+        }
+
     }
 
     public void getBox(WritableByteChannel os) throws IOException {
diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/AbstractContainerBox.java b/isoparser/src/main/java/com/googlecode/mp4parser/AbstractContainerBox.java
index 93369f3..e1f944f 100644
--- a/isoparser/src/main/java/com/googlecode/mp4parser/AbstractContainerBox.java
+++ b/isoparser/src/main/java/com/googlecode/mp4parser/AbstractContainerBox.java
@@ -102,8 +102,8 @@
 
     @Override
     public void parse(ReadableByteChannel readableByteChannel, ByteBuffer header, long contentSize, BoxParser boxParser) throws IOException {
-        super.parse(readableByteChannel, header, contentSize, boxParser);
         this.boxParser = boxParser;
+        super.parse(readableByteChannel, header, contentSize, boxParser);
     }
 
     @Override
diff --git a/isoparser/src/main/java/com/googlecode/mp4parser/FullContainerBox.java b/isoparser/src/main/java/com/googlecode/mp4parser/FullContainerBox.java
index d16e47d..30eb285 100644
--- a/isoparser/src/main/java/com/googlecode/mp4parser/FullContainerBox.java
+++ b/isoparser/src/main/java/com/googlecode/mp4parser/FullContainerBox.java
@@ -92,8 +92,9 @@
 
     @Override
     public void parse(ReadableByteChannel readableByteChannel, ByteBuffer header, long contentSize, BoxParser boxParser) throws IOException {
-        super.parse(readableByteChannel, header, contentSize, boxParser);
         this.boxParser = boxParser;
+        super.parse(readableByteChannel, header, contentSize, boxParser);
+
     }
 
     @Override