|
|
@ -9,6 +9,7 @@ import android.graphics.drawable.ColorDrawable |
|
|
|
import android.net.Uri |
|
|
|
import android.net.Uri |
|
|
|
import android.os.Bundle |
|
|
|
import android.os.Bundle |
|
|
|
import android.os.Handler |
|
|
|
import android.os.Handler |
|
|
|
|
|
|
|
import android.util.Log |
|
|
|
import android.view.* |
|
|
|
import android.view.* |
|
|
|
import android.view.ViewGroup.LayoutParams.WRAP_CONTENT |
|
|
|
import android.view.ViewGroup.LayoutParams.WRAP_CONTENT |
|
|
|
import androidx.core.view.get |
|
|
|
import androidx.core.view.get |
|
|
@ -56,16 +57,14 @@ import io.legado.app.ui.widget.dialog.TextDialog |
|
|
|
import io.legado.app.utils.* |
|
|
|
import io.legado.app.utils.* |
|
|
|
import kotlinx.android.synthetic.main.activity_book_read.* |
|
|
|
import kotlinx.android.synthetic.main.activity_book_read.* |
|
|
|
import kotlinx.android.synthetic.main.view_read_menu.* |
|
|
|
import kotlinx.android.synthetic.main.view_read_menu.* |
|
|
|
import kotlinx.coroutines.CoroutineScope |
|
|
|
import kotlinx.coroutines.* |
|
|
|
import kotlinx.coroutines.Dispatchers.IO |
|
|
|
import kotlinx.coroutines.Dispatchers.IO |
|
|
|
import kotlinx.coroutines.Dispatchers.Main |
|
|
|
import kotlinx.coroutines.Dispatchers.Main |
|
|
|
import kotlinx.coroutines.async |
|
|
|
|
|
|
|
import kotlinx.coroutines.delay |
|
|
|
|
|
|
|
import kotlinx.coroutines.launch |
|
|
|
|
|
|
|
import org.jetbrains.anko.sdk27.listeners.onClick |
|
|
|
import org.jetbrains.anko.sdk27.listeners.onClick |
|
|
|
import org.jetbrains.anko.startActivity |
|
|
|
import org.jetbrains.anko.startActivity |
|
|
|
import org.jetbrains.anko.startActivityForResult |
|
|
|
import org.jetbrains.anko.startActivityForResult |
|
|
|
import org.jetbrains.anko.toast |
|
|
|
import org.jetbrains.anko.toast |
|
|
|
|
|
|
|
import java.lang.Runnable |
|
|
|
|
|
|
|
|
|
|
|
class ReadBookActivity : VMBaseActivity<ReadBookViewModel>(R.layout.activity_book_read), |
|
|
|
class ReadBookActivity : VMBaseActivity<ReadBookViewModel>(R.layout.activity_book_read), |
|
|
|
View.OnTouchListener, |
|
|
|
View.OnTouchListener, |
|
|
@ -789,14 +788,22 @@ class ReadBookActivity : VMBaseActivity<ReadBookViewModel>(R.layout.activity_boo |
|
|
|
pages = ReadBook.curTextChapter?.pages |
|
|
|
pages = ReadBook.curTextChapter?.pages |
|
|
|
} |
|
|
|
} |
|
|
|
val positions = ReadBook.searchResultPositions(pages, indexWithinChapter, query!!) |
|
|
|
val positions = ReadBook.searchResultPositions(pages, indexWithinChapter, query!!) |
|
|
|
//todo: show selected text |
|
|
|
while (ReadBook.durPageIndex != positions[0]){ |
|
|
|
val job1 = async(Main){ |
|
|
|
delay(100L) |
|
|
|
ReadBook.skipToPage(positions[0]) |
|
|
|
ReadBook.skipToPage(positions[0]) |
|
|
|
page_view.curPage.selectStartMoveIndex(positions[0], positions[1], 0) |
|
|
|
} |
|
|
|
page_view.curPage.selectEndMoveIndex(positions[0], positions[1], 0 + query.length ) |
|
|
|
withContext(Main){ |
|
|
|
|
|
|
|
page_view.curPage.selectStartMoveIndex(0, positions[1], positions[2]) |
|
|
|
|
|
|
|
delay(20L) |
|
|
|
|
|
|
|
when (positions[3]){ |
|
|
|
|
|
|
|
0 -> page_view.curPage.selectEndMoveIndex(0, positions[1], positions[2] + query.length - 1) |
|
|
|
|
|
|
|
1 -> page_view.curPage.selectEndMoveIndex(0, positions[1] + 1, positions[4]) |
|
|
|
|
|
|
|
//todo: consider change page, jump to scroll position |
|
|
|
|
|
|
|
-1 -> page_view.curPage.selectEndMoveIndex(1, 0, positions[4]) |
|
|
|
|
|
|
|
} |
|
|
|
page_view.isTextSelected = true |
|
|
|
page_view.isTextSelected = true |
|
|
|
|
|
|
|
delay(100L) |
|
|
|
} |
|
|
|
} |
|
|
|
job1.await() |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
requestCodeReplace -> onReplaceRuleSave() |
|
|
|
requestCodeReplace -> onReplaceRuleSave() |
|
|
|