Skip to content

Commit

Permalink
rx
Browse files Browse the repository at this point in the history
  • Loading branch information
aerdy committed Mar 20, 2017
1 parent 46aa224 commit 367c050
Show file tree
Hide file tree
Showing 9 changed files with 97 additions and 75 deletions.
1 change: 0 additions & 1 deletion .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions PDFVigerLib/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,6 @@ dependencies {
compile 'com.squareup.okhttp3:okhttp-urlconnection:3.4.1'
compile 'com.eftimoff:android-viewpager-transformers:1.0.1@aar'
compile "com.android.support:support-core-utils:25.1.0"
compile 'io.reactivex.rxjava2:rxjava:2.0.6'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public class VigerPDF {
static OnResultListener onResultListener;

public VigerPDF(Context context, File file) {
new RenderingPDF(context, file, 0).execute();
new RenderingPDF(context, file, 0);
}

public VigerPDF(Context context, String endpoint) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,70 +22,76 @@
import java.util.ArrayList;
import java.util.Date;

import io.reactivex.Observable;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;

/**
* Created by Vim on 1/31/2017.
*/

public class RenderingPDF extends AsyncTask<Void, Bitmap, ArrayList<Bitmap>> {
public class RenderingPDF {
File file;
Context context;
int pageCount, pageData, type;
int pageCount, type;
Observable<Bitmap> observable;

public RenderingPDF(Context context, File file, int type) {
this.file = file;
this.context = context;
this.type = type;
initRun();
}

@Override
protected ArrayList<Bitmap> doInBackground(Void... params) {
try {
ArrayList<Bitmap> uris = new ArrayList<>();
DecodeServiceBase decodeService = new DecodeServiceBase(new PdfContext());
decodeService.setContentResolver(context.getContentResolver());
decodeService.open(Uri.fromFile(file));
pageCount = decodeService.getPageCount();

int a = 10;
for (int i = 0; i < pageCount; i++) {
pageData = i;
if (isCancelled()) {
break;
}
CodecPage page = decodeService.getPage(i);
RectF rectF = new RectF(0, 0, 1, 1);
Bitmap bitmap = page.renderBitmap(decodeService.getPageWidth(i), decodeService.getPageHeight(i), rectF);
publishProgress(bitmap);
if (i == a) {
a = a + 10;
try {
Thread.currentThread();
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
private void initRun() {
observable.create(new ObservableOnSubscribe<Bitmap>() {
@Override
public void subscribe(ObservableEmitter<Bitmap> e) throws Exception {
try {
DecodeServiceBase decodeService = new DecodeServiceBase(new PdfContext());
decodeService.setContentResolver(context.getContentResolver());
decodeService.open(Uri.fromFile(file));
pageCount = decodeService.getPageCount();
for (int i = 0; i < pageCount; i++) {
CodecPage page = decodeService.getPage(i);
RectF rectF = new RectF(0, 0, 1, 1);
Bitmap bitmap = page.renderBitmap(decodeService.getPageWidth(i), decodeService.getPageHeight(i), rectF);
e.onNext(bitmap);
}
if (type == 1) {
file.delete();
}
e.onComplete();

} catch (Exception ee) {
e.onError(ee);
}
}
if (type == 1) {
file.delete();
}

return uris;

} catch (Exception e) {
}).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<Bitmap>() {
@Override
public void onSubscribe(Disposable d) {
}

}
return null;
@Override
public void onNext(Bitmap value) {
VigerPDF.setData(value);
}

}
@Override
public void onError(Throwable e) {
Log.d("data", e.getMessage());
}

@Override
protected void onProgressUpdate(Bitmap... values) {
VigerPDF.setData(values[0]);
@Override
public void onComplete() {
}
});
}

@Override
public void onPostExecute(ArrayList<Bitmap> uris) {

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,14 @@
import java.util.ArrayList;
import java.util.Date;

import io.reactivex.Observable;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Action;
import io.reactivex.schedulers.Schedulers;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.Callback;
Expand All @@ -30,6 +38,8 @@

public class RenderingPDFNetwork {
private Context context;
private Observable<String> observable;

public RenderingPDFNetwork(Context context, String endpoint) {
this.context = context;
final RestClient.ApiInterface service = RestClient.getClient();
Expand All @@ -52,9 +62,9 @@ public void onFailure(Call<ResponseBody> call, Throwable t) {
}

private boolean writeResponseBodyToDisk(final ResponseBody body) {
new AsyncTask<Void, String, String>() {
observable.create(new ObservableOnSubscribe<String>() {
@Override
protected String doInBackground(Void... params) {
public void subscribe(ObservableEmitter<String> e) throws Exception {
try {
String root = Environment.getExternalStorageDirectory().toString();
final File pdfFolder = new File(root + "/Android/data/" + context.getPackageName());
Expand All @@ -73,22 +83,21 @@ protected String doInBackground(Void... params) {
outputStream = new FileOutputStream(path);

while (true) {
if (isCancelled()) {
break;
}
int read = inputStream.read(fileReader);
if (read == -1) {
break;
}
outputStream.write(fileReader, 0, read);
fileSizeDownloaded += read;
publishProgress("" + (int) ((fileSizeDownloaded * 100) / fileSize));
e.onNext("" + (int) ((fileSizeDownloaded * 100) / fileSize));
}

outputStream.flush();

} catch (IOException e) {
} catch (IOException ee) {
// Log.e("data",e.getMessage());
e.onError(ee);
e.onComplete();
} finally {
if (inputStream != null) {
inputStream.close();
Expand All @@ -97,29 +106,36 @@ protected String doInBackground(Void... params) {
outputStream.close();
}
}
return path;
} catch (IOException e) {
return null;
File file = new File(path);
new RenderingPDF(context, file, 1);
e.onComplete();
} catch (IOException ee) {
e.onError(ee);
e.onComplete();
}
}
}).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<String>() {
@Override
public void onSubscribe(Disposable d) {
}

@Override
public void onNext(String s) {
Log.e("data", "" + Integer.parseInt(s));
}

@Override
protected void onProgressUpdate(String... values) {
Log.e("data",""+Integer.parseInt(values[0]));
}
@Override
public void onError(Throwable e) {

@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
try {
File file = new File(s);
new RenderingPDF(context, file, 1).execute();
} catch (Exception e) {
}

}
}
}.execute();
@Override
public void onComplete() {

}
});
return true;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public Response intercept(Chain chain) throws IOException {
.build();

Retrofit client = new Retrofit.Builder()
.baseUrl("http://google.com")
.baseUrl("http://necistudio.com")
.client(okclient)
.addConverterFactory(GsonConverterFactory.create())
.build();
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0-rc1'
classpath 'com.android.tools.build:gradle:2.3.0'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
Expand Down
2 changes: 1 addition & 1 deletion settings.gradle
Original file line number Diff line number Diff line change
@@ -1 +1 @@
include ':SampleViger', ':PDFVigerLib', ':PDFCreateLib'
include ':SampleViger', ':PDFVigerLib'

0 comments on commit 367c050

Please sign in to comment.