Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
A
appzxhy
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
appzxhy
Commits
eaee9777
Commit
eaee9777
authored
Jun 27, 2025
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[优化]installReferrer上报
parent
d8fce1b1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
407 additions
and
122 deletions
+407
-122
battery_info.json
app/src/main/assets/scan/battery_info.json
+1
-0
MyApplication.kt
app/src/main/java/com/dumpster/cleaner/MyApplication.kt
+8
-5
SpConstObject.kt
app/src/main/java/com/dumpster/cleaner/SpConstObject.kt
+18
-0
FeatureBean.kt
app/src/main/java/com/dumpster/cleaner/bean/FeatureBean.kt
+4
-3
EventUtils.kt
...n/java/com/dumpster/cleaner/business/helper/EventUtils.kt
+7
-3
InstallHelper.kt
...ava/com/dumpster/cleaner/business/helper/InstallHelper.kt
+51
-18
MyNotificationManager.kt
...eaner/business/push/notification/MyNotificationManager.kt
+6
-4
NotificationUiUtil.kt
.../cleaner/business/push/notification/NotificationUiUtil.kt
+8
-1
PackageReceiver.kt
...umpster/cleaner/business/push/receiver/PackageReceiver.kt
+33
-0
CleanGuideActivity.kt
.../java/com/dumpster/cleaner/ui/guide/CleanGuideActivity.kt
+5
-1
sl3fku.xml
app/src/main/res/drawable-xxhdpi/sl3fku.xml
+10
-0
b2x.xml
app/src/main/res/drawable/b2x.xml
+36
-0
gvv81.xml
app/src/main/res/drawable/gvv81.xml
+10
-0
ny.xml
app/src/main/res/drawable/ny.xml
+26
-0
okaq.xml
app/src/main/res/drawable/okaq.xml
+21
-0
pvxq.xml
app/src/main/res/drawable/pvxq.xml
+21
-0
r3yb.xml
app/src/main/res/drawable/r3yb.xml
+21
-0
tjkg.xml
app/src/main/res/drawable/tjkg.xml
+21
-0
notification_common_large.xml
app/src/main/res/layout/notification_common_large.xml
+69
-77
notification_common_small.xml
app/src/main/res/layout/notification_common_small.xml
+31
-10
No files found.
app/src/main/assets/scan/battery_info.json
0 → 100644
View file @
eaee9777
This diff is collapsed.
Click to expand it.
app/src/main/java/com/dumpster/cleaner/MyApplication.kt
View file @
eaee9777
...
...
@@ -25,11 +25,13 @@ import java.util.Locale
import
java.util.UUID
import
com.dumpster.cleaner.SpConstObject.appLanguageSp
import
com.dumpster.cleaner.SpConstObject.appLanguageCountrySp
import
com.dumpster.cleaner.SpConstObject.appUuid
import
com.dumpster.cleaner.business.ads.AdsMgr
import
com.dumpster.cleaner.business.helper.NewComUtils.spConfig
import
com.dumpster.cleaner.business.push.fcm.FCMManager
import
com.dumpster.cleaner.business.push.notification.MyNotificationManager
import
com.dumpster.cleaner.business.push.receiver.AlarmReceiver.Companion.startAlarm
import
com.dumpster.cleaner.business.push.receiver.PackageReceiver
import
com.dumpster.cleaner.business.push.receiver.ScreenStatusReceiver
import
com.dumpster.cleaner.business.push.timer.TimerManager.Companion.changeTimer
import
com.dumpster.cleaner.business.push.work.RepeatingWorker.Companion.schedulePeriodicWork
...
...
@@ -100,8 +102,8 @@ class MyApplication : Application() {
private
fun
initGid
()
=
MainScope
().
launch
(
Dispatchers
.
IO
)
{
try
{
val
info
:
AdvertisingIdClient
.
Info
=
AdvertisingIdClient
.
getAdvertisingIdInfo
(
applicationContext
)
val
advertisingId
=
info
.
id
AppPreferences
.
getInstance
().
put
(
"gid"
,
advertisingId
)
val
advertisingId
=
info
.
id
?:
"null"
SpConstObject
.
gid
=
advertisingId
}
catch
(
e
:
Exception
)
{
EventUtils
.
event
(
"gid_exception"
)
}
...
...
@@ -113,10 +115,10 @@ class MyApplication : Application() {
}
private
fun
initUUid
()
{
uuid
=
AppPreferences
.
getInstance
().
getString
(
"uuid"
,
""
)
uuid
=
appUuid
if
(
TextUtils
.
isEmpty
(
uuid
))
{
uuid
=
UUID
.
randomUUID
().
toString
()
+
System
.
currentTimeMillis
()
AppPreferences
.
getInstance
().
put
(
"uuid"
,
uuid
)
appUuid
=
uuid
LogEx
.
logDebug
(
TAG
,
"uuid=$uuid"
)
}
LogEx
.
logDebug
(
TAG
,
"uuid=${AppPreferences.getInstance().getString("
uuid
", "")}"
)
...
...
@@ -164,6 +166,7 @@ class MyApplication : Application() {
ScreenStatusReceiver
.
registerScreenStatusReceiver
(
this
)
// PackageStatusReceiver.registerPackageStatusReceiver(this)
registerBatteryReceiver
(
this
)
PackageReceiver
.
register
(
this
)
//workManager
schedulePeriodicWork
(
appContext
)
...
...
@@ -194,7 +197,7 @@ class MyApplication : Application() {
private
var
lastTimePause
=
0L
private
var
lastTimeResume
=
0L
private
fun
isHotLaunch
():
Boolean
{
if
((
lastTimeResume
-
lastTimePause
)
>
50
00
)
{
if
((
lastTimeResume
-
lastTimePause
)
>
35
00
)
{
return
true
}
return
false
...
...
app/src/main/java/com/dumpster/cleaner/SpConstObject.kt
View file @
eaee9777
...
...
@@ -5,6 +5,24 @@ import java.util.Locale
object
SpConstObject
{
var
appUuid
=
""
get
()
{
return
AppPreferences
.
getInstance
().
getString
(
"uuid_app"
,
field
)
}
set
(
value
)
{
field
=
value
AppPreferences
.
getInstance
().
put
(
"uuid_app"
,
value
,
true
)
}
var
gid
=
""
get
()
{
return
AppPreferences
.
getInstance
().
getString
(
"gid"
,
field
)
}
set
(
value
)
{
field
=
value
AppPreferences
.
getInstance
().
put
(
"gid"
,
value
,
true
)
}
//是否已经点击start
var
ifAgreePrivacy
=
false
...
...
app/src/main/java/com/dumpster/cleaner/bean/FeatureBean.kt
View file @
eaee9777
...
...
@@ -26,9 +26,9 @@ class FeatureBean(
fun
isTodayUsedFunction
():
Boolean
{
return
listOf
(
val
flag1
=
getFunctionTodayUsed
(
BATTERY_INFO
)
val
flag2
=
listOf
(
JUNK_CLEAN
,
BATTERY_INFO
,
SCREENSHOT_CLEAN
,
LARGE_FILE_CLEAN
,
PHOTO_COMPRESSION
,
...
...
@@ -37,7 +37,8 @@ class FeatureBean(
RECOVERY_VIDEOS
,
RECOVERY_AUDIOS
,
RECOVERY_DOCUMENTS
).
any
{
getFunctionTodayUsed
(
it
)
}
).
filter
{
getFunctionTodayUsed
(
it
)
}.
size
<
2
return
flag1
&&
flag2
}
/**
...
...
app/src/main/java/com/dumpster/cleaner/business/helper/EventUtils.kt
View file @
eaee9777
...
...
@@ -4,8 +4,9 @@ import android.os.Build
import
com.dumpster.cleaner.BuildConfig
import
com.dumpster.cleaner.SpConstObject.ifAgreePrivacy
import
com.dumpster.cleaner.GlobalConfig
import
com.dumpster.cleaner.SpConstObject
import
com.dumpster.cleaner.bean.config.ConfigBean
import
com.dumpster.cleaner.
utils.AppPreferences
import
com.dumpster.cleaner.
business.helper.InstallHelps.installEvent
import
com.dumpster.cleaner.utils.LogEx
import
okhttp3.Call
import
okhttp3.Callback
...
...
@@ -49,8 +50,8 @@ object EventUtils {
jsonObject
.
put
(
"${packageName}_4"
,
Build
.
MANUFACTURER
)
// 手机厂商
jsonObject
.
put
(
"${packageName}_5"
,
Build
.
VERSION
.
SDK_INT
)
// android系统版本号
jsonObject
.
put
(
"${packageName}_8"
,
BuildConfig
.
VERSION_NAME
)
// APP版本号,如:1.1.2
jsonObject
.
put
(
"${packageName}_9"
,
AppPreferences
.
getInstance
().
getString
(
"uuid"
,
""
)
)
// Android id
jsonObject
.
put
(
"${packageName}_10"
,
AppPreferences
.
getInstance
().
getString
(
"gid"
,
""
)
)
// Google advertiser id
jsonObject
.
put
(
"${packageName}_9"
,
SpConstObject
.
appUuid
)
// Android id
jsonObject
.
put
(
"${packageName}_10"
,
SpConstObject
.
gid
)
// Google advertiser id
jsonObject
.
put
(
"${packageName}_13"
,
"android"
)
// platform 默认android
jsonObject
.
put
(
"${packageName}_14"
,
BuildConfig
.
VERSION_CODE
)
// android版本,如:13
jsonObject
.
put
(
"${packageName}_15"
,
"google"
)
// 渠道标识
...
...
@@ -96,6 +97,9 @@ object EventUtils {
override
fun
onResponse
(
call
:
Call
,
response
:
Response
)
{
if
(
response
.
code
==
200
&&
response
.
isSuccessful
)
{
LogEx
.
logDebug
(
TAG
,
"onResponse 200"
)
if
(
key
==
"install_referrer"
)
{
installEvent
=
true
}
}
}
})
...
...
app/src/main/java/com/dumpster/cleaner/business/helper/InstallHelper.kt
View file @
eaee9777
...
...
@@ -2,10 +2,10 @@ package com.dumpster.cleaner.business.helper
import
com.android.installreferrer.api.InstallReferrerClient
import
com.android.installreferrer.api.InstallReferrerStateListener
import
com.android.installreferrer.api.ReferrerDetails
import
com.dumpster.cleaner.BuildConfig
import
com.dumpster.cleaner.MyApplication
import
com.dumpster.cleaner.utils.AppPreferences
import
com.dumpster.cleaner.utils.LogEx
import
org.json.JSONObject
/**
...
...
@@ -15,10 +15,48 @@ object InstallHelps {
private
val
TAG
=
"InstallHelps"
var
installReferrer
=
""
get
()
{
return
AppPreferences
.
getInstance
().
getString
(
"install_referrer"
,
field
)
}
set
(
value
)
{
field
=
value
AppPreferences
.
getInstance
().
put
(
"install_referrer"
,
value
,
true
)
}
//用户来源
var
installSource
=
""
get
()
{
return
AppPreferences
.
getInstance
().
getString
(
"install_source"
,
field
)
}
set
(
value
)
{
field
=
value
AppPreferences
.
getInstance
().
put
(
"install_source"
,
value
,
true
)
}
//用户是否上报过
var
installEvent
=
false
get
()
{
return
AppPreferences
.
getInstance
().
getBoolean
(
"installEvent"
,
field
)
}
set
(
value
)
{
field
=
value
AppPreferences
.
getInstance
().
put
(
"installEvent"
,
value
,
true
)
}
fun
eventInstallReferrer
(
response
:
ReferrerDetails
)
{
val
obj
=
JSONObject
()
obj
.
put
(
"referrerUrl"
,
response
.
installReferrer
)
obj
.
put
(
"referrerClickTime"
,
response
.
referrerClickTimestampSeconds
)
obj
.
put
(
"appInstallTime"
,
response
.
installBeginTimestampSeconds
)
obj
.
put
(
"instantExperienceLaunched"
,
response
.
installReferrer
.
toString
())
EventUtils
.
event
(
"install_referrer"
,
ext
=
obj
)
}
fun
init
(
requestCfg
:
()
->
Unit
)
{
val
installReferrer
=
AppPreferences
.
getInstance
().
getString
(
"install_referrer"
,
""
)
if
(
installReferrer
.
isNotEmpty
())
{
if
(
installEvent
)
{
requestCfg
.
invoke
()
return
}
...
...
@@ -31,31 +69,26 @@ object InstallHelps {
when
(
responseCode
)
{
InstallReferrerClient
.
InstallReferrerResponse
.
OK
->
{
val
response
=
referrerClient
.
installReferrer
val
installInfo
=
response
.
installReferrer
val
obj
=
JSONObject
()
obj
.
put
(
"referrerUrl"
,
response
.
installReferrer
)
obj
.
put
(
"referrerClickTime"
,
response
.
referrerClickTimestampSeconds
)
obj
.
put
(
"appInstallTime"
,
response
.
installBeginTimestampSeconds
)
obj
.
put
(
"instantExperienceLaunched"
,
installInfo
.
toString
())
EventUtils
.
event
(
"install_referrer"
,
ext
=
obj
)
LogEx
.
logDebug
(
TAG
,
"referrerUrl=${response.installReferrer}"
)
AppPreferences
.
getInstance
().
put
(
"install_referrer"
,
response
.
installReferrer
)
if
(
listOf
(
installReferrer
=
response
.
installReferrer
eventInstallReferrer
(
response
)
installSource
=
if
(
listOf
(
"gclid"
,
"facebook"
,
"instagram"
).
all
{
!
installInfo
.
contains
(
it
,
true
)
}
).
all
{
!
response
.
installReferrer
.
contains
(
it
,
true
)
}
)
{
//自然用户
if
(
BuildConfig
.
DEBUG
)
{
AppPreferences
.
getInstance
().
put
(
"install_source"
,
"channel"
)
"channel"
}
else
{
AppPreferences
.
getInstance
().
put
(
"install_source"
,
"origin"
)
"origin"
}
}
else
{
//渠道用户
AppPreferences
.
getInstance
().
put
(
"install_source"
,
"channel"
)
"channel"
}
requestCfg
()
}
...
...
app/src/main/java/com/dumpster/cleaner/business/push/notification/MyNotificationManager.kt
View file @
eaee9777
...
...
@@ -11,6 +11,7 @@ import com.dumpster.cleaner.bean.FeatureBean.Companion.SCREENSHOT_CLEAN
import
com.dumpster.cleaner.bean.FeatureBean.Companion.SIMILAR_PHOTOS
import
com.dumpster.cleaner.bean.push.NotificationSendBean
import
com.dumpster.cleaner.bean.push.NotificationSendBean.Companion.POPUP_WHERE_WORK_MANAGER
import
com.dumpster.cleaner.bean.push.NotificationSendBean.Companion.POPUP_WHERE_PACKAGE
import
com.dumpster.cleaner.bean.config.PopupConfigBean.Companion.popupConfigBean
import
com.dumpster.cleaner.bean.push.NotificationSendBean.Companion.POPUP_WHERE_ALARM
import
com.dumpster.cleaner.bean.push.NotificationSendBean.Companion.POPUP_WHERE_LOCK
...
...
@@ -193,10 +194,11 @@ object MyNotificationManager {
* 值测某些类型
*/
private
var
testWhere
=
listOf
(
POPUP_WHERE_TIMER
,
POPUP_WHERE_LOCK
,
POPUP_WHERE_ALARM
,
POPUP_WHERE_WORK_MANAGER
// POPUP_WHERE_TIMER,
// POPUP_WHERE_LOCK,
// POPUP_WHERE_ALARM,
// POPUP_WHERE_WORK_MANAGER,
POPUP_WHERE_PACKAGE
,
)
private
val
looper_actionId
=
listOf
(
// ACTION_ID_TEST,
...
...
app/src/main/java/com/dumpster/cleaner/business/push/notification/NotificationUiUtil.kt
View file @
eaee9777
...
...
@@ -47,7 +47,8 @@ object NotificationUiUtil {
intent
.
putExtra
(
"notificationId"
,
sendBean
.
notificationId
)
sendBean
.
intent
=
intent
val
testNotificationId
=
if
(
BuildConfig
.
DEBUG
)
"${sendBean.notificationId}_${sendBean.actionId}_"
else
""
// val testNotificationId = if (BuildConfig.DEBUG) "${sendBean.notificationId}_${sendBean.actionId}_" else ""
val
testNotificationId
=
""
var
debugAction
:
(
remoteViews
:
RemoteViews
)
->
Unit
=
{
remoteViews
->
if
(
BuildConfig
.
DEBUG
)
{
remoteViews
.
setTextViewText
(
R
.
id
.
tv_btn
,
sendBean
.
where
)
...
...
@@ -59,6 +60,7 @@ object NotificationUiUtil {
val
text
=
testNotificationId
+
"Clean up the junk files on your phone now!"
sendBean
.
smallRemoteViews
=
RemoteViews
(
context
.
packageName
,
R
.
layout
.
notification_common_small
).
apply
{
setTextViewText
(
R
.
id
.
tv1
,
text
)
setImageViewResource
(
R
.
id
.
ivIcon
,
R
.
drawable
.
icon_clean_push
)
debugAction
.
invoke
(
this
)
}
sendBean
.
bigRemoteViews
=
RemoteViews
(
context
.
packageName
,
R
.
layout
.
notification_common_large
).
apply
{
...
...
@@ -72,6 +74,7 @@ object NotificationUiUtil {
val
text
=
testNotificationId
+
"Check your phone battery consumption recently!"
sendBean
.
smallRemoteViews
=
RemoteViews
(
context
.
packageName
,
R
.
layout
.
notification_common_small
).
apply
{
setTextViewText
(
R
.
id
.
tv1
,
text
)
setImageViewResource
(
R
.
id
.
ivIcon
,
R
.
drawable
.
icon_battery_info_push
)
debugAction
.
invoke
(
this
)
}
sendBean
.
bigRemoteViews
=
RemoteViews
(
context
.
packageName
,
R
.
layout
.
notification_common_large
).
apply
{
...
...
@@ -85,6 +88,7 @@ object NotificationUiUtil {
val
text
=
testNotificationId
+
"Clear out large files to free up your storage space!"
sendBean
.
smallRemoteViews
=
RemoteViews
(
context
.
packageName
,
R
.
layout
.
notification_common_small
).
apply
{
setTextViewText
(
R
.
id
.
tv1
,
text
)
setImageViewResource
(
R
.
id
.
ivIcon
,
R
.
drawable
.
icon_large_file_cleaner_push
)
debugAction
.
invoke
(
this
)
}
sendBean
.
bigRemoteViews
=
RemoteViews
(
context
.
packageName
,
R
.
layout
.
notification_common_large
).
apply
{
...
...
@@ -98,6 +102,7 @@ object NotificationUiUtil {
val
text
=
testNotificationId
+
"Clean Up Similar Photos – Save Space!"
sendBean
.
smallRemoteViews
=
RemoteViews
(
context
.
packageName
,
R
.
layout
.
notification_common_small
).
apply
{
setTextViewText
(
R
.
id
.
tv1
,
text
)
setImageViewResource
(
R
.
id
.
ivIcon
,
R
.
drawable
.
icon_similar_pictures_push
)
debugAction
.
invoke
(
this
)
}
sendBean
.
bigRemoteViews
=
RemoteViews
(
context
.
packageName
,
R
.
layout
.
notification_common_large
).
apply
{
...
...
@@ -111,6 +116,7 @@ object NotificationUiUtil {
val
text
=
testNotificationId
+
"Free up space by clearing screenshot clutter!"
sendBean
.
smallRemoteViews
=
RemoteViews
(
context
.
packageName
,
R
.
layout
.
notification_common_small
).
apply
{
setTextViewText
(
R
.
id
.
tv1
,
text
)
setImageViewResource
(
R
.
id
.
ivIcon
,
R
.
drawable
.
icon_screenshot_clean_push
)
debugAction
.
invoke
(
this
)
}
sendBean
.
bigRemoteViews
=
RemoteViews
(
context
.
packageName
,
R
.
layout
.
notification_common_large
).
apply
{
...
...
@@ -124,6 +130,7 @@ object NotificationUiUtil {
val
text
=
testNotificationId
+
"Free up your phone storage space by compressing photos."
sendBean
.
smallRemoteViews
=
RemoteViews
(
context
.
packageName
,
R
.
layout
.
notification_common_small
).
apply
{
setTextViewText
(
R
.
id
.
tv1
,
text
)
setImageViewResource
(
R
.
id
.
ivIcon
,
R
.
drawable
.
icon_compression_push
)
debugAction
.
invoke
(
this
)
}
sendBean
.
bigRemoteViews
=
RemoteViews
(
context
.
packageName
,
R
.
layout
.
notification_common_large
).
apply
{
...
...
app/src/main/java/com/dumpster/cleaner/business/push/receiver/PackageReceiver.kt
0 → 100644
View file @
eaee9777
package
com.dumpster.cleaner.business.push.receiver
import
android.app.NotificationManager
import
android.content.BroadcastReceiver
import
android.content.Context
import
android.content.Intent
import
android.content.IntentFilter
import
android.os.Build
import
com.dumpster.cleaner.bean.push.NotificationSendBean
import
com.dumpster.cleaner.bean.push.NotificationSendBean.Companion.POPUP_WHERE_PACKAGE
import
com.dumpster.cleaner.business.push.notification.MyNotificationManager
class
PackageReceiver
:
BroadcastReceiver
()
{
companion
object
{
fun
register
(
context
:
Context
)
{
val
intentFilter
=
IntentFilter
().
apply
{
addAction
(
Intent
.
ACTION_PACKAGE_REMOVED
)
addAction
(
Intent
.
ACTION_PACKAGE_ADDED
)
addDataScheme
(
"package"
)
}
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
TIRAMISU
)
{
context
.
registerReceiver
(
PackageReceiver
(),
intentFilter
,
Context
.
RECEIVER_EXPORTED
)
}
else
{
context
.
registerReceiver
(
PackageReceiver
(),
intentFilter
)
}
}
}
override
fun
onReceive
(
context
:
Context
,
intent
:
Intent
?)
{
MyNotificationManager
.
submitSendBean
(
NotificationSendBean
(
context
,
POPUP_WHERE_PACKAGE
))
}
}
\ No newline at end of file
app/src/main/java/com/dumpster/cleaner/ui/guide/CleanGuideActivity.kt
View file @
eaee9777
...
...
@@ -9,11 +9,13 @@ import com.dumpster.cleaner.R
import
com.dumpster.cleaner.base.BaseActivity
import
com.dumpster.cleaner.base.jumpAction
import
com.dumpster.cleaner.bean.FeatureBean.Companion.JUNK_CLEAN
import
com.dumpster.cleaner.business.ads.AdEvent
import
com.dumpster.cleaner.business.ads.AdsMgr
import
com.dumpster.cleaner.business.ads.AdsShowCallBack
import
com.dumpster.cleaner.business.ads.LimitUtils
import
com.dumpster.cleaner.business.ads.admob.AdmobEvent
import
com.dumpster.cleaner.databinding.ActivityLayoutCleanGuideBinding
import
com.dumpster.cleaner.ui.dialog.StoragePermissionDialog
import
com.dumpster.cleaner.ui.dialog.permissionStorageJump
import
com.dumpster.cleaner.ui.main.MainActivity
import
com.dumpster.cleaner.utils.BarUtils
import
com.dumpster.cleaner.utils.PermissionUtils.checkStorePermission
...
...
@@ -60,6 +62,8 @@ class CleanGuideActivity : BaseActivity<ActivityLayoutCleanGuideBinding>(Activit
requestStoragePermission
(
launcher
)
{
if
(
it
)
{
jump
.
invoke
()
}
else
{
binding
.
idSkip
.
callOnClick
()
}
}
}
...
...
app/src/main/res/drawable-xxhdpi/sl3fku.xml
0 → 100644
View file @
eaee9777
<?xml version="1.0" encoding="utf-8"?>
<animated-vector
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:drawable=
"@drawable/ny"
>
<target
android:name=
"button"
android:animation=
"@drawable/pvxq"
/>
<target
android:name=
"circle"
android:animation=
"@drawable/okaq"
/>
</animated-vector>
\ No newline at end of file
app/src/main/res/drawable/b2x.xml
0 → 100644
View file @
eaee9777
<?xml version="1.0" encoding="utf-8"?>
<vector
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:height=
"40dp"
android:width=
"327dp"
android:viewportWidth=
"327"
android:viewportHeight=
"44"
>
<group
android:name=
"button"
android:pivotX=
"163.5"
android:pivotY=
"20"
>
<path
android:fillColor=
"@color/colorPrimary"
android:pathData=
"M24,0L303,0A24,22 0,0 1,327 22L327,22A24,22 0,0 1,303 44L24,44A24,22 0,0 1,0 22L0,22A24,22 0,0 1,24 0z"
/>
<!-- <path-->
<!-- android:fillColor="#ffffff"-->
<!-- android:pathData="M305,22m-18,0a18,18 0,1 1,36 0a18,18 0,1 1,-36 0"/>-->
<!-- <path-->
<!-- android:fillColor="#00000000"-->
<!-- android:pathData="M302.5,16L308.5,22L302.5,28"-->
<!-- android:strokeColor="@color/colorPrimary"-->
<!-- android:strokeWidth="2"-->
<!-- android:strokeLineCap="round"-->
<!-- android:strokeLineJoin="round"/>-->
<group
android:name=
"foreground_button"
>
<clip-path
android:pathData=
"M24,0L303,0A24,22 0,0 1,327 22L327,22A24,22 0,0 1,303 44L24,44A24,22 0,0 1,0 22L0,22A24,22 0,0 1,24 0z"
/>
<group
android:name=
"circle"
android:pivotX=
"163.5"
android:pivotY=
"22"
>
<path
android:fillColor=
"#33ffffff"
android:pathData=
" M0,0 A164.973483,164.973483 0 1,1 327,44 A164.973483,164.973483 0 1,1 0,0 Z"
/>
</group>
</group>
</group>
</vector>
app/src/main/res/drawable/gvv81.xml
0 → 100644
View file @
eaee9777
<?xml version="1.0" encoding="utf-8"?>
<animated-vector
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:drawable=
"@drawable/b2x"
>
<target
android:name=
"button"
android:animation=
"@drawable/tjkg"
/>
<target
android:name=
"circle"
android:animation=
"@drawable/r3yb"
/>
</animated-vector>
app/src/main/res/drawable/ny.xml
0 → 100644
View file @
eaee9777
<?xml version="1.0" encoding="utf-8"?>
<vector
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:height=
"36dp"
android:width=
"80dp"
android:viewportWidth=
"80"
android:viewportHeight=
"36"
>
<group
android:name=
"button"
android:pivotX=
"40"
android:pivotY=
"18"
>
<path
android:fillColor=
"@color/colorPrimary"
android:pathData=
"M10,0L70,0A10,10 0,0 1,80 10L80,26A10,10 0,0 1,70 36L10,36A10,10 0,0 1,0 26L0,10A10,10 0,0 1,10 0z"
/>
<group
android:name=
"foreground_button"
>
<clip-path
android:pathData=
"M10,0L70,0A10,10 0,0 1,80 10L80,26A10,10 0,0 1,70 36L10,36A10,10 0,0 1,0 26L0,10A10,10 0,0 1,10 0z"
/>
<group
android:name=
"circle"
android:pivotX=
"40"
android:pivotY=
"18"
>
<path
android:fillColor=
"#33ffffff"
android:pathData=
" M0,0 A43.863425,43.863425 0 1,1 80,36 A43.863425,43.863425 0 1,1 0,0 Z"
/>
</group>
</group>
</group>
</vector>
app/src/main/res/drawable/okaq.xml
0 → 100644
View file @
eaee9777
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:ordering=
"together"
>
<objectAnimator
android:duration=
"1000"
android:startOffset=
"0"
android:repeatCount=
"infinite"
android:repeatMode=
"restart"
android:valueFrom=
"0"
android:valueTo=
"1"
android:valueType=
"floatType"
android:propertyName=
"scaleX"
/>
<objectAnimator
android:duration=
"1000"
android:startOffset=
"0"
android:repeatCount=
"infinite"
android:repeatMode=
"restart"
android:valueFrom=
"0"
android:valueTo=
"1"
android:valueType=
"floatType"
android:propertyName=
"scaleY"
/>
</set>
app/src/main/res/drawable/pvxq.xml
0 → 100644
View file @
eaee9777
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:ordering=
"together"
>
<objectAnimator
android:duration=
"500"
android:startOffset=
"0"
android:repeatCount=
"infinite"
android:repeatMode=
"reverse"
android:valueFrom=
"0.92"
android:valueTo=
"1"
android:valueType=
"floatType"
android:propertyName=
"scaleX"
/>
<objectAnimator
android:duration=
"500"
android:startOffset=
"0"
android:repeatCount=
"infinite"
android:repeatMode=
"reverse"
android:valueFrom=
"0.92"
android:valueTo=
"1"
android:valueType=
"floatType"
android:propertyName=
"scaleY"
/>
</set>
\ No newline at end of file
app/src/main/res/drawable/r3yb.xml
0 → 100644
View file @
eaee9777
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:ordering=
"together"
>
<objectAnimator
android:duration=
"1000"
android:startOffset=
"0"
android:repeatCount=
"infinite"
android:repeatMode=
"restart"
android:valueFrom=
"0"
android:valueTo=
"1"
android:valueType=
"floatType"
android:propertyName=
"scaleX"
/>
<objectAnimator
android:duration=
"1000"
android:startOffset=
"0"
android:repeatCount=
"infinite"
android:repeatMode=
"restart"
android:valueFrom=
"0"
android:valueTo=
"1"
android:valueType=
"floatType"
android:propertyName=
"scaleY"
/>
</set>
app/src/main/res/drawable/tjkg.xml
0 → 100644
View file @
eaee9777
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:ordering=
"together"
>
<objectAnimator
android:duration=
"500"
android:startOffset=
"0"
android:repeatCount=
"infinite"
android:repeatMode=
"reverse"
android:valueFrom=
"0.98"
android:valueTo=
"1"
android:valueType=
"floatType"
android:propertyName=
"scaleX"
/>
<objectAnimator
android:duration=
"500"
android:startOffset=
"0"
android:repeatCount=
"infinite"
android:repeatMode=
"reverse"
android:valueFrom=
"0.98"
android:valueTo=
"1"
android:valueType=
"floatType"
android:propertyName=
"scaleY"
/>
</set>
app/src/main/res/layout/notification_common_large.xml
View file @
eaee9777
<?xml version="1.0" encoding="utf-8"?>
<
Relative
Layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<
Linear
Layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"200dp"
android:background=
"@drawable/white_background"
>
android:layout_height=
"wrap_content"
android:background=
"@drawable/bg_ffffff_8"
android:orientation=
"vertical"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
android:layout_height=
"wrap_content"
android:layout_marginTop=
"8dp"
android:gravity=
"center_vertical"
tools:ignore=
"UseCompoundDrawables"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:layout_marginStart=
"16dp"
android:layout_marginTop=
"24dp"
android:layout_marginEnd=
"16dp"
android:layout_weight=
"1"
android:gravity=
"center_vertical"
android:orientation=
"horizontal"
>
<ImageView
android:layout_width=
"26dp"
android:layout_height=
"26dp"
android:layout_marginStart=
"12dp"
android:layout_marginEnd=
"8dp"
android:src=
"@mipmap/logo"
tools:ignore=
"ContentDescription"
/>
<Image
View
android:id=
"@+id/ivIcon
"
android:layout_width=
"@dimen/dp_40
"
android:layout_height=
"@dimen/dp_40
"
android:src=
"@mipmap/logo
"
tools:ignore=
"ContentDescription
"
/>
<Text
View
android:layout_width=
"wrap_content
"
android:layout_height=
"wrap_content
"
android:text=
"@string/app_name
"
android:textColor=
"#000000
"
android:textSize=
"12sp
"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"6dp"
android:layout_marginEnd=
"6dp"
android:orientation=
"vertical"
>
</LinearLayout>
<TextView
android:id=
"@+id/tv1"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:ellipsize=
"end"
android:maxLines=
"2"
android:text=
"notification_junk_clean"
android:textColor=
"@color/color_181b1f"
android:textSize=
"16sp"
android:textStyle=
"bold"
tools:ignore=
"HardcodedText"
/>
<ImageView
android:id=
"@+id/ivIcon"
android:layout_width=
"@dimen/dp_40"
android:layout_height=
"@dimen/dp_40"
android:layout_gravity=
"center_horizontal"
android:layout_marginTop=
"@dimen/dp_6"
android:src=
"@mipmap/logo"
tools:ignore=
"ContentDescription"
/>
<TextView
android:id=
"@+id/tv2"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"2dp"
android:ellipsize=
"end"
android:maxLines=
"2"
android:textColor=
"@color/color_999999"
android:textSize=
"12sp"
android:visibility=
"gone"
tools:text=
"Are you sure you want to quit without trying to clean up the garbage again?"
/>
</LinearLayout>
<TextView
android:id=
"@+id/tv1"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_10"
android:ellipsize=
"end"
android:gravity=
"center_horizontal"
android:maxLines=
"2"
android:text=
"notification_junk_clean"
android:textColor=
"@color/color_181b1f"
android:textSize=
"16sp"
android:textStyle=
"bold"
tools:ignore=
"HardcodedText"
/>
</LinearLayout>
<FrameLayout
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:layout_marginTop=
"20dp"
android:layout_marginBottom=
"@dimen/dp_8"
android:layout_weight=
"1"
android:gravity=
"center"
>
<
RelativeLayout
<
ProgressBar
android:layout_width=
"match_parent"
android:layout_height=
"
0dp
"
android:
layout_weight=
"1
"
android:
gravity=
"center"
>
android:layout_height=
"
wrap_content
"
android:
indeterminate=
"true
"
android:
indeterminateDrawable=
"@drawable/gvv81"
/
>
<TextView
android:id=
"@+id/tv_btn"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"16dp"
android:layout_marginEnd=
"16dp"
android:background=
"@drawable/bg_btn_50"
android:gravity=
"center"
android:paddingVertical=
"8dp"
android:text=
"@string/clean_now"
android:textColor=
"@color/white"
android:textSize=
"18sp"
android:textStyle=
"bold"
/>
</RelativeLayout>
</LinearLayout>
<TextView
android:id=
"@+id/tv_btn"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:layout_marginStart=
"16dp"
android:layout_marginEnd=
"16dp"
android:gravity=
"center"
android:paddingVertical=
"8dp"
android:text=
"@string/clean_now"
android:textColor=
"@color/white"
android:textSize=
"18sp"
android:textStyle=
"bold"
/>
</FrameLayout>
<TextView
android:id=
"@+id/tv_mark"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
""
android:textColor=
"@color/colorPrimary"
android:textSize=
"16sp"
/>
</RelativeLayout>
\ No newline at end of file
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/notification_common_small.xml
View file @
eaee9777
...
...
@@ -18,9 +18,19 @@
android:orientation=
"horizontal"
tools:ignore=
"UselessParent"
>
<ImageView
android:id=
"@+id/ivIcon"
android:layout_width=
"@dimen/dp_30"
android:layout_height=
"@dimen/dp_30"
android:src=
"@mipmap/logo"
tools:ignore=
"ContentDescription"
/>
<LinearLayout
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"@dimen/dp_6"
android:layout_marginEnd=
"8dp"
android:layout_weight=
"1"
android:orientation=
"vertical"
>
...
...
@@ -49,17 +59,28 @@
tools:text=
"Are you sure you want to quit without trying to clean up the garbage again?"
/>
</LinearLayout>
<TextView
android:id=
"@+id/tv_btn"
<FrameLayout
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:background=
"@drawable/bg_btn_50"
android:paddingHorizontal=
"14dp"
android:paddingVertical=
"6dp"
android:text=
"@string/clean_now"
android:textColor=
"@color/white"
android:textSize=
"12sp"
android:textStyle=
"bold"
/>
android:layout_height=
"wrap_content"
>
<ProgressBar
android:layout_width=
"68dp"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:indeterminate=
"true"
android:indeterminateDrawable=
"@drawable/sl3fku"
/>
<TextView
android:id=
"@+id/tv_btn"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:text=
"@string/clean_now"
android:textColor=
"@color/white"
android:textSize=
"12sp"
android:textStyle=
"bold"
/>
</FrameLayout>
</LinearLayout>
...
...
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