Bläddra i källkod

Clear Application Cache was added to Option menu.

Trishia 4 år sedan
förälder
incheckning
f5797b8aef

+ 60 - 0
OnBoardingTool/app/src/main/java/org/iotivity/onboardingtool/OnBoardingActivity.java

@@ -2,6 +2,7 @@ package org.iotivity.onboardingtool;
 
 import android.app.AlertDialog;
 import android.app.Dialog;
+import android.content.Context;
 import android.content.DialogInterface;
 import android.os.Bundle;
 import android.os.Handler;
@@ -35,6 +36,7 @@ import org.iotivity.oc.OcSecurityAce;
 import org.iotivity.oc.OcSubjectSecurityAce;
 import org.iotivity.oc.OcUtils;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.concurrent.Executors;
@@ -234,6 +236,39 @@ public class OnBoardingActivity extends AppCompatActivity {
                 resetObtDialog.show();
                 return true;
             }
+            case R.id.action_cache_clear : {
+
+                AlertDialog.Builder clearCacheDialogBuilder = new AlertDialog.Builder(OnBoardingActivity.this);
+                clearCacheDialogBuilder.setTitle(getString(R.string.clearCache));
+                clearCacheDialogBuilder.setMessage(getString(R.string.clearCacheMessage));
+
+                clearCacheDialogBuilder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int which) {
+
+                        // clear Application Cache
+                        deleteCacheFiles(OnBoardingActivity.this);
+                        Toast.makeText(OnBoardingActivity.this, getString(R.string.clearCacheOkMessage)
+                                , Toast.LENGTH_LONG).show();
+
+                        // kill Application
+                        Log.d(TAG, "System.exit() will be called");
+                        System.runFinalizersOnExit(true);
+                        System.exit(0);
+                    }
+                });
+
+                clearCacheDialogBuilder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int which) {
+                    }
+                });
+
+                Dialog clearCacheDialog = clearCacheDialogBuilder.create();
+                clearCacheDialog.show();
+                return true;
+
+            }
             case R.id.action_exit :
                 onBackPressed();
             default:
@@ -1624,4 +1659,29 @@ public class OnBoardingActivity extends AppCompatActivity {
         }, 30, 30, TimeUnit.SECONDS); // 30sec interval after 30sec delay
     }
 
+    public static void deleteCacheFiles(Context context) {
+        try {
+            File dir = context.getFilesDir();  // /data/data/{application_path}/files directory
+            deleteDir(dir);
+        } catch (Exception e) {
+            Log.e(TAG, "deleteCache error : "+ e.getMessage());
+        }
+    }
+
+    public static boolean deleteDir(File dir) {
+        if (dir != null && dir.isDirectory()) {
+            String[] children = dir.list();
+            for (int i = 0; i < children.length; i++) {
+                boolean success = deleteDir(new File(dir, children[i]));
+                if (!success) {
+                    return false;
+                }
+            }
+            return dir.delete();
+        } else if(dir!= null && dir.isFile()) {
+            return dir.delete();
+        } else {
+            return false;
+        }
+    }
 }

+ 4 - 0
OnBoardingTool/app/src/main/res/menu/actionbar_actions.xml

@@ -18,6 +18,10 @@
         android:title="Reset OBT"
         app:showAsAction="never"/>
 
+    <item
+        android:id="@+id/action_cache_clear"
+        android:title="@string/clearCache"
+        app:showAsAction="never"/>
     <!--
     <item
         android:id="@+id/action_settings"

+ 4 - 0
OnBoardingTool/app/src/main/res/values/strings.xml

@@ -35,6 +35,10 @@
     <string name="addMoreResourcesDialogMessage">Add more resources to this ACE?</string>
     <string name="permissionsDialogTitle">Select ACE Permissions (if any)</string>
 
+    <string name="clearCache">Clear Application Cache</string>
+    <string name="clearCacheMessage">Note: Application cache files will be clear and app will be killed. You should restart this application.</string>
+    <string name="clearCacheOkMessage">Application cache was clear successfully.</string>
+
     <!-- batch functions -->
     <string name="onboarding_ownership_transfer">On-boarding All Unowned Devices</string>
     <string name="provision_pairwise_credentials">Pair-Wising All Owned Devices</string>