@@ -8,8 +8,9 @@ import android.print.PrintAttributes
88import android.print.PrintManager
99import android.view.View
1010import android.view.WindowManager
11- import android. widget.RelativeLayout
11+ import androidx.constraintlayout. widget.ConstraintLayout
1212import androidx.viewpager2.widget.ViewPager2
13+ import androidx.viewpager2.widget.ViewPager2.OnPageChangeCallback
1314import com.simplemobiletools.commons.extensions.*
1415import com.simplemobiletools.commons.helpers.REAL_FILE_PATH
1516import com.simplemobiletools.commons.helpers.isPiePlus
@@ -58,7 +59,6 @@ class PDFViewerActivity : SimpleActivity() {
5859 }
5960
6061 private fun setupMenu () {
61- (pdf_viewer_appbar.layoutParams as RelativeLayout .LayoutParams ).topMargin = statusBarHeight
6262 pdf_viewer_toolbar.menu.apply {
6363 findItem(R .id.menu_print).isVisible = realFilePath.isNotEmpty()
6464 findItem(R .id.menu_print).setOnMenuItemClickListener {
@@ -71,21 +71,30 @@ class PDFViewerActivity : SimpleActivity() {
7171 finish()
7272 }
7373
74- if (! portrait && navigationBarOnSide && navigationBarWidth > 0 ) {
75- pdf_viewer_appbar.setPadding(0 , 0 , navigationBarWidth, 0 )
76- } else {
77- pdf_viewer_appbar.setPadding(0 , 0 , 0 , 0 )
78- }
74+ setupViewOffsets()
75+ val primaryColor = getProperPrimaryColor()
76+ page_counter.background?.applyColorFilter(primaryColor)
77+ page_counter.setTextColor(primaryColor.getContrastColor())
7978 }
8079
8180 override fun onConfigurationChanged (newConfig : Configuration ) {
8281 super .onConfigurationChanged(newConfig)
83- (pdf_viewer_appbar.layoutParams as RelativeLayout .LayoutParams ).topMargin = statusBarHeight
82+ setupViewOffsets()
83+ }
84+
85+ private fun setupViewOffsets () {
86+ val pageCounterMargin = resources.getDimension(R .dimen.normal_margin).toInt()
87+ (pdf_viewer_appbar.layoutParams as ConstraintLayout .LayoutParams ).topMargin = statusBarHeight
8488 if (! portrait && navigationBarOnSide && navigationBarWidth > 0 ) {
8589 pdf_viewer_appbar.setPadding(0 , 0 , navigationBarWidth, 0 )
8690 } else {
8791 pdf_viewer_appbar.setPadding(0 , 0 , 0 , 0 )
8892 }
93+
94+ (page_counter.layoutParams as ConstraintLayout .LayoutParams ).apply {
95+ rightMargin = navigationBarWidth + pageCounterMargin
96+ bottomMargin = navigationBarHeight + pageCounterMargin
97+ }
8998 }
9099
91100 private fun checkIntent () {
@@ -103,6 +112,14 @@ class PDFViewerActivity : SimpleActivity() {
103112
104113 pdf_viewer.orientation = ViewPager2 .ORIENTATION_VERTICAL
105114 pdf_viewer.adapter = PDFPagerAdapter (this , clickListener, errorHandler, uri.toString(), getProperBackgroundColor())
115+ pdf_viewer.registerOnPageChangeCallback(object : OnPageChangeCallback () {
116+ override fun onPageSelected (position : Int ) {
117+ updatePageCounter(position)
118+ }
119+ })
120+
121+ updatePageCounter(0 )
122+ page_counter.beVisible()
106123
107124 showSystemUI(true )
108125
@@ -112,6 +129,10 @@ class PDFViewerActivity : SimpleActivity() {
112129 }
113130 }
114131
132+ private fun updatePageCounter (position : Int ) {
133+ page_counter.text = " ${position + 1 } / ${pdf_viewer.adapter?.itemCount} "
134+ }
135+
115136 private fun printText () {
116137 val adapter = PdfDocumentAdapter (this , realFilePath)
117138
@@ -131,6 +152,7 @@ class PDFViewerActivity : SimpleActivity() {
131152 showSystemUI(true )
132153 }
133154
155+ page_counter.animate().alpha(newAlpha).start()
134156 top_shadow.animate().alpha(newAlpha).start()
135157 pdf_viewer_appbar.animate().alpha(newAlpha).withStartAction {
136158 if (newAlpha == 1f ) {
0 commit comments