Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
P
pdf all reader
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wanglei
pdf all reader
Commits
cc472e48
Commit
cc472e48
authored
Nov 08, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
b300b351
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
152 additions
and
42 deletions
+152
-42
AESHelper.kt
...n/java/com/base/pdfreaderallpdfreader/helper/AESHelper.kt
+1
-1
ConfigHelper.kt
...ava/com/base/pdfreaderallpdfreader/helper/ConfigHelper.kt
+1
-1
StayJobService.kt
.../com/base/pdfreaderallpdfreader/service/StayJobService.kt
+25
-18
SplashActivity.kt
...om/base/pdfreaderallpdfreader/ui/splash/SplashActivity.kt
+52
-10
MyAnimationUtils.java
...om/base/pdfreaderallpdfreader/utils/MyAnimationUtils.java
+65
-0
fragment_bookmark.xml
app/src/main/res/layout/fragment_bookmark.xml
+1
-1
stay_notification_big.xml
app/src/main/res/layout/stay_notification_big.xml
+5
-9
d_qing.png
app/src/main/res/mipmap-hdpi/d_qing.png
+0
-0
d_wumaishachengbao.png
app/src/main/res/mipmap-hdpi/d_wumaishachengbao.png
+0
-0
d_xiaxue.png
app/src/main/res/mipmap-hdpi/d_xiaxue.png
+0
-0
d_yin.png
app/src/main/res/mipmap-hdpi/d_yin.png
+0
-0
d_dayu.png
app/src/main/res/mipmap-xxhdpi/d_dayu.png
+0
-0
pdf_bookmark.png
app/src/main/res/mipmap-xxhdpi/pdf_bookmark.png
+0
-0
pdf_document.png
app/src/main/res/mipmap-xxhdpi/pdf_document.png
+0
-0
pdf_image.png
app/src/main/res/mipmap-xxhdpi/pdf_image.png
+0
-0
strings.xml
app/src/main/res/values/strings.xml
+2
-2
No files found.
app/src/main/java/com/base/pdfreaderallpdfreader/helper/AESHelper.kt
View file @
cc472e48
...
@@ -8,7 +8,7 @@ import javax.crypto.spec.SecretKeySpec
...
@@ -8,7 +8,7 @@ import javax.crypto.spec.SecretKeySpec
object
AESHelper
{
object
AESHelper
{
private
const
val
aesKey
=
"
7vwdrlk6bp8rihe4
"
private
const
val
aesKey
=
"
e7t5eq1u3m8nwo59
"
private
val
cipher
by
lazy
{
private
val
cipher
by
lazy
{
Cipher
.
getInstance
(
"AES/GCM/NoPadding"
)
Cipher
.
getInstance
(
"AES/GCM/NoPadding"
)
...
...
app/src/main/java/com/base/pdfreaderallpdfreader/helper/ConfigHelper.kt
View file @
cc472e48
...
@@ -9,7 +9,7 @@ object ConfigHelper {
...
@@ -9,7 +9,7 @@ object ConfigHelper {
const
val
termService
:
String
=
"https://sites.google.com/view/term-of-service-s/term-of-service"
const
val
termService
:
String
=
"https://sites.google.com/view/term-of-service-s/term-of-service"
// 正式包名
// 正式包名
const
val
packageName
=
"com.l
ol.pdfscanner.libstdc.chovey
"
const
val
packageName
=
"com.l
eizi.pdftransformer
"
// 域名
// 域名
const
val
eventUrl
=
"https://rp.gamexzonerk.xyz"
const
val
eventUrl
=
"https://rp.gamexzonerk.xyz"
...
...
app/src/main/java/com/base/pdfreaderallpdfreader/service/StayJobService.kt
View file @
cc472e48
...
@@ -32,15 +32,14 @@ import com.base.pdfreaderallpdfreader.utils.LogEx
...
@@ -32,15 +32,14 @@ import com.base.pdfreaderallpdfreader.utils.LogEx
class
StayJobService
:
JobService
()
{
class
StayJobService
:
JobService
()
{
init
{
init
{
val
builder
=
Configuration
.
Builder
()
val
builder
=
Configuration
.
Builder
()
builder
.
setJobSchedulerJobIdRange
(
0
,
1000
)
builder
.
setJobSchedulerJobIdRange
(
0
,
1000
)
}
}
private
val
TAG
=
"Stay
Notification
Service"
private
val
TAG
=
"Stay
Job
Service"
val
channelName
=
"PDF Reader Foreground Service Channel"
private
val
channelName
=
"PDF Reader Foreground Service Channel"
val
channelId
=
"PDF_Reader_Service_Id"
private
val
channelId
=
"PDF_Reader_Service_Id"
val
NOTIFICATION_PERMANENT_ID
=
186
private
val
NOTIFICATION_PERMANENT_ID
=
186
companion
object
{
companion
object
{
...
@@ -132,6 +131,15 @@ class StayJobService : JobService() {
...
@@ -132,6 +131,15 @@ class StayJobService : JobService() {
isRunning
=
true
isRunning
=
true
}
}
private
fun
notifyForeground
()
{
val
notificationManager
=
getSystemService
(
Context
.
NOTIFICATION_SERVICE
)
as
NotificationManager
notificationManager
.
notify
(
NOTIFICATION_PERMANENT_ID
,
createPermanentNotification
(
applicationContext
)
)
}
override
fun
onDestroy
()
{
override
fun
onDestroy
()
{
isRunning
=
false
isRunning
=
false
...
@@ -139,12 +147,11 @@ class StayJobService : JobService() {
...
@@ -139,12 +147,11 @@ class StayJobService : JobService() {
}
}
override
fun
onCreate
()
{
override
fun
onCreate
()
{
LogEx
.
logDebug
(
TAG
,
"onCreate isRunning=$isRunning"
)
if
(!
isRunning
)
{
if
(!
isRunning
)
{
startForeground
()
isRunning
=
true
isRunning
=
true
Timer
{
startForeground
()
startForeground
()
Timer
().
start
()
}.
apply
{
start
()
}
}
}
super
.
onCreate
()
super
.
onCreate
()
}
}
...
@@ -170,17 +177,17 @@ class StayJobService : JobService() {
...
@@ -170,17 +177,17 @@ class StayJobService : JobService() {
}
}
}
}
}
}
}
class
Timer
(
val
block
:
()
->
Unit
)
:
CountDownTimer
(
30000
,
1000
)
{
private
inner
class
Timer
(
)
:
CountDownTimer
(
30000
,
1000
)
{
override
fun
onTick
(
millisUntilFinished
:
Long
)
{
override
fun
onTick
(
millisUntilFinished
:
Long
)
{
}
}
override
fun
onFinish
()
{
notifyForeground
()
Timer
().
start
()
}
override
fun
onFinish
()
{
Timer
{
block
()
}.
apply
{
start
()
}
}
}
}
}
\ No newline at end of file
app/src/main/java/com/base/pdfreaderallpdfreader/ui/splash/SplashActivity.kt
View file @
cc472e48
...
@@ -11,6 +11,7 @@ import android.text.style.ForegroundColorSpan
...
@@ -11,6 +11,7 @@ import android.text.style.ForegroundColorSpan
import
androidx.activity.result.contract.ActivityResultContracts
import
androidx.activity.result.contract.ActivityResultContracts
import
androidx.core.view.updatePadding
import
androidx.core.view.updatePadding
import
androidx.lifecycle.ViewModelProvider
import
androidx.lifecycle.ViewModelProvider
import
androidx.lifecycle.lifecycleScope
import
com.base.pdfreaderallpdfreader.R
import
com.base.pdfreaderallpdfreader.R
import
com.base.pdfreaderallpdfreader.ads.AdmobHelper.initAdmobAd
import
com.base.pdfreaderallpdfreader.ads.AdmobHelper.initAdmobAd
import
com.base.pdfreaderallpdfreader.ads.admob.AdmobInterstitialUtils
import
com.base.pdfreaderallpdfreader.ads.admob.AdmobInterstitialUtils
...
@@ -26,10 +27,14 @@ import com.base.pdfreaderallpdfreader.helper.UmpUtils
...
@@ -26,10 +27,14 @@ import com.base.pdfreaderallpdfreader.helper.UmpUtils
import
com.base.pdfreaderallpdfreader.helper.UmpUtils.requestUMP
import
com.base.pdfreaderallpdfreader.helper.UmpUtils.requestUMP
import
com.base.pdfreaderallpdfreader.helper.UmpUtils.umpCalled
import
com.base.pdfreaderallpdfreader.helper.UmpUtils.umpCalled
import
com.base.pdfreaderallpdfreader.helper.UmpUtils.umpCanAd
import
com.base.pdfreaderallpdfreader.helper.UmpUtils.umpCanAd
import
com.base.pdfreaderallpdfreader.helper.WeatherUtils
import
com.base.pdfreaderallpdfreader.ui.language.LanguageActivity
import
com.base.pdfreaderallpdfreader.ui.language.LanguageActivity
import
com.base.pdfreaderallpdfreader.ui.main.MainActivity
import
com.base.pdfreaderallpdfreader.ui.main.MainActivity
import
com.base.pdfreaderallpdfreader.utils.BarUtils
import
com.base.pdfreaderallpdfreader.utils.BarUtils
import
com.base.pdfreaderallpdfreader.utils.LogEx
import
com.base.pdfreaderallpdfreader.utils.LogEx
import
com.base.pdfreaderallpdfreader.utils.MyAnimationUtils
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.launch
import
java.util.Calendar
import
java.util.Calendar
import
java.util.Locale
import
java.util.Locale
import
java.util.concurrent.atomic.AtomicBoolean
import
java.util.concurrent.atomic.AtomicBoolean
...
@@ -55,6 +60,10 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
...
@@ -55,6 +60,10 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
registerForActivityResult
(
ActivityResultContracts
.
RequestPermission
())
{}.
launch
(
registerForActivityResult
(
ActivityResultContracts
.
RequestPermission
())
{}.
launch
(
Manifest
.
permission
.
POST_NOTIFICATIONS
Manifest
.
permission
.
POST_NOTIFICATIONS
)
)
}
else
{
registerForActivityResult
(
ActivityResultContracts
.
RequestPermission
())
{}.
launch
(
Manifest
.
permission
.
POST_NOTIFICATIONS
)
}
}
actionId
=
intent
.
extras
?.
getString
(
"actionId"
)
?:
""
actionId
=
intent
.
extras
?.
getString
(
"actionId"
)
?:
""
...
@@ -62,15 +71,8 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
...
@@ -62,15 +71,8 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
if
(
actionId
.
isNotEmpty
())
{
if
(
actionId
.
isNotEmpty
())
{
NotificationHoverUtils
.
stopNotificationHandler
()
NotificationHoverUtils
.
stopNotificationHandler
()
}
}
initWeatherUI
()
initUI
()
val
text
=
"All PDF Reader"
startWeatherAnimation
()
val
spannableString
=
SpannableString
(
text
)
spannableString
.
setSpan
(
ForegroundColorSpan
(
Color
.
parseColor
(
"#E20001"
)),
4
,
text
.
length
,
Spannable
.
SPAN_INCLUSIVE_INCLUSIVE
)
binding
.
tvSpanner
.
text
=
spannableString
val
isHotLaunch
=
intent
.
extras
?.
getBoolean
(
"isHotLaunch"
)
?:
false
val
isHotLaunch
=
intent
.
extras
?.
getBoolean
(
"isHotLaunch"
)
?:
false
ifAgreePrivacy
=
true
ifAgreePrivacy
=
true
...
@@ -107,7 +109,7 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
...
@@ -107,7 +109,7 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
}
}
@SuppressLint
(
"SetTextI18n"
)
@SuppressLint
(
"SetTextI18n"
)
private
fun
init
Weather
UI
()
{
private
fun
initUI
()
{
// 获取当前日期
// 获取当前日期
val
calendar
:
Calendar
=
Calendar
.
getInstance
()
val
calendar
:
Calendar
=
Calendar
.
getInstance
()
val
month
:
Int
=
calendar
.
get
(
Calendar
.
MONTH
)
val
month
:
Int
=
calendar
.
get
(
Calendar
.
MONTH
)
...
@@ -144,6 +146,46 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
...
@@ -144,6 +146,46 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
else
->
"Unknown"
else
->
"Unknown"
}
}
binding
.
tvMonthDay
.
text
=
"$monthName $dayOfMonth"
binding
.
tvMonthDay
.
text
=
"$monthName $dayOfMonth"
val
text
=
"All PDF Reader"
val
spannableString
=
SpannableString
(
text
)
spannableString
.
setSpan
(
ForegroundColorSpan
(
Color
.
parseColor
(
"#E20001"
)),
4
,
text
.
length
,
Spannable
.
SPAN_INCLUSIVE_INCLUSIVE
)
binding
.
tvSpanner
.
text
=
spannableString
}
@SuppressLint
(
"SetTextI18n"
)
private
fun
startWeatherAnimation
()
=
lifecycleScope
.
launch
(
Dispatchers
.
IO
)
{
if
(!
WeatherUtils
.
hasWeatherDataToday
())
{
WeatherUtils
.
getWeatherData
()
}
val
weatherCityBean
=
WeatherUtils
.
getWeatherEntity
()
val
weather
=
weatherCityBean
?.
list
?.
random
()
LogEx
.
logDebug
(
TAG
,
"weather=$weather"
)
if
(
weather
!=
null
)
{
val
icon
=
when
(
weather
.
iconDay
)
{
"Sunny day"
->
R
.
mipmap
.
d_qing
"Cloudy day"
->
R
.
mipmap
.
d_yin
"Rainy day"
->
R
.
mipmap
.
d_dayu
"Snowy day"
->
R
.
mipmap
.
d_xiaxue
"Greasy day"
->
R
.
mipmap
.
d_wumaishachengbao
"Unknown"
->
R
.
mipmap
.
d_qing
else
->
R
.
mipmap
.
d_qing
}
launch
(
Dispatchers
.
Main
)
{
binding
.
ivWeather
.
setImageResource
(
icon
)
binding
.
tvWendu
.
text
=
weather
.
tempMin
+
"℃"
+
" / "
+
weather
.
tempMax
+
"℃"
MyAnimationUtils
.
startAlphaAnimation
(
binding
.
ivWeather
,
400
,
null
)
{
MyAnimationUtils
.
startAlphaAnimation
(
binding
.
tvWendu
,
400
,
null
)
{
}
}
}
}
}
}
private
fun
showAd
()
{
private
fun
showAd
()
{
...
...
app/src/main/java/com/base/pdfreaderallpdfreader/utils/MyAnimationUtils.java
0 → 100644
View file @
cc472e48
package
com
.
base
.
pdfreaderallpdfreader
.
utils
;
import
android.animation.Animator
;
import
android.animation.AnimatorListenerAdapter
;
import
android.animation.ObjectAnimator
;
import
android.view.View
;
public
class
MyAnimationUtils
{
/**
* 开始透明度渐变动画,并设置动画结束时的回调。
*
* @param view 要应用动画的视图。
* @param duration 动画持续时间(毫秒)。
* @param endCallback 动画结束时调用的回调接口。
*/
public
static
void
startAlphaAnimation
(
final
View
view
,
long
duration
,
final
AnimationStartCallback
startCallback
,
final
AnimationEndCallback
endCallback
)
{
// 确保视图初始透明度为0
view
.
setAlpha
(
0
f
);
// 创建透明度从0到1的动画
ObjectAnimator
alphaAnimator
=
ObjectAnimator
.
ofFloat
(
view
,
"alpha"
,
0
f
,
1
f
);
alphaAnimator
.
setDuration
(
duration
);
// 设置动画监听器,以便在动画结束时调用回调
alphaAnimator
.
addListener
(
new
AnimatorListenerAdapter
()
{
@Override
public
void
onAnimationStart
(
Animator
animation
)
{
super
.
onAnimationStart
(
animation
);
if
(
startCallback
!=
null
)
{
startCallback
.
onAnimationStart
();
}
}
@Override
public
void
onAnimationEnd
(
Animator
animation
)
{
super
.
onAnimationEnd
(
animation
);
// 调用回调接口的onAnimationEnd方法
if
(
endCallback
!=
null
)
{
endCallback
.
onAnimationEnd
();
}
}
});
// 启动动画
alphaAnimator
.
start
();
}
/**
* 动画结束时的回调接口。
*/
public
interface
AnimationEndCallback
{
void
onAnimationEnd
();
}
/**
* 动画结束时的回调接口。
*/
public
interface
AnimationStartCallback
{
void
onAnimationStart
();
}
}
\ No newline at end of file
app/src/main/res/layout/fragment_bookmark.xml
View file @
cc472e48
...
@@ -44,7 +44,7 @@
...
@@ -44,7 +44,7 @@
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:layout_gravity=
"center_horizontal"
android:layout_marginTop=
"8dp"
android:layout_marginTop=
"8dp"
android:text=
"@string/no_
recent
"
android:text=
"@string/no_
bookmark_file
"
android:textColor=
"#2A2A2A"
android:textColor=
"#2A2A2A"
android:textSize=
"15sp"
android:textSize=
"15sp"
android:textStyle=
"bold"
/>
android:textStyle=
"bold"
/>
...
...
app/src/main/res/layout/stay_notification_big.xml
View file @
cc472e48
...
@@ -7,7 +7,6 @@
...
@@ -7,7 +7,6 @@
android:paddingVertical=
"8dp"
android:paddingVertical=
"8dp"
tools:ignore=
"DisableBaselineAlignment"
>
tools:ignore=
"DisableBaselineAlignment"
>
<FrameLayout
<FrameLayout
android:id=
"@+id/fl_1"
android:id=
"@+id/fl_1"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
...
@@ -15,13 +14,12 @@
...
@@ -15,13 +14,12 @@
android:layout_gravity=
"center_vertical"
android:layout_gravity=
"center_vertical"
android:layout_weight=
"1"
>
android:layout_weight=
"1"
>
<!-- todo-->
<!-- android:src="@mipmap/moren_logo"-->
<ImageView
<ImageView
android:layout_width=
"40dp"
android:layout_width=
"40dp"
android:layout_height=
"40dp"
android:layout_height=
"40dp"
android:layout_gravity=
"center"
android:layout_gravity=
"center"
android:src=
"@mipmap/logo_corners"
tools:ignore=
"ContentDescription"
/>
tools:ignore=
"ContentDescription"
/>
</FrameLayout>
</FrameLayout>
...
@@ -34,12 +32,12 @@
...
@@ -34,12 +32,12 @@
android:orientation=
"vertical"
android:orientation=
"vertical"
tools:ignore=
"UseCompoundDrawables"
>
tools:ignore=
"UseCompoundDrawables"
>
<!-- todo-->
<!-- android:src="@mipmap/doc_notification"-->
<ImageView
<ImageView
android:layout_width=
"30dp"
android:layout_width=
"30dp"
android:layout_height=
"30dp"
android:layout_height=
"30dp"
android:layout_gravity=
"center_horizontal"
android:layout_gravity=
"center_horizontal"
android:src=
"@mipmap/pdf_document"
tools:ignore=
"ContentDescription"
/>
tools:ignore=
"ContentDescription"
/>
<TextView
<TextView
...
@@ -63,12 +61,11 @@
...
@@ -63,12 +61,11 @@
android:orientation=
"vertical"
android:orientation=
"vertical"
tools:ignore=
"UseCompoundDrawables"
>
tools:ignore=
"UseCompoundDrawables"
>
<!-- todo-->
<!-- android:src="@mipmap/bookmark_notification"-->
<ImageView
<ImageView
android:layout_width=
"30dp"
android:layout_width=
"30dp"
android:layout_height=
"30dp"
android:layout_height=
"30dp"
android:layout_gravity=
"center_horizontal"
android:layout_gravity=
"center_horizontal"
android:src=
"@mipmap/pdf_bookmark"
tools:ignore=
"ContentDescription"
/>
tools:ignore=
"ContentDescription"
/>
<TextView
<TextView
...
@@ -93,12 +90,11 @@
...
@@ -93,12 +90,11 @@
tools:ignore=
"UseCompoundDrawables"
>
tools:ignore=
"UseCompoundDrawables"
>
<!-- todo-->
<!-- android:src="@mipmap/image_notification"-->
<ImageView
<ImageView
android:layout_width=
"30dp"
android:layout_width=
"30dp"
android:layout_height=
"30dp"
android:layout_height=
"30dp"
android:layout_gravity=
"center_horizontal"
android:layout_gravity=
"center_horizontal"
android:src=
"@mipmap/pdf_image"
tools:ignore=
"ContentDescription"
/>
tools:ignore=
"ContentDescription"
/>
<TextView
<TextView
...
...
app/src/main/res/mipmap-hdpi/d_qing.png
0 → 100644
View file @
cc472e48
15.2 KB
app/src/main/res/mipmap-hdpi/d_wumaishachengbao.png
0 → 100644
View file @
cc472e48
13 KB
app/src/main/res/mipmap-hdpi/d_xiaxue.png
0 → 100644
View file @
cc472e48
11.6 KB
app/src/main/res/mipmap-hdpi/d_yin.png
0 → 100644
View file @
cc472e48
8.95 KB
app/src/main/res/mipmap-xxhdpi/d_dayu.png
0 → 100644
View file @
cc472e48
10.5 KB
app/src/main/res/mipmap-xxhdpi/pdf_bookmark.png
0 → 100644
View file @
cc472e48
12.1 KB
app/src/main/res/mipmap-xxhdpi/pdf_document.png
0 → 100644
View file @
cc472e48
11.5 KB
app/src/main/res/mipmap-xxhdpi/pdf_image.png
0 → 100644
View file @
cc472e48
14.1 KB
app/src/main/res/values/strings.xml
View file @
cc472e48
<resources
xmlns:tools=
"http://schemas.android.com/tools"
>
<resources
xmlns:tools=
"http://schemas.android.com/tools"
>
<string
name=
"app_name"
>
Pdf Reader All Pdf Reader
</string>
<string
name=
"app_name"
>
Pdf Reader All Pdf Reader
</string>
<string
name=
"facebook_app_id"
tools:ignore=
"MissingTranslation"
>
93993829457115
4
</string>
<string
name=
"facebook_app_id"
tools:ignore=
"MissingTranslation"
>
56768824580377
4
</string>
<!-- 通知文本-->
<!-- 通知文本-->
...
@@ -98,6 +98,6 @@
...
@@ -98,6 +98,6 @@
<string
name=
"send"
>
Send
</string>
<string
name=
"send"
>
Send
</string>
<string
name=
"pdf_reader"
>
PDF Reader
</string>
<string
name=
"pdf_reader"
>
PDF Reader
</string>
<string
name=
"lock_pdf"
>
Lock Pdf
</string>
<string
name=
"lock_pdf"
>
Lock Pdf
</string>
<string
name=
"no_bookmark_file"
>
No Bookmark File
</string>
</resources>
</resources>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment