Showing
2 changed files
with
30 additions
and
7 deletions
@@ -128,26 +128,48 @@ public class PrintingJob extends PrintDocumentAdapter { | @@ -128,26 +128,48 @@ public class PrintingJob extends PrintDocumentAdapter { | ||
128 | 128 | ||
129 | @Override | 129 | @Override |
130 | public void onFinish() { | 130 | public void onFinish() { |
131 | + Thread thread = new Thread(new Runnable() { | ||
132 | + @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) | ||
133 | + @Override | ||
134 | + public void run() { | ||
131 | try { | 135 | try { |
132 | - while (true) { | 136 | + final boolean[] wait = {true}; |
137 | + while (wait[0]) { | ||
138 | + new Handler(Looper.getMainLooper()).post(new Runnable() { | ||
139 | + @Override | ||
140 | + public void run() { | ||
133 | int state = printJob.getInfo().getState(); | 141 | int state = printJob.getInfo().getState(); |
134 | 142 | ||
135 | if (state == PrintJobInfo.STATE_COMPLETED) { | 143 | if (state == PrintJobInfo.STATE_COMPLETED) { |
136 | - printing.onCompleted(this, true, ""); | ||
137 | - break; | 144 | + printing.onCompleted(PrintingJob.this, true, ""); |
145 | + wait[0] = false; | ||
138 | } else if (state == PrintJobInfo.STATE_CANCELED) { | 146 | } else if (state == PrintJobInfo.STATE_CANCELED) { |
139 | - printing.onCompleted(this, false, "User canceled"); | ||
140 | - break; | 147 | + printing.onCompleted(PrintingJob.this, false, "User canceled"); |
148 | + wait[0] = false; | ||
149 | + } | ||
141 | } | 150 | } |
151 | + }); | ||
142 | 152 | ||
153 | + if (wait[0]) { | ||
143 | Thread.sleep(200); | 154 | Thread.sleep(200); |
144 | } | 155 | } |
145 | - } catch (Exception e) { | ||
146 | - printing.onCompleted(this, printJob != null && printJob.isCompleted(), e.getMessage()); | 156 | + } |
157 | + } catch (final Exception e) { | ||
158 | + new Handler(Looper.getMainLooper()).post(new Runnable() { | ||
159 | + @Override | ||
160 | + public void run() { | ||
161 | + printing.onCompleted(PrintingJob.this, | ||
162 | + printJob != null && printJob.isCompleted(), e.getMessage()); | ||
163 | + } | ||
164 | + }); | ||
147 | } | 165 | } |
148 | 166 | ||
149 | printJob = null; | 167 | printJob = null; |
150 | } | 168 | } |
169 | + }); | ||
170 | + | ||
171 | + thread.start(); | ||
172 | + } | ||
151 | 173 | ||
152 | void printPdf(@NonNull String name, Double width, Double height, Double marginLeft, | 174 | void printPdf(@NonNull String name, Double width, Double height, Double marginLeft, |
153 | Double marginTop, Double marginRight, Double marginBottom) { | 175 | Double marginTop, Double marginRight, Double marginBottom) { |
-
Please register or login to post a comment