Description
Issue / Feature - The LastReadPositionListener is not working - Can not save last read position
FolioReader version - Botj of v.0.4.1 and v.0.4.3
FolioReader Stock / Modified - Modified
Android SDK - Android SDK API 20-28
Mobile / Tablet / Emulator Info - Genymotion Google Galaxy Nexus 4.2.2
Crash / Error -
Everything work fine but LastReadPositionListener does not work.
Can not save last read position.
Steps to reproduce / Describe in detail -
It is my java :
`package com.example.ev.myreader;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.Toast;
import com.folioreader.Config;
import com.folioreader.FolioReader;
import com.folioreader.model.HighLight;
import com.folioreader.model.ReadPosition;
import com.folioreader.model.ReadPositionImpl;
import com.folioreader.util.AppUtil;
import com.folioreader.util.OnHighlightListener;
import com.folioreader.util.ReadPositionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class MainActivity extends AppCompatActivity
implements OnHighlightListener,ReadPositionListener
{
private static final String LOG_TAG = MainActivity.class.getSimpleName();
FolioReader folioReader ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
folioReader = FolioReader.get();
folioReader.setOnHighlightListener(this);
folioReader.setReadPositionListener(this);
ReadPosition readPosition = getLastReadPosition();
Config config = AppUtil.getSavedConfig(getApplicationContext());
if (config == null)
config = new Config();
folioReader.setConfig(config, true);
folioReader.setReadPosition(readPosition);
folioReader.openBook("file:///android_asset/pride.epub");
}
@Override
public void onHighlight(HighLight highlight, HighLight.HighLightAction type) {
Toast.makeText(this, "highlight id = " + highlight.getUUID() + " type = " + type, Toast.LENGTH_SHORT).show();
}
@Override
public void saveReadPosition(ReadPosition readPosition) {
Log.i( LOG_TAG,"-> ReadPosition = " + readPosition.toJson());
Toast.makeText(this, "ReadPosition = " + readPosition.toJson(), Toast.LENGTH_LONG).show();
}
private ReadPosition getLastReadPosition(){
String jsonString = loadAssetTextAsString("readpositions/readposition.json");
return ReadPositionImpl.createInstance(jsonString);
}
private String loadAssetTextAsString(String name) {
BufferedReader in = null;
try {
StringBuilder buf = new StringBuilder();
InputStream is = getAssets().open(name);
in = new BufferedReader(new InputStreamReader(is));
String str;
boolean isFirst = true;
while ((str = in.readLine()) != null) {
if (isFirst)
isFirst = false;
else
buf.append('\n');
buf.append(str);
}
return buf.toString();
} catch (IOException e) {
Log.e("MainActivity", "Error opening asset " + name);
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
Log.e("MainActivity", "Error closing asset " + name);
}
}
}
return null;
}
}
`
I can investigate in wikipage and apply it but I think miss somewhere.
So can you help me please?
this is the epub file : https://www.gutenberg.org/ebooks/1342