Skip to content

Commit 480e53c

Browse files
committed
refactor code
1 parent 50cc061 commit 480e53c

File tree

2 files changed

+21
-56
lines changed

2 files changed

+21
-56
lines changed

app/src/main/java/io/github/subhamtyagi/ocr/MainActivity.java

Lines changed: 20 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package io.github.subhamtyagi.ocr;
22

33
import android.annotation.SuppressLint;
4-
import android.app.ActivityManager;
5-
import android.app.ProgressDialog;
64
import android.content.Context;
75
import android.content.Intent;
86
import android.graphics.Bitmap;
@@ -12,7 +10,6 @@
1210
import android.net.ConnectivityManager;
1311
import android.net.NetworkInfo;
1412
import android.net.Uri;
15-
import android.os.AsyncTask;
1613
import android.os.Bundle;
1714
import android.os.Handler;
1815
import android.os.Looper;
@@ -23,7 +20,6 @@
2320
import android.view.MenuItem;
2421
import android.view.View;
2522
import android.widget.ImageView;
26-
import android.widget.ProgressBar;
2723
import android.widget.TextView;
2824
import android.widget.Toast;
2925

@@ -120,6 +116,12 @@ public class MainActivity extends AppCompatActivity implements TessBaseAPI.Progr
120116
private ExecutorService executorService;
121117
private Handler handler;
122118

