Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DiDi
DoraemonKit
提交
05eec4e6
D
DoraemonKit
项目概览
DiDi
/
DoraemonKit
10 个月 前同步成功
通知
166
Star
19623
Fork
3062
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
DoraemonKit
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
05eec4e6
编写于
7月 31, 2020
作者:
J
jackjintai
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
android:新增缓存清理分类
上级
0f7b60cc
变更
9
显示空白变更内容
内联
并排
Showing
9 changed file
with
200 addition
and
107 deletion
+200
-107
Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/dataclean/DataCleanFragment.java
...ichuxing/doraemonkit/kit/dataclean/DataCleanFragment.java
+0
-90
Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/dataclean/DataCleanFragment.kt
...idichuxing/doraemonkit/kit/dataclean/DataCleanFragment.kt
+129
-0
Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/util/DataCleanUtil.java
.../java/com/didichuxing/doraemonkit/util/DataCleanUtil.java
+12
-10
Android/java/doraemonkit/src/main/res/layout/dk_fragment_data_clean.xml
...oraemonkit/src/main/res/layout/dk_fragment_data_clean.xml
+31
-7
Android/java/doraemonkit/src/main/res/layout/dk_item_data_clean.xml
...va/doraemonkit/src/main/res/layout/dk_item_data_clean.xml
+24
-0
Android/java/doraemonkit/src/main/res/values-en-rUS/strings.xml
...d/java/doraemonkit/src/main/res/values-en-rUS/strings.xml
+1
-0
Android/java/doraemonkit/src/main/res/values-zh-rCN/strings.xml
...d/java/doraemonkit/src/main/res/values-zh-rCN/strings.xml
+1
-0
Android/java/doraemonkit/src/main/res/values-zh-rTW/strings.xml
...d/java/doraemonkit/src/main/res/values-zh-rTW/strings.xml
+1
-0
Android/java/doraemonkit/src/main/res/values/strings.xml
Android/java/doraemonkit/src/main/res/values/strings.xml
+1
-0
未找到文件。
Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/dataclean/DataCleanFragment.java
已删除
100644 → 0
浏览文件 @
0f7b60cc
package
com.didichuxing.doraemonkit.kit.dataclean
;
import
android.os.Bundle
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
android.view.View
;
import
com.didichuxing.doraemonkit.R
;
import
com.didichuxing.doraemonkit.kit.core.BaseFragment
;
import
com.didichuxing.doraemonkit.widget.dialog.DialogInfo
;
import
com.didichuxing.doraemonkit.widget.dialog.SimpleDialogListener
;
import
com.didichuxing.doraemonkit.kit.core.SettingItem
;
import
com.didichuxing.doraemonkit.kit.core.SettingItemAdapter
;
import
com.didichuxing.doraemonkit.widget.recyclerview.DividerItemDecoration
;
import
com.didichuxing.doraemonkit.widget.titlebar.HomeTitleBar
;
import
com.didichuxing.doraemonkit.util.DataCleanUtil
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* Created by wanglikun on 2018/11/17.
*/
public
class
DataCleanFragment
extends
BaseFragment
{
private
RecyclerView
mSettingList
;
private
SettingItemAdapter
mSettingItemAdapter
;
@Override
protected
int
onRequestLayout
()
{
return
R
.
layout
.
dk_fragment_data_clean
;
}
@Override
public
void
onViewCreated
(
@NonNull
View
view
,
@Nullable
Bundle
savedInstanceState
)
{
super
.
onViewCreated
(
view
,
savedInstanceState
);
initView
();
}
private
void
initView
()
{
HomeTitleBar
titleBar
=
findViewById
(
R
.
id
.
title_bar
);
titleBar
.
setListener
(
new
HomeTitleBar
.
OnTitleBarClickListener
()
{
@Override
public
void
onRightClick
()
{
finish
();
}
});
mSettingList
=
findViewById
(
R
.
id
.
setting_list
);
LinearLayoutManager
layoutManager
=
new
LinearLayoutManager
(
getContext
());
mSettingList
.
setLayoutManager
(
layoutManager
);
List
<
SettingItem
>
settingItems
=
new
ArrayList
<>();
SettingItem
settingItem
=
new
SettingItem
(
R
.
string
.
dk_kit_data_clean
,
R
.
mipmap
.
dk_more_icon
);
settingItem
.
rightDesc
=
DataCleanUtil
.
getApplicationDataSizeStr
(
getContext
());
settingItems
.
add
(
settingItem
);
mSettingItemAdapter
=
new
SettingItemAdapter
(
getContext
());
mSettingItemAdapter
.
setData
(
settingItems
);
mSettingItemAdapter
.
setOnSettingItemClickListener
(
new
SettingItemAdapter
.
OnSettingItemClickListener
()
{
@Override
public
void
onSettingItemClick
(
View
view
,
final
SettingItem
data
)
{
if
(
data
.
desc
==
R
.
string
.
dk_kit_data_clean
)
{
DialogInfo
dialogInfo
=
new
DialogInfo
();
dialogInfo
.
title
=
getString
(
R
.
string
.
dk_hint
);
dialogInfo
.
desc
=
getString
(
R
.
string
.
dk_app_data_clean
);
dialogInfo
.
listener
=
new
SimpleDialogListener
()
{
@Override
public
boolean
onPositive
()
{
DataCleanUtil
.
cleanApplicationData
(
getContext
());
data
.
rightDesc
=
DataCleanUtil
.
getApplicationDataSizeStr
(
getContext
());
mSettingItemAdapter
.
notifyDataSetChanged
();
return
true
;
}
@Override
public
boolean
onNegative
()
{
return
true
;
}
};
showDialog
(
dialogInfo
);
}
}
});
mSettingList
.
setAdapter
(
mSettingItemAdapter
);
DividerItemDecoration
decoration
=
new
DividerItemDecoration
(
DividerItemDecoration
.
VERTICAL
);
decoration
.
setDrawable
(
getResources
().
getDrawable
(
R
.
drawable
.
dk_divider
));
mSettingList
.
addItemDecoration
(
decoration
);
}
}
\ No newline at end of file
Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/dataclean/DataCleanFragment.kt
0 → 100644
浏览文件 @
05eec4e6
package
com.didichuxing.doraemonkit.kit.dataclean
import
android.os.Bundle
import
android.os.FileUtils
import
android.view.LayoutInflater
import
android.view.View
import
android.widget.*
import
androidx.core.view.children
import
androidx.recyclerview.widget.LinearLayoutManager
import
androidx.recyclerview.widget.RecyclerView
import
com.blankj.utilcode.util.PathUtils
import
com.didichuxing.doraemonkit.R
import
com.didichuxing.doraemonkit.kit.core.BaseFragment
import
com.didichuxing.doraemonkit.kit.core.SettingItem
import
com.didichuxing.doraemonkit.kit.core.SettingItemAdapter
import
com.didichuxing.doraemonkit.util.DataCleanUtil
import
com.didichuxing.doraemonkit.util.DokitUtil
import
com.didichuxing.doraemonkit.util.FileUtil
import
com.didichuxing.doraemonkit.widget.dialog.DialogInfo
import
com.didichuxing.doraemonkit.widget.dialog.SimpleDialogListener
import
com.didichuxing.doraemonkit.widget.recyclerview.DividerItemDecoration
import
com.didichuxing.doraemonkit.widget.titlebar.HomeTitleBar
import
kotlinx.android.synthetic.main.dk_label_text_view.view.*
import
java.io.File
import
java.util.*
/**
* Created by wanglikun on 2018/11/17.
*/
class
DataCleanFragment
:
BaseFragment
()
{
private
lateinit
var
mSettingList
:
RecyclerView
private
lateinit
var
mSettingItemAdapter
:
SettingItemAdapter
private
lateinit
var
mItemWrap
:
LinearLayout
private
lateinit
var
mBtnClean
:
Button
private
lateinit
var
dirs
:
MutableList
<
String
>
override
fun
onRequestLayout
():
Int
{
return
R
.
layout
.
dk_fragment_data_clean
}
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
super
.
onViewCreated
(
view
,
savedInstanceState
)
initView
()
}
private
fun
initView
()
{
val
titleBar
=
findViewById
<
HomeTitleBar
>(
R
.
id
.
title_bar
)
titleBar
.
setListener
{
finish
()
}
mSettingList
=
findViewById
(
R
.
id
.
setting_list
)
mItemWrap
=
findViewById
(
R
.
id
.
item_wrap
)
mBtnClean
=
findViewById
(
R
.
id
.
btn_clean
)
dirs
=
mutableListOf
(
DokitUtil
.
getString
(
R
.
string
.
dk_kit_cache_check_all
))
val
innerDirs
=
File
(
PathUtils
.
getInternalAppDataPath
()).
listFiles
()
?.
filter
{
file
->
file
.
isDirectory
}
?.
map
{
file
->
file
.
name
}
?.
asIterable
()
dirs
.
addAll
(
innerDirs
!!
)
dirs
.
forEach
{
val
item
:
RelativeLayout
=
LayoutInflater
.
from
(
activity
).
inflate
(
R
.
layout
.
dk_item_data_clean
,
null
)
as
RelativeLayout
item
.
findViewById
<
TextView
>(
R
.
id
.
tv_name
).
text
=
it
item
.
findViewById
<
Switch
>(
R
.
id
.
switch_btn
).
isChecked
=
false
item
.
setOnClickListener
{
innerItem
->
val
switch
=
innerItem
.
findViewById
<
Switch
>(
R
.
id
.
switch_btn
)
val
name
=
innerItem
.
findViewById
<
TextView
>(
R
.
id
.
tv_name
)
if
(
name
.
text
==
DokitUtil
.
getString
(
R
.
string
.
dk_kit_cache_check_all
))
{
if
(
switch
.
isChecked
)
{
mItemWrap
.
children
.
forEach
{
it
.
findViewById
<
Switch
>(
R
.
id
.
switch_btn
).
isChecked
=
false
}
}
else
{
mItemWrap
.
children
.
forEach
{
it
.
findViewById
<
Switch
>(
R
.
id
.
switch_btn
).
isChecked
=
true
}
}
}
else
{
switch
.
isChecked
=
!
switch
.
isChecked
}
}
mItemWrap
.
addView
(
item
)
}
val
layoutManager
=
LinearLayoutManager
(
context
)
mSettingList
.
setLayoutManager
(
layoutManager
)
val
settingItems
:
MutableList
<
SettingItem
>
=
ArrayList
()
val
settingItem
=
SettingItem
(
R
.
string
.
dk_kit_data_clean
)
settingItem
.
rightDesc
=
DataCleanUtil
.
getApplicationDataSizeStr
(
context
)
settingItems
.
add
(
settingItem
)
mSettingItemAdapter
=
SettingItemAdapter
(
context
)
mSettingItemAdapter
.
setData
(
settingItems
)
mBtnClean
.
setOnClickListener
{
view
->
val
dialogInfo
=
DialogInfo
()
dialogInfo
.
title
=
getString
(
R
.
string
.
dk_hint
)
dialogInfo
.
desc
=
getString
(
R
.
string
.
dk_app_data_clean
)
dialogInfo
.
listener
=
object
:
SimpleDialogListener
()
{
override
fun
onPositive
():
Boolean
{
cleanCache
()
mSettingItemAdapter
.
data
[
0
].
rightDesc
=
DataCleanUtil
.
getApplicationDataSizeStr
(
context
)
mSettingItemAdapter
.
notifyDataSetChanged
()
return
true
}
override
fun
onNegative
():
Boolean
{
return
true
}
}
showDialog
(
dialogInfo
)
}
mSettingList
.
setAdapter
(
mSettingItemAdapter
)
val
decoration
=
DividerItemDecoration
(
DividerItemDecoration
.
VERTICAL
)
decoration
.
setDrawable
(
resources
.
getDrawable
(
R
.
drawable
.
dk_divider
))
mSettingList
.
addItemDecoration
(
decoration
)
}
private
fun
cleanCache
()
{
for
(
index
in
1
until
mItemWrap
.
childCount
)
{
val
item
=
mItemWrap
.
getChildAt
(
index
)
val
name
=
item
.
findViewById
<
TextView
>(
R
.
id
.
tv_name
)
val
switch
=
item
.
findViewById
<
Switch
>(
R
.
id
.
switch_btn
)
if
(
switch
.
isChecked
)
{
val
file
=
File
(
PathUtils
.
getInternalAppDataPath
()
+
File
.
separator
+
name
.
text
)
if
(
file
.
isDirectory
)
{
FileUtil
.
deleteDirectory
(
file
)
}
}
}
}
}
\ No newline at end of file
Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/util/DataCleanUtil.java
浏览文件 @
05eec4e6
...
...
@@ -6,6 +6,8 @@ import android.content.Context;
import
android.os.Environment
;
import
android.text.format.Formatter
;
import
com.blankj.utilcode.util.PathUtils
;
/**
* Created by wanglikun on 2018/11/17.
*/
...
...
@@ -79,16 +81,16 @@ public class DataCleanUtil {
}
public
static
long
getApplicationDataSize
(
Context
context
)
{
long
size
=
0
;
// internal cache
size
+=
FileUtil
.
getDirectorySize
(
context
.
getCacheDir
());
// databases
size
+=
FileUtil
.
getDirectorySize
(
new
File
(
context
.
getFilesDir
().
getParent
()
+
"/databases"
));
// shared preference
size
+=
FileUtil
.
getDirectorySize
(
new
File
(
context
.
getFilesDir
().
getParent
()
+
"/shared_prefs"
));
// files
size
+=
FileUtil
.
getDirectorySize
(
context
.
getFilesDir
());
return
size
;
//
long size = 0;
//
// internal cache
//
size += FileUtil.getDirectorySize(context.getCacheDir());
//
// databases
//
size += FileUtil.getDirectorySize(new File(context.getFilesDir().getParent() + "/databases"));
//
// shared preference
//
size += FileUtil.getDirectorySize(new File(context.getFilesDir().getParent() + "/shared_prefs"));
//
// files
//
size += FileUtil.getDirectorySize(context.getFilesDir());
return
FileUtil
.
getDirectorySize
(
new
File
(
PathUtils
.
getInternalAppDataPath
()))
;
}
public
static
String
getApplicationDataSizeStr
(
Context
context
)
{
...
...
Android/java/doraemonkit/src/main/res/layout/dk_fragment_data_clean.xml
浏览文件 @
05eec4e6
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:background=
"@color/dk_color_FFFFFF"
android:orientation=
"vertical"
>
<com.didichuxing.doraemonkit.widget.titlebar.HomeTitleBar
android:id=
"@+id/title_bar"
app:dkTitle=
"@string/dk_kit_data_clean"
app:dkIcon=
"@mipmap/dk_close_icon_big"
android:layout_width=
"match_parent"
android:layout_height=
"89dp"
/>
android:layout_height=
"89dp"
android:layout_alignParentTop=
"true"
app:dkIcon=
"@mipmap/dk_close_icon_big"
app:dkTitle=
"@string/dk_kit_data_clean"
/>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/setting_list"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
android:layout_height=
"wrap_content"
android:layout_below=
"@id/title_bar"
/>
<ScrollView
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_below=
"@id/setting_list"
android:scrollbars=
"vertical"
>
</LinearLayout>
\ No newline at end of file
<LinearLayout
android:id=
"@+id/item_wrap"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
/>
</ScrollView>
<Button
android:id=
"@+id/btn_clean"
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/dk_dp_40"
android:layout_alignParentBottom=
"true"
android:background=
"@color/dk_color_0070BB"
android:text=
"@string/dk_kit_data_clean"
android:textColor=
"@color/dk_color_FFFFFF"
android:textSize=
"18sp"
/>
</RelativeLayout>
\ No newline at end of file
Android/java/doraemonkit/src/main/res/layout/dk_item_data_clean.xml
0 → 100644
浏览文件 @
05eec4e6
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@color/dk_color_FFFFFF"
android:padding=
"10dp"
>
<TextView
android:id=
"@+id/tv_name"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:textColor=
"@color/dk_color_333333"
android:textSize=
"14sp"
tools:text=
"webview"
/>
<Switch
android:id=
"@+id/switch_btn"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_alignParentRight=
"true"
android:checked=
"false"
android:clickable=
"false"
/>
</RelativeLayout>
\ No newline at end of file
Android/java/doraemonkit/src/main/res/values-en-rUS/strings.xml
浏览文件 @
05eec4e6
...
...
@@ -141,6 +141,7 @@
<string
name=
"dk_crash_capture_switch"
>
Crash Log Collection Switch
</string>
<string
name=
"dk_crash_capture_look"
>
View Crash Log
</string>
<string
name=
"dk_crash_capture_clean_data"
>
Clean Crash Cache
</string>
<string
name=
"dk_kit_cache_check_all"
>
all check
</string>
<string
name=
"dk_crash_capture_summary_title"
>
Crash Log List
</string>
<!--大图检测开关-->
...
...
Android/java/doraemonkit/src/main/res/values-zh-rCN/strings.xml
浏览文件 @
05eec4e6
...
...
@@ -29,6 +29,7 @@
<string
name=
"dk_kit_temporary_close"
>
隐藏
</string>
<string
name=
"dk_kit_crash"
>
Crash
</string>
<string
name=
"dk_kit_data_clean"
>
清理缓存
</string>
<string
name=
"dk_kit_cache_check_all"
>
全选
</string>
<string
name=
"dk_kit_db_debug"
>
DBView
</string>
<string
name=
"dk_kit_weak_network"
>
模拟弱网
</string>
<string
name=
"dk_kit_view_check"
>
控件检查
</string>
...
...
Android/java/doraemonkit/src/main/res/values-zh-rTW/strings.xml
浏览文件 @
05eec4e6
...
...
@@ -29,6 +29,7 @@
<string
name=
"dk_kit_temporary_close"
>
隱藏
</string>
<string
name=
"dk_kit_crash"
>
Crash
</string>
<string
name=
"dk_kit_data_clean"
>
清理缓存
</string>
<string
name=
"dk_kit_cache_check_all"
>
全选
</string>
<string
name=
"dk_kit_db_debug"
>
DBView
</string>
<string
name=
"dk_kit_weak_network"
>
模擬弱網
</string>
<string
name=
"dk_kit_view_check"
>
View 元件檢查
</string>
...
...
Android/java/doraemonkit/src/main/res/values/strings.xml
浏览文件 @
05eec4e6
...
...
@@ -31,6 +31,7 @@
<string
name=
"dk_kit_temporary_close"
>
隐藏
</string>
<string
name=
"dk_kit_crash"
>
Crash
</string>
<string
name=
"dk_kit_data_clean"
>
清理缓存
</string>
<string
name=
"dk_kit_cache_check_all"
>
全选
</string>
<string
name=
"dk_kit_db_debug"
>
DBView
</string>
<string
name=
"dk_kit_weak_network"
>
模拟弱网
</string>
<string
name=
"dk_kit_setting"
>
设置
</string>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录