@NotNull private static DefaultMutableTreeNode updateTreeStructure(@NotNull DefaultMutableTreeNode treeNode,@NotNull ZipFile compressedApk){
  long compressedSize=0;
  ApkEntry entry=ApkEntry.fromNode(treeNode);
  assert entry != null;
  if (treeNode.getChildCount() > 0) {
    for (int i=0; i < treeNode.getChildCount(); i++) {
      DefaultMutableTreeNode childNode=updateTreeStructure((DefaultMutableTreeNode)treeNode.getChildAt(i),compressedApk);
      compressedSize+=((ApkEntry)childNode.getUserObject()).getCompressedSize();
    }
  }
 else {
    ZipEntry ze=compressedApk.getEntry(ApkFileSystem.getInstance().getRelativePath(entry.getFile()));
    if (ze == null) {
      compressedSize=-1;
    }
 else {
      compressedSize=ze.getCompressedSize();
    }
  }
  entry.setCompressedSize(compressedSize);
  return treeNode;
}

@ NotNull private static DefaultMutableTreeNode updateTreeStructure ( @ NotNull DefaultMutableTreeNode treeNode , @ NotNull ZipFile compressedApk ) { long compressedSize = 0 ; ApkEntry entry = ApkEntry . fromNode ( treeNode ) ; assert entry != null ; if ( treeNode . getChildCount ( ) > 0 ) { for ( int i = 0 ; i < treeNode . getChildCount ( ) ; i ++ ) { DefaultMutableTreeNode childNode = updateTreeStructure ( ( DefaultMutableTreeNode ) treeNode . getChildAt ( i ) , compressedApk ) ; compressedSize += ( ( ApkEntry ) childNode . getUserObject ( ) ) . getCompressedSize ( ) ; } } else { ZipEntry ze = compressedApk . getEntry ( ApkFileSystem . getInstance ( ) . getRelativePath ( entry . getFile ( ) ) ) ; if ( ze == null ) { compressedSize = - 1 ; } else { compressedSize = ze . getCompressedSize ( ) ; } } entry . setCompressedSize ( compressedSize ) ; return treeNode ; }
updates and returns the given tree structure with info about the compressed size of each node .
