Fix bug on markdown processing
This commit is contained in:
parent
46c084a454
commit
3955337309
10 changed files with 65 additions and 19 deletions
|
@ -36,8 +36,8 @@ android {
|
|||
applicationId "com.wbrawner.simplemarkdown"
|
||||
minSdkVersion 19
|
||||
targetSdkVersion 27
|
||||
versionCode 4
|
||||
versionName "0.3.0"
|
||||
versionCode 5
|
||||
versionName "0.3.1"
|
||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
buildTypes {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package com.wbrawner.simplemarkdown.model;
|
||||
|
||||
import com.wbrawner.simplemarkdown.Utils;
|
||||
import com.wbrawner.simplemarkdown.utility.Utils;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
|
@ -11,7 +11,6 @@ import java.io.IOException;
|
|||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.util.Scanner;
|
||||
|
||||
/**
|
||||
* This class serves as a wrapper to manage the manage the file input and output operations, as well
|
||||
|
|
|
@ -7,8 +7,8 @@ import android.os.Handler;
|
|||
import android.provider.OpenableColumns;
|
||||
|
||||
import com.commonsware.cwac.anddown.AndDown;
|
||||
import com.wbrawner.simplemarkdown.Utils;
|
||||
import com.wbrawner.simplemarkdown.model.MarkdownFile;
|
||||
import com.wbrawner.simplemarkdown.utility.Utils;
|
||||
import com.wbrawner.simplemarkdown.view.MarkdownEditView;
|
||||
import com.wbrawner.simplemarkdown.view.MarkdownPreviewView;
|
||||
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
package com.wbrawner.simplemarkdown.utility;
|
||||
|
||||
import com.crashlytics.android.Crashlytics;
|
||||
import com.wbrawner.simplemarkdown.BuildConfig;
|
||||
import com.wbrawner.simplemarkdown.presentation.MarkdownPresenter;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
public class MarkdownObserver implements Observer<String> {
|
||||
private MarkdownPresenter presenter;
|
||||
private Observable<String> obs;
|
||||
|
||||
public MarkdownObserver(MarkdownPresenter presenter, Observable<String> obs) {
|
||||
this.presenter = presenter;
|
||||
this.obs = obs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(String markdown) {
|
||||
presenter.onMarkdownEdited(markdown);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
System.err.println("An error occurred while handling the markdown");
|
||||
e.printStackTrace();
|
||||
// TODO: Remove this once the error is confirmed to have disappeared
|
||||
if (!BuildConfig.DEBUG) {
|
||||
Crashlytics.logException(e);
|
||||
}
|
||||
obs.subscribe(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package com.wbrawner.simplemarkdown;
|
||||
package com.wbrawner.simplemarkdown.utility;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
|
@ -9,7 +9,6 @@ import com.wbrawner.simplemarkdown.view.activity.SettingsActivity;
|
|||
|
||||
import java.io.Closeable;
|
||||
import java.io.File;
|
||||
import java.io.FilenameFilter;
|
||||
import java.io.IOException;
|
||||
import java.util.Locale;
|
||||
import java.util.regex.Matcher;
|
|
@ -16,7 +16,7 @@ import android.widget.ListView;
|
|||
import android.widget.SimpleAdapter;
|
||||
|
||||
import com.wbrawner.simplemarkdown.R;
|
||||
import com.wbrawner.simplemarkdown.Utils;
|
||||
import com.wbrawner.simplemarkdown.utility.Utils;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
|
@ -25,8 +25,6 @@ import java.util.List;
|
|||
import java.util.Locale;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import io.reactivex.annotations.BackpressureSupport;
|
||||
|
||||
public class ExplorerActivity extends AppCompatActivity {
|
||||
private Handler fileHandler = new Handler();
|
||||
private ListView listView;
|
||||
|
|
|
@ -6,12 +6,12 @@ import android.content.pm.PackageManager;
|
|||
import android.content.res.AssetManager;
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.design.widget.TabLayout;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.os.Bundle;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
|
@ -19,8 +19,8 @@ import android.widget.Toast;
|
|||
|
||||
import com.wbrawner.simplemarkdown.MarkdownApplication;
|
||||
import com.wbrawner.simplemarkdown.R;
|
||||
import com.wbrawner.simplemarkdown.Utils;
|
||||
import com.wbrawner.simplemarkdown.presentation.MarkdownPresenter;
|
||||
import com.wbrawner.simplemarkdown.utility.Utils;
|
||||
import com.wbrawner.simplemarkdown.view.DisableableViewPager;
|
||||
import com.wbrawner.simplemarkdown.view.adapter.EditPagerAdapter;
|
||||
|
||||
|
|
|
@ -6,8 +6,8 @@ import android.support.annotation.Nullable;
|
|||
import android.support.v7.app.AppCompatActivity;
|
||||
|
||||
import com.wbrawner.simplemarkdown.MarkdownApplication;
|
||||
import com.wbrawner.simplemarkdown.Utils;
|
||||
import com.wbrawner.simplemarkdown.presentation.MarkdownPresenter;
|
||||
import com.wbrawner.simplemarkdown.utility.Utils;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
|
|
|
@ -14,8 +14,9 @@ import android.widget.Toast;
|
|||
import com.jakewharton.rxbinding2.widget.RxTextView;
|
||||
import com.wbrawner.simplemarkdown.MarkdownApplication;
|
||||
import com.wbrawner.simplemarkdown.R;
|
||||
import com.wbrawner.simplemarkdown.Utils;
|
||||
import com.wbrawner.simplemarkdown.presentation.MarkdownPresenter;
|
||||
import com.wbrawner.simplemarkdown.utility.MarkdownObserver;
|
||||
import com.wbrawner.simplemarkdown.utility.Utils;
|
||||
import com.wbrawner.simplemarkdown.view.MarkdownEditView;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
@ -51,10 +52,11 @@ public class EditFragment extends Fragment implements MarkdownEditView {
|
|||
((MarkdownApplication) activity.getApplication()).getComponent().inject(this);
|
||||
}
|
||||
Observable<String> obs = RxTextView.textChanges(markdownEditor)
|
||||
.debounce(50, TimeUnit.MILLISECONDS).map(CharSequence::toString);
|
||||
obs.subscribeOn(Schedulers.io());
|
||||
obs.observeOn(AndroidSchedulers.mainThread());
|
||||
obs.subscribe(markdown -> presenter.onMarkdownEdited(markdown));
|
||||
.debounce(50, TimeUnit.MILLISECONDS)
|
||||
.map(CharSequence::toString)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread());
|
||||
obs.subscribe(new MarkdownObserver(presenter, obs));
|
||||
return view;
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import android.content.Context;
|
|||
import android.content.SharedPreferences;
|
||||
import android.preference.PreferenceManager;
|
||||
|
||||
import com.wbrawner.simplemarkdown.utility.Utils;
|
||||
import com.wbrawner.simplemarkdown.view.activity.SettingsActivity;
|
||||
|
||||
import org.junit.After;
|
||||
|
@ -16,7 +17,9 @@ import org.robolectric.RuntimeEnvironment;
|
|||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@SuppressWarnings("ResultOfMethodCallIgnored")
|
||||
|
|
Loading…
Reference in a new issue