| 148 | } |
| 149 | |
| 150 | public void refreshMetadata(final OnException onException) { |
| 151 | worker.add(new Worker.Task() { |
| 152 | String title = ""; |
| 153 | String author = ""; |
| 154 | String format = ""; |
| 155 | String encryption = ""; |
| 156 | boolean print = false; |
| 157 | boolean edit = false; |
| 158 | boolean copy = false; |
| 159 | boolean annotate = false; |
| 160 | boolean form = false; |
| 161 | boolean accessibility = false; |
| 162 | boolean assemble = false; |
| 163 | boolean printHq = false; |
| 164 | boolean isPDF = false; |
| 165 | boolean reflowable = false; |
| 166 | boolean linear = false; |
| 167 | int updates = 0; |
| 168 | int history = 0; |
| 169 | public void work() { |
| 170 | title = doc.getMetaData(Document.META_INFO_TITLE); |
| 171 | author = doc.getMetaData(Document.META_INFO_AUTHOR); |
| 172 | format = doc.getMetaData(Document.META_FORMAT); |
| 173 | encryption = doc.getMetaData(Document.META_ENCRYPTION); |
| 174 | print = doc.hasPermission(Document.PERMISSION_PRINT); |
| 175 | copy = doc.hasPermission(Document.PERMISSION_COPY); |
| 176 | edit = doc.hasPermission(Document.PERMISSION_EDIT); |
| 177 | annotate = doc.hasPermission(Document.PERMISSION_ANNOTATE); |
| 178 | form = doc.hasPermission(Document.PERMISSION_FORM); |
| 179 | accessibility = doc.hasPermission(Document.PERMISSION_ACCESSIBILITY); |
| 180 | assemble = doc.hasPermission(Document.PERMISSION_ASSEMBLE); |
| 181 | printHq = doc.hasPermission(Document.PERMISSION_PRINT_HQ); |
| 182 | reflowable = doc.isReflowable(); |
| 183 | isPDF = doc.isPDF(); |
| 184 | if (isPDF) { |
| 185 | PDFDocument pdf = (PDFDocument) doc; |
| 186 | linear = pdf.wasLinearized(); |
| 187 | updates = pdf.countVersions(); |
| 188 | history = pdf.validateChangeHistory(); |
| 189 | } |
| 190 | } |
| 191 | public void run() { |
| 192 | callback.onMetadataChange(title, author, format, encryption); |
| 193 | callback.onPermissionsChange(print, copy, edit, annotate, form, accessibility, assemble, printHq); |
| 194 | callback.onReflowableChange(reflowable); |
| 195 | if (isPDF) { |
| 196 | callback.onLinearizedChange(linear); |
| 197 | callback.onUpdatesChange(updates, history); |
| 198 | } |
| 199 | } |
| 200 | public void exception(Throwable t) { |
| 201 | if (onException != null) |
| 202 | onException.run(t); |
| 203 | } |
| 204 | }); |
| 205 | } |
| 206 | |
| 207 | protected void loadDocument(final OnException onException) { |