aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfrancesco rigamonti <francesco@MacBook-Pro-di-francesco.local>2014-03-04 13:41:27 +0100
committerfrancesco rigamonti <francesco@MacBook-Pro-di-francesco.local>2014-03-04 13:41:27 +0100
commit24437bdb02eef543321ae3a5598bbd88d1d46839 (patch)
treeae4c15c578f122c2ab6025ec4c86ceee70eac022
parent9fb445c0b56f315413346391cda8fae1c04fa982 (diff)
Use CMDProcessor instead of RootTools. Also use AsyncTask to avoid UI freeze.
-rw-r--r--AndroidManifest.xml4
-rw-r--r--src/com/dsht/kerneltweaker/fragments/BackupFragment.java62
2 files changed, 46 insertions, 20 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 596f775..099648b 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dsht.kerneltweaker"
- android:versionCode="18"
- android:versionName="1.2.10.0" >
+ android:versionCode="19"
+ android:versionName="1.2.20.0" >
<uses-sdk
android:minSdkVersion="16"
diff --git a/src/com/dsht/kerneltweaker/fragments/BackupFragment.java b/src/com/dsht/kerneltweaker/fragments/BackupFragment.java
index 6049aaf..562d1bb 100644
--- a/src/com/dsht/kerneltweaker/fragments/BackupFragment.java
+++ b/src/com/dsht/kerneltweaker/fragments/BackupFragment.java
@@ -11,6 +11,7 @@ import com.dsht.kerneltweaker.MainActivity;
import com.dsht.kerneltweaker.R;
import com.dsht.kerneltweaker.SwipeDismissListViewTouchListener;
import com.dsht.kerneltweaker.SwipeDismissListViewTouchListener.DismissCallbacks;
+import com.dsht.kernetweaker.cmdprocessor.CMDProcessor;
import com.dsht.settings.SettingsFragment;
import com.stericson.RootTools.RootTools;
import com.stericson.RootTools.exceptions.RootDeniedException;
@@ -18,9 +19,11 @@ import com.stericson.RootTools.execution.CommandCapture;
import android.app.AlertDialog;
import android.app.Fragment;
+import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Color;
+import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.view.Gravity;
@@ -180,26 +183,15 @@ public class BackupFragment extends Fragment implements OnClickListener, OnItemC
if(!value.contains(".img")){
value +=".img";
}
- CommandCapture command = null;
- if(boot) {
- command = new CommandCapture(0,"dd if=/dev/block/platform/msm_sdcc.1/by-name/boot of="+backupDir.getAbsolutePath()+"/"+value);
+ backup(boot, value);
+ /*if(boot) {
+ CMDProcessor.runSuCommand("dd if=/dev/block/platform/msm_sdcc.1/by-name/boot of="+backupDir.getAbsolutePath()+"/"+value);
}else {
- command = new CommandCapture(0,"dd if=/dev/block/platform/msm_sdcc.1/by-name/recovery of="+backupDir.getAbsolutePath()+"/"+value);
- }
- try {
- RootTools.getShell(true).add(command);
- mAdapter.add(new File(backupDir.getAbsolutePath()+"/"+value));
-
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (TimeoutException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (RootDeniedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ CMDProcessor.runSuCommand("dd if=/dev/block/platform/msm_sdcc.1/by-name/recovery of="+backupDir.getAbsolutePath()+"/"+value);
}
+ listFiles.clear();
+ listFiles = list(backupDir.listFiles());
+ mAdapter.notifyDataSetChanged(); */
}
} );
AlertDialog dialog = builder.create();
@@ -274,6 +266,40 @@ public class BackupFragment extends Fragment implements OnClickListener, OnItemC
}
}
+ public void backup(final boolean boot, final String value) {
+ class LongOperation extends AsyncTask<String, Void, String> {
+
+ ProgressDialog pd;
+
+ @Override
+ protected void onPreExecute() {
+ pd = new ProgressDialog(mContext);
+ pd.setIndeterminate(true);
+ pd.setMessage("Backing up...Please wait");
+ pd.setCancelable(false);
+ pd.show();
+
+ }
+
+ @Override
+ protected String doInBackground(String... params) {
+ if(boot) {
+ CMDProcessor.runSuCommand("dd if=/dev/block/platform/msm_sdcc.1/by-name/boot of="+backupDir.getAbsolutePath()+"/"+value);
+ }else {
+ CMDProcessor.runSuCommand("dd if=/dev/block/platform/msm_sdcc.1/by-name/recovery of="+backupDir.getAbsolutePath()+"/"+value);
+ }
+ return "executed";
+ }
+ @Override
+ protected void onPostExecute(String result) {
+ listFiles = list(backupDir.listFiles());
+ mAdapter = new BackupBaseAdapter(mContext, listFiles);
+ mList.setAdapter(mAdapter);
+ pd.dismiss();
+ }
+ }
+ new LongOperation().execute();
+ }
}