119+
private LinearProgressIndicator mProgressSpinner;
120+
private LinearProgressIndicator mProgressBar;
121+
private TextView mProgressTitle;
122+
private TextView mProgressMessage;
123+
124+
123125
@Override
124126
protected void onCreate(Bundle savedInstanceState) {
125127
super.onCreate(savedInstanceState);
@@ -176,7 +178,7 @@ private void initViews() {
176178
Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
177179
if (bitmap != null) {
178180
isRefresh = true;
179-
executorService.submit(new ConvertImageToTextTask(bitmap));
181+
executorService.submit(new ConvertImageToText(bitmap));
180182
}
181183
}
182184
} else {
@@ -351,7 +353,7 @@ private void downloadLanguageData(final String dataType, Set<Language> languages
351353
.setMessage(msg)
352354
.setPositiveButton(R.string.yes, (dialog, which) -> {
353355
dialog.cancel();
354-
executorService.submit(new DownloadTrainingTask(dataType, language.getCode()));
356+
executorService.submit(new DownloadTraining(dataType, language.getCode()));
355357
})
356358
.setNegativeButton(R.string.no, (dialog, which) -> dialog.cancel()).create();
357359
dialog.show();
@@ -395,10 +397,6 @@ private boolean languageDataMissing(final @NonNull String dataType, final @NonNu
395397
return !new File(currentDirectory, String.format(Constants.LANGUAGE_CODE, language.getCode())).exists();
396398
}
397399

398-
/**
399-
* select the image when button is clicked
400-
* using
401-
*/
402400
private void selectImage() {
403401
CropImage.activity()
404402
.setGuidelines(CropImageView.Guidelines.ON)
@@ -421,7 +419,7 @@ private void convertImageToText(Uri imageUri) {
421419
Log.e(TAG, "convertImageToText: " + e.getLocalizedMessage());
422420
}
423421
mImageView.setImageURI(imageUri);
424-
executorService.submit(new ConvertImageToTextTask(bitmap));
422+
executorService.submit(new ConvertImageToText(bitmap));
425423
}
426424

427425
@Override
@@ -468,23 +466,6 @@ public boolean onCreateOptionsMenu(final Menu menu) {
468466
@Override
469467
protected void onStop() {
470468
super.onStop();
471-
472-
/*if (dialog != null) {
473-
dialog.dismiss();
474-
dialog = null;
475-
}
476-
if (mProgressDialog != null) {
477-
mProgressDialog.cancel();
478-
mProgressDialog = null;
479-
}
480-
481-
if (convertImageToTextTask !=null && convertImageToTextTask.getStatus()== AsyncTask.Status.RUNNING){
482-
convertImageToTextTask.cancel(true);
483-
Log.d(TAG, "onDestroy: image processing canceled");
484-
}
485-
if (downloadTrainingTask !=null && downloadTrainingTask.getStatus()== AsyncTask.Status.RUNNING){
486-
downloadTrainingTask.cancel(true);
487-
}*/
488469
}
489470

490471
@Override
@@ -542,14 +523,10 @@ public void showOCRResult(String text) {
542523

543524
}
544525

545-
/**
546-
* A Runnable class to to convert the image into text the return the text in String
547-
*/
548-
549-
private class ConvertImageToTextTask implements Runnable {
526+
private class ConvertImageToText implements Runnable {
550527
private Bitmap bitmap;
551528

552-
public ConvertImageToTextTask(Bitmap bitmap) {
529+
public ConvertImageToText(Bitmap bitmap) {
553530
this.bitmap = bitmap;
554531
}
555532

@@ -597,27 +574,19 @@ private void updateImageView() {
597574
}
598575
}
599576

600-
/**
601-
* Download the training Data and save this to external storage
602-
*/
603-
private LinearProgressIndicator mProgressSpinner;
604-
private LinearProgressIndicator mProgressBar;
605-
private TextView mProgressTitle;
606-
private TextView mProgressMessage;
607-
608-
private class DownloadTrainingTask implements Runnable {
577+
private class DownloadTraining implements Runnable {
609578
private final String dataType;
610579
private final String lang;
611580
private String size;
612581

613-
public DownloadTrainingTask(String dataType, String lang) {
582+
public DownloadTraining(String dataType, String lang) {
614583
this.dataType = dataType;
615584
this.lang = lang;
616585
}
617586

618587
@Override
619588
public void run() {
620-
handler.post(() -> {
589+
handler.post(() -> {
621590
mProgressTitle.setText(getString(R.string.downloading));
622591
mProgressMessage.setText(getString(R.string.downloading_language));
623592
mProgressTitle.setVisibility(View.VISIBLE);
@@ -636,27 +605,24 @@ public void run() {
636605
if (success) {
637606
initializeOCR(Utils.getTrainingDataLanguages(MainActivity.this));
638607
} else {
639-
// Handle failure case
640608
Toast.makeText(MainActivity.this, "Download failed", Toast.LENGTH_SHORT).show();
641609
}
642610
});
643611
}
644612

613+
@SuppressLint("DefaultLocale")
645614
private boolean downloadTrainingData(String dataType, String lang) {
646615
String downloadURL = getDownloadUrl(dataType, lang);
647616
if (downloadURL == null) {
648617
return false;
649618
}
650-
651619
try {
652620
URL url = new URL(downloadURL);
653621
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
654622
conn.setInstanceFollowRedirects(false);
655623
downloadURL = followRedirects(conn, downloadURL);
656-
657624
conn = (HttpURLConnection) new URL(downloadURL).openConnection();
658625
conn.connect();
659-
660626
int totalContentSize = conn.getContentLength();
661627
if (totalContentSize <= 0) {
662628
return false;
@@ -665,9 +631,9 @@ private boolean downloadTrainingData(String dataType, String lang) {
665631

666632
// Switch from indeterminate to determinate progress bar
667633
handler.post(() -> {
668-
mProgressSpinner.setVisibility(View.GONE); // Hide spinner
669-
mProgressBar.setVisibility(View.VISIBLE); // Show determinate progress bar
670-
mProgressMessage.setText("0%" + getString(R.string.percentage_downloaded) + size); // Update message
634+
mProgressSpinner.setVisibility(View.GONE);
635+
mProgressBar.setVisibility(View.VISIBLE);
636+
mProgressMessage.setText(String.format("%d %s %d", 0, getString(R.string.percentage_downloaded), size)); // Update message
671637
mProgressBar.setProgress(0); // Reset progress bar to 0
672638
});
673639

@@ -682,11 +648,9 @@ private boolean downloadTrainingData(String dataType, String lang) {
682648
output.write(data, 0, count);
683649
downloaded += count;
684650
int percentage = (downloaded * 100) / totalContentSize;
685-
686-
// Update progress bar and message
687651
handler.post(() -> {
688652
mProgressBar.setProgress(percentage);
689-
mProgressMessage.setText(percentage + "% " + getString(R.string.percentage_downloaded) + size);
653+
mProgressMessage.setText(String.format("%d %s %d", percentage, getString(R.string.percentage_downloaded), size));
690654
});
691655
}
692656
output.flush();
@@ -715,6 +679,7 @@ private String getDownloadUrl(String dataType, String lang) {
715679
String.format(Constants.TESSERACT_DATA_DOWNLOAD_URL_FAST, lang);
716680
}
717681
}
682+
718683
private String followRedirects(HttpURLConnection conn, String downloadURL) throws IOException {
719684
while (true) {
720685
int responseCode = conn.getResponseCode();

app/src/main/res/layout/activity_main.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
android:foregroundGravity="center"
2626
android:gravity="center_horizontal"
2727
android:orientation="horizontal"
28-
android:visibility="visible">
28+
android:visibility="gone">
2929

3030
<TextView
3131
android:id="@+id/progress_title"

0 commit comments

Comments
 (0)