Skip to content

The LastReadPositionListener is not working - Can not save last read position #279

Open
@dumanapp

Description

@dumanapp

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

@mahavir155 @hrishikesh-kadam

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions