Commit 684634b7 authored by wanglei's avatar wanglei

...

parent b8318b76
...@@ -110,6 +110,12 @@ ...@@ -110,6 +110,12 @@
android:launchMode="singleTop" android:launchMode="singleTop"
android:screenOrientation="portrait" android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" /> tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".ui.feedback.FeedbackActivity"
android:exported="true"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<provider <provider
android:name="androidx.core.content.FileProvider" android:name="androidx.core.content.FileProvider"
......
package com.base.pdfoneread.ui.feedback
import androidx.activity.addCallback
import androidx.core.widget.addTextChangedListener
import com.base.pdfoneread.databinding.ActivityFeedbackBinding
import com.base.pdfoneread.helper.EventUtils
import com.base.pdfoneread.ui.BaseActivity
import com.base.pdfoneread.utils.ToastUtils.toast
class FeedbackActivity : BaseActivity<ActivityFeedbackBinding>() {
override val binding: ActivityFeedbackBinding by lazy {
ActivityFeedbackBinding.inflate(layoutInflater)
}
override fun initView() {
}
override fun onResume() {
super.onResume()
// updateAppLanguage(MyApplication.feedbackLanguage) {
// MyApplication.feedbackLanguage = it
// }
}
override fun initListener() {
super.initListener()
onBackPressedDispatcher.addCallback {
finish()
}
binding.flFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
binding.edit.addTextChangedListener {
binding.tvBtn.isEnabled = it?.isNotEmpty() == true
}
binding.tvBtn.setOnClickListener {
toast("Feedback success")
EventUtils.event("Feedback", "${binding.edit.text}")
onBackPressedDispatcher.onBackPressed()
}
}
}
\ No newline at end of file
...@@ -12,10 +12,13 @@ import com.base.pdfoneread.ui.document.DocumentAdapter ...@@ -12,10 +12,13 @@ import com.base.pdfoneread.ui.document.DocumentAdapter
import com.base.pdfoneread.ui.document.getAllDocument import com.base.pdfoneread.ui.document.getAllDocument
import com.base.pdfoneread.ui.document.getGlobalAllList import com.base.pdfoneread.ui.document.getGlobalAllList
import com.base.pdfoneread.ui.document.getRvAdList import com.base.pdfoneread.ui.document.getRvAdList
import com.base.pdfoneread.ui.document.isRefreshOver
import com.base.pdfoneread.ui.document.recentFilter import com.base.pdfoneread.ui.document.recentFilter
import com.base.pdfoneread.utils.SpStringUtils import com.base.pdfoneread.utils.SpStringUtils
import com.base.pdfoneread.utils.SpStringUtils.LAST_VIEW_KEY import com.base.pdfoneread.utils.SpStringUtils.LAST_VIEW_KEY
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.cancel
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
...@@ -47,6 +50,10 @@ class RecentFragment() : Fragment() { ...@@ -47,6 +50,10 @@ class RecentFragment() : Fragment() {
initData() initData()
} }
initPreData() initPreData()
lifecycleScope.launch {
isRefreshOver.collectLatest { initData() }
cancel()
}
} }
private fun initPreData() = lifecycleScope.launch(Dispatchers.IO) { private fun initPreData() = lifecycleScope.launch(Dispatchers.IO) {
......
package com.base.pdfoneread.ui.main package com.base.pdfoneread.ui.main
import android.content.Intent
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
...@@ -9,12 +10,14 @@ import android.view.ViewGroup ...@@ -9,12 +10,14 @@ import android.view.ViewGroup
import com.base.pdfoneread.bean.DocumentBean import com.base.pdfoneread.bean.DocumentBean
import com.base.pdfoneread.databinding.FragmentSettingBinding import com.base.pdfoneread.databinding.FragmentSettingBinding
import com.base.pdfoneread.ui.document.getTypeByMimeType import com.base.pdfoneread.ui.document.getTypeByMimeType
import com.base.pdfoneread.ui.feedback.FeedbackActivity
import com.base.pdfoneread.ui.pdf.PdfActivity import com.base.pdfoneread.ui.pdf.PdfActivity
import com.base.pdfoneread.ui.views.RateDialog.showRateDialog import com.base.pdfoneread.ui.views.RateDialog.showRateDialog
import com.base.pdfoneread.utils.LogEx import com.base.pdfoneread.utils.LogEx
import com.base.pdfoneread.utils.PdfBoxUtils.checkPdfEncryption import com.base.pdfoneread.utils.PdfBoxUtils.checkPdfEncryption
import com.base.pdfoneread.utils.SafUtils.jumpOpenDocumentThenPersistable import com.base.pdfoneread.utils.SafUtils.jumpOpenDocumentThenPersistable
import com.base.pdfoneread.utils.UriUtils.getMimeTypeBySafUri import com.base.pdfoneread.utils.UriUtils.getMimeTypeBySafUri
import com.mbridge.msdk.widget.FeedBackButton
class SettingFragment : Fragment() { class SettingFragment : Fragment() {
...@@ -58,6 +61,9 @@ class SettingFragment : Fragment() { ...@@ -58,6 +61,9 @@ class SettingFragment : Fragment() {
binding.llRate.setOnClickListener { binding.llRate.setOnClickListener {
requireContext().showRateDialog(true) requireContext().showRateDialog(true)
} }
binding.llFeedback.setOnClickListener {
startActivity(Intent(requireContext(), FeedbackActivity::class.java))
}
} }
companion object { companion object {
......
...@@ -4,17 +4,11 @@ import android.app.AlertDialog ...@@ -4,17 +4,11 @@ import android.app.AlertDialog
import android.content.Context import android.content.Context
import android.view.Gravity import android.view.Gravity
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View
import android.view.WindowManager
import androidx.core.widget.addTextChangedListener import androidx.core.widget.addTextChangedListener
import com.base.pdfoneread.R import com.base.pdfoneread.R
import com.base.pdfoneread.databinding.DialogDocumentDetailBinding
import com.base.pdfoneread.databinding.DialogDocumentRenameBinding import com.base.pdfoneread.databinding.DialogDocumentRenameBinding
import com.base.pdfoneread.ui.views.DocumentDialog.showDocumentDetail
import com.base.pdfoneread.utils.KotlinExt.toFormatTime2 import com.base.pdfoneread.utils.KotlinExt.toFormatTime2
import com.base.pdfoneread.utils.ToastUtils.toast import com.base.pdfoneread.utils.ToastUtils.toast
import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetDialog
object NameDialog { object NameDialog {
......
package com.base.pdfoneread.ui.views package com.base.pdfoneread.ui.views
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.AlertDialog
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.net.Uri import android.net.Uri
import android.view.Gravity
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup
import androidx.core.content.ContextCompat
import com.base.pdfoneread.R import com.base.pdfoneread.R
import com.base.pdfoneread.databinding.DialogDocumentRenameBinding
import com.base.pdfoneread.databinding.DialogRateStarBinding import com.base.pdfoneread.databinding.DialogRateStarBinding
import com.base.pdfoneread.ui.views.NameDialog.showDocumentRenameDialog
import com.base.pdfoneread.utils.AppPreferences import com.base.pdfoneread.utils.AppPreferences
import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.bottomsheet.BottomSheetDialog
...@@ -21,17 +27,20 @@ object RateDialog { ...@@ -21,17 +27,20 @@ object RateDialog {
} }
} }
val dialog = BottomSheetDialog(this, R.style.BottomSheetDialog) val dialog = AlertDialog.Builder(this).create()
val binding = DialogRateStarBinding.inflate(LayoutInflater.from(this)) val binding = DialogRateStarBinding.inflate(LayoutInflater.from(this))
dialog.setContentView(binding.root) dialog.setView(binding.root)
dialog.setCanceledOnTouchOutside(true) dialog.setCanceledOnTouchOutside(true)
dialog.show() dialog.show()
val parentView = binding.root.parent as View val params = dialog.window?.attributes
val behavior = BottomSheetBehavior.from(parentView) params?.gravity = Gravity.CENTER
//展开 params?.width = resources.getDimensionPixelSize(R.dimen.dp_345)
behavior.state = BottomSheetBehavior.STATE_EXPANDED params?.height = ViewGroup.LayoutParams.WRAP_CONTENT
dialog.window?.attributes = params
dialog.window?.setBackgroundDrawableResource(android.R.color.transparent)
listOf( listOf(
...@@ -42,6 +51,11 @@ object RateDialog { ...@@ -42,6 +51,11 @@ object RateDialog {
binding.iv5 binding.iv5
).forEachIndexed { index, it -> ).forEachIndexed { index, it ->
it.setOnClickListener { it.setOnClickListener {
binding.tvSubmit.isEnabled = true
binding.tvSubmit.background = ContextCompat.getDrawable(this, R.drawable.bg_fd5910_10)
binding.tv0.visibility = View.INVISIBLE
binding.tv1.visibility = View.VISIBLE
binding.tv2.visibility = View.VISIBLE
setStar(binding, index) setStar(binding, index)
} }
} }
...@@ -98,22 +112,34 @@ object RateDialog { ...@@ -98,22 +112,34 @@ object RateDialog {
) )
} }
when (this.star) { when (this.star) {
in 1..2 -> { 1 -> {
// binding.tv1.text = context.getString(R.string.oh_no) binding.tv1.text = context.getString(R.string.oh_no)
// binding.tv2.text = context.getString(R.string.leave_us_your_feedback) binding.tv2.text = context.getString(R.string.leave_us_your_feedback)
// binding.ivFace.setImageResource(R.mipmap.pdf_expression2) binding.ivFace.setImageResource(R.mipmap.pdf_expression1)
}
2 -> {
binding.tv1.text = context.getString(R.string.oh_no)
binding.tv2.text = context.getString(R.string.leave_us_your_feedback)
binding.ivFace.setImageResource(R.mipmap.pdf_expression2)
}
3 -> {
binding.tv1.text = context.getString(R.string.oh_no)
binding.tv2.text = context.getString(R.string.leave_us_your_feedback)
binding.ivFace.setImageResource(R.mipmap.pdf_expression4)
} }
in 3..4 -> { 4 -> {
// binding.tv1.text = context.getString(R.string.oh_we_are_sorry) binding.tv1.text = context.getString(R.string.we_like)
// binding.tv2.text = context.getString(R.string.leave_us_your_feedback) binding.tv2.text = context.getString(R.string.thanks_feedback)
// binding.ivFace.setImageResource(R.mipmap.pdf_expression1) binding.ivFace.setImageResource(R.mipmap.pdf_expression5)
} }
5 -> { 5 -> {
// binding.tv1.text = context.getString(R.string.much_appreciated) binding.tv1.text = context.getString(R.string.we_like)
// binding.tv2.text = context.getString(R.string.your_support_is_our_motivation) binding.tv2.text = context.getString(R.string.thanks_feedback)
// binding.ivFace.setImageResource(R.mipmap.pdf_expression3) binding.ivFace.setImageResource(R.mipmap.pdf_expression6)
} }
} }
} }
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FAFCFB" />
<corners android:radius="15dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FDAC93" />
<corners android:radius="10dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/fl_fanhui"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="15dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/pdf_left"
tools:ignore="ContentDescription" />
</FrameLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="@string/feedback"
android:textColor="@color/black"
android:textSize="19sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@id/fl_fanhui"
app:layout_constraintStart_toEndOf="@id/fl_fanhui"
app:layout_constraintTop_toTopOf="@id/fl_fanhui"
tools:ignore="HardcodedText" />
<EditText
android:id="@+id/edit"
android:layout_width="match_parent"
android:layout_height="485dp"
android:layout_marginHorizontal="15dp"
android:layout_marginTop="30dp"
android:background="@drawable/bg_fafcfb_15"
android:gravity="top|start"
android:hint="Please enter your feedback or thoughts"
android:inputType="text"
android:paddingHorizontal="20dp"
android:paddingVertical="25dp"
android:textColor="@color/black"
android:textColorHint="#BFBFBF"
android:textSize="16sp"
app:layout_constraintTop_toBottomOf="@id/fl_fanhui"
tools:ignore="Autofill,HardcodedText,TextFields" />
<TextView
android:id="@+id/tv_btn"
android:layout_width="338dp"
android:layout_height="48dp"
android:layout_marginBottom="25dp"
android:background="@drawable/bg_selector_btn"
android:enabled="false"
android:gravity="center"
android:text="@string/send"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:ignore="HardcodedText" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -11,12 +11,23 @@ ...@@ -11,12 +11,23 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="50dp" android:layout_marginTop="50dp"
android:background="@drawable/bg_ffffff_tlr15" android:background="@drawable/bg_ffffff_15"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<TextView <TextView
android:layout_width="wrap_content" android:id="@+id/tv_0"
android:layout_height="wrap_content" /> android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="30dp"
android:layout_marginTop="50dp"
android:lineHeight="24dp"
android:text="@string/rate_tip"
android:textColor="#333333"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
android:id="@+id/tv_1" android:id="@+id/tv_1"
...@@ -27,6 +38,7 @@ ...@@ -27,6 +38,7 @@
android:textColor="#333333" android:textColor="#333333"
android:textSize="24sp" android:textSize="24sp"
android:textStyle="bold" android:textStyle="bold"
android:visibility="invisible"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:ignore="HardcodedText" tools:ignore="HardcodedText"
...@@ -41,18 +53,20 @@ ...@@ -41,18 +53,20 @@
android:textColor="#333333" android:textColor="#333333"
android:textSize="22sp" android:textSize="22sp"
android:textStyle="bold" android:textStyle="bold"
android:visibility="invisible"
app:layout_constraintStart_toStartOf="@id/tv_1" app:layout_constraintStart_toStartOf="@id/tv_1"
app:layout_constraintTop_toBottomOf="@id/tv_1" app:layout_constraintTop_toBottomOf="@id/tv_1"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_best" android:id="@+id/cl_best"
android:layout_width="200dp" android:layout_width="200dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="16dp" android:layout_marginTop="24dp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_2"> app:layout_constraintTop_toBottomOf="@id/tv_0">
<TextView <TextView
android:id="@+id/tv_best" android:id="@+id/tv_best"
...@@ -95,7 +109,7 @@ ...@@ -95,7 +109,7 @@
android:layout_width="38dp" android:layout_width="38dp"
android:layout_height="38dp" android:layout_height="38dp"
android:layout_margin="10dp" android:layout_margin="10dp"
android:src="@mipmap/pdf_start" android:src="@mipmap/pdf_star_n"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
<ImageView <ImageView
...@@ -103,7 +117,7 @@ ...@@ -103,7 +117,7 @@
android:layout_width="38dp" android:layout_width="38dp"
android:layout_height="38dp" android:layout_height="38dp"
android:layout_margin="10dp" android:layout_margin="10dp"
android:src="@mipmap/pdf_start" android:src="@mipmap/pdf_star_n"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
<ImageView <ImageView
...@@ -111,7 +125,7 @@ ...@@ -111,7 +125,7 @@
android:layout_width="38dp" android:layout_width="38dp"
android:layout_height="38dp" android:layout_height="38dp"
android:layout_margin="10dp" android:layout_margin="10dp"
android:src="@mipmap/pdf_start" android:src="@mipmap/pdf_star_n"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
<ImageView <ImageView
...@@ -119,7 +133,7 @@ ...@@ -119,7 +133,7 @@
android:layout_width="38dp" android:layout_width="38dp"
android:layout_height="38dp" android:layout_height="38dp"
android:layout_margin="10dp" android:layout_margin="10dp"
android:src="@mipmap/pdf_start" android:src="@mipmap/pdf_star_n"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
<ImageView <ImageView
...@@ -127,18 +141,20 @@ ...@@ -127,18 +141,20 @@
android:layout_width="38dp" android:layout_width="38dp"
android:layout_height="38dp" android:layout_height="38dp"
android:layout_margin="10dp" android:layout_margin="10dp"
android:src="@mipmap/pdf_start_s" android:src="@mipmap/pdf_star_n1"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
</LinearLayout> </LinearLayout>
<TextView <TextView
android:id="@+id/tv_submit" android:id="@+id/tv_submit"
android:layout_width="338dp" android:layout_width="match_parent"
android:layout_height="48dp" android:layout_height="48dp"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginBottom="24dp" android:layout_marginBottom="24dp"
android:background="@drawable/bg_ff5910_10" android:background="@drawable/bg_fdac93_10"
android:enabled="false"
android:gravity="center" android:gravity="center"
android:text="@string/rate" android:text="@string/rate"
android:textColor="@color/white" android:textColor="@color/white"
...@@ -155,6 +171,7 @@ ...@@ -155,6 +171,7 @@
android:id="@+id/iv_face" android:id="@+id/iv_face"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:src="@mipmap/pdf_expression" android:src="@mipmap/pdf_expression"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
......
...@@ -69,5 +69,11 @@ ...@@ -69,5 +69,11 @@
<string name="your_full_document_reader">Your full document reader</string> <string name="your_full_document_reader">Your full document reader</string>
<string name="the_best_we_can_get">The best we can get :)</string> <string name="the_best_we_can_get">The best we can get :)</string>
<string name="rate">Rate</string> <string name="rate">Rate</string>
<string name="oh_no">oh,no!</string>
<string name="leave_us_your_feedback">Please leave us some feedback.</string>
<string name="we_like">We like you too!</string>
<string name="thanks_feedback">Thanks for your feedback.</string>
<string name="rate_tip">We are working hard for a better\nuser experience.\nWe\'d greatly appreciate if you\ncan rate us.</string>
<string name="send">Send</string>
</resources> </resources>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment