Browse Source

添加清理缓存与计算缓存大小功能

zengjiebin 8 years ago
parent
commit
41ac2753f7

+ 7 - 2
app/src/main/java/com/kfzs/duanduan/fragment/FgtPersonalCenter.java

@@ -27,6 +27,7 @@ import com.sheep.gamegroup.util.FastJsonUtils;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.MyDbManager;
 import com.sheep.gamegroup.util.MyDbManager;
+import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
@@ -63,6 +64,8 @@ public class FgtPersonalCenter extends BaseCompatFragment {
     View proxy_service_layout_line;
     View proxy_service_layout_line;
     @BindView(R.id.version_item_tv)
     @BindView(R.id.version_item_tv)
     TextView version_item_tv;
     TextView version_item_tv;
+    @BindView(R.id.clear_item_tv)
+    TextView clear_item_tv;
     Unbinder unbinder;
     Unbinder unbinder;
 
 
     private UserEntity userEntitys;
     private UserEntity userEntitys;
@@ -71,7 +74,6 @@ public class FgtPersonalCenter extends BaseCompatFragment {
     @Override
     @Override
     protected void initView(Bundle savedInstanceState) {
     protected void initView(Bundle savedInstanceState) {
         setContentView(R.layout.fgt_personalcenter_layout);
         setContentView(R.layout.fgt_personalcenter_layout);
-
     }
     }
 
 
     private void initData() {
     private void initData() {
@@ -130,6 +132,9 @@ public class FgtPersonalCenter extends BaseCompatFragment {
                         });
                         });
         getVersionInfo();
         getVersionInfo();
         getShardData();
         getShardData();
+
+        String size = SysAppUtil.getAppCacheSize();
+        clear_item_tv.setText(TextUtils.isEmpty(size) ? "无需清理":size);
     }
     }
     private VersionInfo versionInfo;
     private VersionInfo versionInfo;
     private void loadVersionInfo() {
     private void loadVersionInfo() {
@@ -201,6 +206,7 @@ public class FgtPersonalCenter extends BaseCompatFragment {
         // TODO: inflate a fragment view
         // TODO: inflate a fragment view
         View rootView = super.onCreateView(inflater, container, savedInstanceState);
         View rootView = super.onCreateView(inflater, container, savedInstanceState);
         unbinder = ButterKnife.bind(this, rootView);
         unbinder = ButterKnife.bind(this, rootView);
+
         return rootView;
         return rootView;
     }
     }
 
 
@@ -264,7 +270,6 @@ public class FgtPersonalCenter extends BaseCompatFragment {
             case R.id.clear_layout://清除缓存
             case R.id.clear_layout://清除缓存
                 Glide.get(getActivity()).clearDiskCache();//清理图片
                 Glide.get(getActivity()).clearDiskCache();//清理图片
                 ClassFileHelper.getInstance().clearDir();//清理下载文件
                 ClassFileHelper.getInstance().clearDir();//清理下载文件
-                //清理应用缓存,除sp数据
                 break;
                 break;
             case R.id.change_layout://新功能介绍
             case R.id.change_layout://新功能介绍
                 Jump2View.getInstance().goVersionChange(getActivity(), ApkUtils.getCurrentPkgVersionName(SheepApp.getInstance()));
                 Jump2View.getInstance().goVersionChange(getActivity(), ApkUtils.getCurrentPkgVersionName(SheepApp.getInstance()));

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/model/entity/Advertising.java

@@ -168,6 +168,6 @@ public class Advertising {
     }
     }
 
 
     public boolean isImage() {
     public boolean isImage() {
-        return LinkType == 1;
+        return display_type == 1;
     }
     }
 }
 }

+ 78 - 0
app/src/main/java/com/sheep/gamegroup/util/SysAppUtil.java

@@ -5,12 +5,16 @@ import android.content.Intent;
 import android.os.Build;
 import android.os.Build;
 import android.provider.AlarmClock;
 import android.provider.AlarmClock;
 
 
+import com.bumptech.glide.load.engine.cache.InternalCacheDiskCacheFactory;
 import com.kfzs.duanduan.utils.ApkUtils;
 import com.kfzs.duanduan.utils.ApkUtils;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.G;
 
 
+import java.io.File;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Calendar;
 
 
@@ -64,4 +68,78 @@ public class SysAppUtil {
 //                || BuildConfig.DEBUG
 //                || BuildConfig.DEBUG
                 ;
                 ;
     }
     }
