Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
S
SuperEasyClean
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
songjianyu
SuperEasyClean
Commits
ab87117d
Commit
ab87117d
authored
Jun 09, 2025
by
wanglei
Committed by
songjianyu
Jun 09, 2025
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[调整]打开通知相关的弹窗
parent
b1bf6c19
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
172 additions
and
8 deletions
+172
-8
NotificationTurnOnDialog.kt
...va/com/base/appzxhy/ui/dialog/NotificationTurnOnDialog.kt
+43
-0
MainActivity.kt
app/src/main/java/com/base/appzxhy/ui/main/MainActivity.kt
+17
-1
MainViewModel.kt
app/src/main/java/com/base/appzxhy/ui/main/MainViewModel.kt
+17
-4
PermissionUtils.kt
app/src/main/java/com/base/appzxhy/utils/PermissionUtils.kt
+33
-2
icon_close_pop_blue.png
app/src/main/res/drawable-xxhdpi/icon_close_pop_blue.png
+0
-0
dialog_notification.xml
app/src/main/res/layout/dialog_notification.xml
+60
-0
fragment_home3.xml
app/src/main/res/layout/fragment_home3.xml
+1
-1
dimens.xml
app/src/main/res/values/dimens.xml
+1
-0
No files found.
app/src/main/java/com/base/appzxhy/ui/dialog/NotificationTurnOnDialog.kt
0 → 100644
View file @
ab87117d
package
com.base.appzxhy.ui.dialog
import
android.app.Activity
import
android.view.LayoutInflater
import
androidx.appcompat.app.AlertDialog
import
androidx.constraintlayout.widget.ConstraintLayout
import
com.base.appzxhy.R
import
com.base.appzxhy.databinding.DialogNotificationBinding
class
NotificationTurnOnDialog
(
val
activity
:
Activity
)
{
val
dialog
=
AlertDialog
.
Builder
(
activity
).
create
()
val
binding
=
DialogNotificationBinding
.
inflate
(
LayoutInflater
.
from
(
activity
))
var
action
:
(()
->
Unit
)?
=
null
fun
showDialog
()
{
dialog
.
setView
(
binding
.
root
)
dialog
.
setCancelable
(
true
)
dialog
.
setCanceledOnTouchOutside
(
true
)
dialog
.
show
()
val
params
=
dialog
.
window
?.
attributes
// params?.width = ConstraintLayout.LayoutParams.MATCH_PARENT
params
?.
width
=
activity
.
resources
.
getDimensionPixelSize
(
R
.
dimen
.
dp_295
)
params
?.
height
=
ConstraintLayout
.
LayoutParams
.
WRAP_CONTENT
// params?.gravity = Gravity.BOTTOM
dialog
.
window
?.
attributes
=
params
dialog
.
window
?.
setBackgroundDrawableResource
(
android
.
R
.
color
.
transparent
)
binding
.
tvTurnOn
.
setOnClickListener
{
dialog
.
dismiss
()
action
?.
invoke
()
}
}
}
\ No newline at end of file
app/src/main/java/com/base/appzxhy/ui/main/MainActivity.kt
View file @
ab87117d
...
...
@@ -19,8 +19,11 @@ import com.base.appzxhy.business.ads.AdsMgr
import
com.base.appzxhy.databinding.ActivityMainBinding
import
com.base.appzxhy.databinding.ItemHomeTabBinding
import
com.base.appzxhy.ui.dialog.ExitDialog
import
com.base.appzxhy.ui.dialog.NotificationTurnOnDialog
import
com.base.appzxhy.ui.dialog.RateDialog
import
com.base.appzxhy.ui.dialog.StoragePermissionDialog
import
com.base.appzxhy.ui.recyclebin.RecycleBinFragment
import
com.base.appzxhy.utils.PermissionUtils.requestNotificationPermission
import
com.base.appzxhy.utils.PermissionUtils.requestStoragePermission
import
com.google.android.material.tabs.TabLayout
import
com.google.android.material.tabs.TabLayout.OnTabSelectedListener
...
...
@@ -66,13 +69,26 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl
"StoreDialog"
->
{
val
dialog
=
StoragePermissionDialog
(
this
@MainActivity
)
dialog
.
action
=
{
requestStoragePermission
(
launcher
)
{
}
requestStoragePermission
(
launcher
)
{
viewModel
.
nextShowDialog
=
false
}
}
dialog
.
showDialog
()
}
"NotificationDialog"
->
{
val
dialog
=
NotificationTurnOnDialog
(
this
@MainActivity
)
dialog
.
action
=
{
requestNotificationPermission
(
launcher
)
{
viewModel
.
nextShowDialog
=
false
}
}
dialog
.
showDialog
()
}
"RateDialog"
->
{
val
dialog
=
RateDialog
(
this
@MainActivity
)
dialog
.
showDialog
(
false
)
}
}
}
...
...
app/src/main/java/com/base/appzxhy/ui/main/MainViewModel.kt
View file @
ab87117d
...
...
@@ -3,7 +3,9 @@ package com.base.appzxhy.ui.main
import
android.content.Context
import
androidx.lifecycle.ViewModel
import
androidx.lifecycle.viewModelScope
import
com.base.appzxhy.SpConstObject.isScoreRated
import
com.base.appzxhy.ui.recyclebin.RecycleBinUtils.getRecycleBinData
import
com.base.appzxhy.utils.PermissionUtils.checkNotificationPermission
import
com.base.appzxhy.utils.PermissionUtils.checkStorePermission
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.flow.MutableStateFlow
...
...
@@ -17,15 +19,26 @@ class MainViewModel : ViewModel() {
var
nextShowDialog
:
Boolean
=
true
fun
checkDialog
(
context
:
Context
)
{
if
(!
nextShowDialog
)
{
nextShowDialog
=
true
return
}
if
(!
context
.
checkStorePermission
())
{
dialogFlow
.
update
{
"StoreDialog"
}
return
}
// if (!context.checkNotificationPermission()) {
// dialogFlow.update { "NotificationDialog" }
// return
// }
if
(!
context
.
checkNotificationPermission
())
{
dialogFlow
.
update
{
"NotificationDialog"
}
return
}
if
(!
isScoreRated
)
{
dialogFlow
.
update
{
"RateDialog"
}
return
}
}
var
recycleBinFileFlow
:
MutableStateFlow
<
List
<
File
>>
=
MutableStateFlow
(
listOf
())
...
...
app/src/main/java/com/base/appzxhy/utils/PermissionUtils.kt
View file @
ab87117d
...
...
@@ -53,10 +53,37 @@ object PermissionUtils {
}
}
fun
Context
.
checkAllLocationPermission
():
Boolean
{
return
checkLocationPermission
()
&&
checkBackgroundLocationPermission
()
fun
Context
.
requestNotificationPermission
(
launcher
:
ActivityLauncher
,
result
:
(
Boolean
)
->
Unit
)
{
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
TIRAMISU
)
{
val
array
=
arrayOf
(
Manifest
.
permission
.
POST_NOTIFICATIONS
)
launcher
.
launch
(
array
)
{
permissions
->
val
flag
=
permissions
.
values
.
all
{
it
}
if
(!
flag
)
notificationSettings
(
launcher
,
result
)
}
}
else
{
notificationSettings
(
launcher
,
result
)
}
}
fun
Context
.
notificationSettings
(
launcher
:
ActivityLauncher
,
result
:
(
Boolean
)
->
Unit
)
{
val
intent
=
Intent
()
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
O
)
{
intent
.
action
=
Settings
.
ACTION_APP_NOTIFICATION_SETTINGS
intent
.
putExtra
(
Settings
.
EXTRA_APP_PACKAGE
,
packageName
)
}
else
{
intent
.
action
=
"android.settings.APP_NOTIFICATION_SETTINGS"
intent
.
putExtra
(
"app_package"
,
packageName
)
}
launcher
.
launch
(
intent
)
{
result
.
invoke
(
checkNotificationPermission
())
}
}
//endregion
//region 储存
...
...
@@ -96,6 +123,10 @@ object PermissionUtils {
//endregion
//region 定位
fun
Context
.
checkAllLocationPermission
():
Boolean
{
return
checkLocationPermission
()
&&
checkBackgroundLocationPermission
()
}
fun
Context
.
checkLocationPermission
():
Boolean
{
val
fineLocationPermission
=
ActivityCompat
.
checkSelfPermission
(
this
,
Manifest
.
permission
.
ACCESS_FINE_LOCATION
)
...
...
app/src/main/res/drawable-xxhdpi/icon_close_pop_blue.png
0 → 100644
View file @
ab87117d
3.29 KB
app/src/main/res/layout/dialog_notification.xml
0 → 100644
View file @
ab87117d
<?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:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<androidx.appcompat.widget.AppCompatImageView
android:id=
"@+id/ivClose"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"136dp"
android:layout_marginEnd=
"24dp"
android:src=
"@drawable/icon_close_pop_blue"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<androidx.appcompat.widget.AppCompatTextView
android:id=
"@+id/tv_title"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginHorizontal=
"16dp"
android:layout_marginTop=
"246dp"
android:textAlignment=
"center"
android:textColor=
"@color/color_1a1a1a"
android:textSize=
"22sp"
android:textStyle=
"bold"
app:layout_constraintTop_toTopOf=
"parent"
/>
<androidx.appcompat.widget.AppCompatTextView
android:id=
"@+id/tv_content"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginHorizontal=
"16dp"
android:layout_marginTop=
"8dp"
android:textAlignment=
"center"
android:textColor=
"@color/color_666666"
android:textSize=
"16sp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/tv_title"
/>
<androidx.appcompat.widget.AppCompatTextView
android:id=
"@+id/tvTurnOn"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginHorizontal=
"60dp"
android:layout_marginTop=
"20dp"
android:layout_marginBottom=
"44dp"
android:gravity=
"center"
android:paddingTop=
"10dp"
android:paddingBottom=
"10dp"
android:textColor=
"@color/white"
android:textSize=
"20sp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/tv_content"
app:layout_constraintVertical_bias=
"0.0"
tools:layout_editor_absoluteX=
"60dp"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_home3.xml
View file @
ab87117d
...
...
@@ -165,7 +165,7 @@
android:layout_marginTop=
"16dp"
android:background=
"@drawable/bg_ffffff_8"
android:text=
"@string/large_file_clean"
android:textSize=
""
android:textSize=
"
10sp
"
app:layout_constraintTop_toBottomOf=
"@id/cardview"
/>
<ImageView
...
...
app/src/main/res/values/dimens.xml
View file @
ab87117d
...
...
@@ -36,5 +36,6 @@
<dimen
name=
"dp_320"
>
320dp
</dimen>
<dimen
name=
"dp_55"
>
55dp
</dimen>
<dimen
name=
"dp_6"
>
6dp
</dimen>
<dimen
name=
"dp_295"
>
295dp
</dimen>
<dimen
name=
"dp_345"
>
345dp
</dimen>
</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