Improve reader
parent
bbe28f769d
commit
69db8a6537
@ -0,0 +1,58 @@
|
|||||||
|
package org.koitharu.kotatsu.utils
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.view.GestureDetector
|
||||||
|
import android.view.MotionEvent
|
||||||
|
import kotlin.math.roundToInt
|
||||||
|
|
||||||
|
class GridTouchHelper(context: Context, private val listener: OnGridTouchListener) :
|
||||||
|
GestureDetector.SimpleOnGestureListener() {
|
||||||
|
|
||||||
|
private val detector = GestureDetector(context, this)
|
||||||
|
private val width = context.resources.displayMetrics.widthPixels
|
||||||
|
private val height = context.resources.displayMetrics.heightPixels
|
||||||
|
|
||||||
|
init {
|
||||||
|
detector.setIsLongpressEnabled(false)
|
||||||
|
detector.setOnDoubleTapListener(this)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun dispatchTouchEvent(event: MotionEvent) {
|
||||||
|
detector.onTouchEvent(event)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onSingleTapConfirmed(event: MotionEvent): Boolean {
|
||||||
|
val xIndex = (event.rawX * 2f / width).roundToInt()
|
||||||
|
val yIndex = (event.rawY * 2f / height).roundToInt()
|
||||||
|
listener.onGridTouch(
|
||||||
|
when (xIndex) {
|
||||||
|
0 -> AREA_LEFT
|
||||||
|
1 -> {
|
||||||
|
when (yIndex) {
|
||||||
|
0 -> AREA_TOP
|
||||||
|
1 -> AREA_CENTER
|
||||||
|
2 -> AREA_BOTTOM
|
||||||
|
else -> return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
2 -> AREA_RIGHT
|
||||||
|
else -> return false
|
||||||
|
}
|
||||||
|
)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
|
||||||
|
const val AREA_CENTER = 1
|
||||||
|
const val AREA_LEFT = 2
|
||||||
|
const val AREA_RIGHT = 3
|
||||||
|
const val AREA_TOP = 4
|
||||||
|
const val AREA_BOTTOM = 5
|
||||||
|
}
|
||||||
|
|
||||||
|
interface OnGridTouchListener {
|
||||||
|
|
||||||
|
fun onGridTouch(area: Int)
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
package org.koitharu.kotatsu.utils
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.content.Intent
|
||||||
|
import org.koitharu.kotatsu.R
|
||||||
|
import org.koitharu.kotatsu.core.model.Manga
|
||||||
|
|
||||||
|
object ShareHelper {
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
fun shareMangaLink(context: Context, manga: Manga) {
|
||||||
|
val intent = Intent(Intent.ACTION_SEND)
|
||||||
|
intent.type = "text/plain"
|
||||||
|
intent.putExtra(Intent.EXTRA_TEXT, buildString {
|
||||||
|
append(manga.title)
|
||||||
|
append("\n \n")
|
||||||
|
append(manga.url)
|
||||||
|
})
|
||||||
|
val shareIntent = Intent.createChooser(intent, context.getString(R.string.share_s, manga.title))
|
||||||
|
context.startActivity(shareIntent)
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
<vector android:height="24dp" android:tint="#FFFFFF"
|
||||||
|
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||||
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M18,16.08c-0.76,0 -1.44,0.3 -1.96,0.77L8.91,12.7c0.05,-0.23 0.09,-0.46 0.09,-0.7s-0.04,-0.47 -0.09,-0.7l7.05,-4.11c0.54,0.5 1.25,0.81 2.04,0.81 1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3 -3,1.34 -3,3c0,0.24 0.04,0.47 0.09,0.7L8.04,9.81C7.5,9.31 6.79,9 6,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3c0.79,0 1.5,-0.31 2.04,-0.81l7.12,4.16c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92 1.61,0 2.92,-1.31 2.92,-2.92s-1.31,-2.92 -2.92,-2.92z"/>
|
||||||
|
</vector>
|
||||||
@ -1,11 +1,22 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
<menu
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
<item
|
|
||||||
android:id="@+id/action_favourite"
|
<item
|
||||||
android:icon="@drawable/ic_favourites"
|
android:id="@+id/action_share"
|
||||||
android:title="@string/favourites"
|
android:icon="@drawable/ic_share"
|
||||||
app:showAsAction="ifRoom" />
|
android:title="@string/share"
|
||||||
|
app:showAsAction="ifRoom" />
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_save"
|
||||||
|
android:title="@string/save"
|
||||||
|
app:showAsAction="never" />
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_shortcut"
|
||||||
|
android:title="@string/create_shortcut"
|
||||||
|
app:showAsAction="never" />
|
||||||
|
|
||||||
</menu>
|
</menu>
|
||||||
Loading…
Reference in New Issue