+
+    public static String getAppCacheSize() {
+        try {
+//            File filesDir = SheepApp.getInstance().getExternalFilesDir(null);
+//            File cacheDir = SheepApp.getInstance().getExternalCacheDir();
+//            long filesDirSize = getFolderSize(filesDir);
+//            long cacheSize = getFolderSize(cacheDir);
+            long apkSize = getFolderSize(new File(ClassFileHelper.DIR));
+            File cacheDirPath = SheepApp.getInstance().getCacheDir();
+            long glideSize = getFolderSize(new File( cacheDirPath, InternalCacheDiskCacheFactory.DEFAULT_DISK_CACHE_DIR));
+            return getFormatSize(//filesDirSize+cacheSize+
+                     apkSize+glideSize);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+    // 获取文件大小
+    //Context.getExternalFilesDir() --> SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据
+    //Context.getExternalCacheDir() --> SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据
+    public static long getFolderSize(File file){
+        long size = 0;
+        try {
+            File[] fileList = file.listFiles();
+            for (int i = 0; i < fileList.length; i++) {
+                // 如果下面还有文件
+                if (fileList[i].isDirectory()) {
+                    size = size + getFolderSize(fileList[i]);
+                } else {
+                    size = size + fileList[i].length();
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return size;
+    }
+
+    /**
+     * 格式化单位
+     * @param size
+     * @return
+     */
+    public static String getFormatSize(double size) {
+        double kiloByte = size / 1024;
+        if (kiloByte < 1) {
+//            return size + "Byte";
+            return "0K";
+        }
+
+        double megaByte = kiloByte / 1024;
+        if (megaByte < 1) {
+            BigDecimal result1 = new BigDecimal(Double.toString(kiloByte));
+            return result1.setScale(2, BigDecimal.ROUND_HALF_UP)
+                    .toPlainString() + "K";
+        }
+
+        double gigaByte = megaByte / 1024;
+        if (gigaByte < 1) {
+            BigDecimal result2 = new BigDecimal(Double.toString(megaByte));
+            return result2.setScale(2, BigDecimal.ROUND_HALF_UP)
+                    .toPlainString() + "M";
+        }
+
+        double teraBytes = gigaByte / 1024;
+        if (teraBytes < 1) {
+            BigDecimal result3 = new BigDecimal(Double.toString(gigaByte));
+            return result3.setScale(2, BigDecimal.ROUND_HALF_UP)
+                    .toPlainString() + "GB";
+        }
+        BigDecimal result4 = new BigDecimal(teraBytes);
+        return result4.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString()
+                + "TB";
+    }
 }
 }

+ 4 - 1
app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java

@@ -12,6 +12,7 @@ import android.text.Html;
 import android.text.TextUtils;
 import android.text.TextUtils;
 import android.text.method.ScrollingMovementMethod;
 import android.text.method.ScrollingMovementMethod;
 import android.view.LayoutInflater;
 import android.view.LayoutInflater;
+import android.view.SurfaceHolder;
 import android.view.View;
 import android.view.View;
 import android.view.Window;
 import android.view.Window;
 import android.view.WindowManager;
 import android.view.WindowManager;
@@ -324,7 +325,9 @@ public class ViewUtil {
             final TextView ad_skip = view.findViewById(R.id.ad_skip);
             final TextView ad_skip = view.findViewById(R.id.ad_skip);
             TextView know_ad_tv = view.findViewById(R.id.know_ad_tv);
             TextView know_ad_tv = view.findViewById(R.id.know_ad_tv);
 
 
-            ((View)ad_video_view.getParent()).setMinimumHeight(G.HEIGHT/3);
+//            SurfaceHolder holder = ad_video_view.getHolder();
+//            holder.setFixedSize(ad_video_view.getWidth(), ad_video_view.getWidth()*3/4);
+            ad_video_view.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,G.WIDTH*4/7));
             if (advertising.isImage()) {
             if (advertising.isImage()) {
                 Glide.with(activity).load(advertising.getDisplay_src()).into(ad_iv);
                 Glide.with(activity).load(advertising.getDisplay_src()).into(ad_iv);
                 ad_video_view.setVisibility(View.GONE);
                 ad_video_view.setVisibility(View.GONE);

+ 1 - 0
app/src/main/res/layout/fgt_personalcenter_item_center_two.xml

@@ -265,6 +265,7 @@
             android:textSize="14dp"
             android:textSize="14dp"
             android:layout_toEndOf="@+id/clear_item_icon_iv" />
             android:layout_toEndOf="@+id/clear_item_icon_iv" />
         <TextView
         <TextView
+            android:id="@+id/clear_item_tv"
             android:layout_width="match_parent"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_height="wrap_content"
             android:text="128MB"
             android:text="128MB"