From b4b0fb9d4d4adbf73f8a29470545154c67474e65 Mon Sep 17 00:00:00 2001 From: Rom Walton Date: Sun, 24 Feb 2013 12:15:12 -0500 Subject: [PATCH] Android: Hook up the plumbing for the Update/Detech (previously commented out) project operations. --- .../edu/berkeley/boinc/ProjectsActivity.java | 37 +++++++------------ .../boinc/adapter/ProjectsListAdapter.java | 4 +- .../edu/berkeley/boinc/client/Monitor.java | 37 ++++++++++++++++++- 3 files changed, 52 insertions(+), 26 deletions(-) diff --git a/android/BOINC/src/edu/berkeley/boinc/ProjectsActivity.java b/android/BOINC/src/edu/berkeley/boinc/ProjectsActivity.java index e76fde885f..6a0e9bbf7b 100644 --- a/android/BOINC/src/edu/berkeley/boinc/ProjectsActivity.java +++ b/android/BOINC/src/edu/berkeley/boinc/ProjectsActivity.java @@ -161,35 +161,27 @@ public class ProjectsActivity extends FragmentActivity { super.onDestroy(); } - public void onProjectUpdate(String masterURL) { - Log.d(TAG, "onProjectUpdate()"); - - } - - public void onProjectDelete(String masterURL) { - Log.d(TAG, "onProjectDelete()"); - - } - -/* - // handler for onClick of listItem - public void onItemClick (View view) { - Project project = (Project) view.getTag(); //gets added to view by ProjectsListAdapter - Log.d(TAG,"onItemClick projectName: " + project.project_name + " - url: " + project.master_url); - (new ConfirmDeletionDialogFragment(project.project_name, project.master_url)).show(getSupportFragmentManager(), "confirm_projects_deletion"); - } - public void addProjectButtonClicked(View view) { Log.d(TAG, "addProjectButtonClicked"); startActivity(new Intent(this,LoginActivity.class)); } + public void onProjectUpdate(String name, String url) { + Log.d(TAG, "onProjectUpdate()"); + monitor.updateProjectAsync(url); + } + + public void onProjectDelete(String name, String url) { + Log.d(TAG, "onProjectDelete() - Name: " + name + ", URL: " + url); + (new ConfirmDeletionDialogFragment(name, url)).show(getSupportFragmentManager(), "confirm_projects_deletion"); + } + public class ConfirmDeletionDialogFragment extends DialogFragment { private final String TAG = "ConfirmDeletionDialogFragment"; private String name = ""; - private String url; + private String url = ""; public ConfirmDeletionDialogFragment(String name, String url) { this.name = name; @@ -203,18 +195,17 @@ public class ProjectsActivity extends FragmentActivity { builder.setMessage(dialogTitle) .setPositiveButton(R.string.confirm_deletion_confirm, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { - Log.d(TAG,"confirm clicked."); - //monitor.detachProjectAsync(url); //asynchronous call to detach project with given url. + Log.d(TAG, "confirm clicked."); + monitor.detachProjectAsync(url); //asynchronous call to detach project with given url. } }) .setNegativeButton(R.string.confirm_deletion_cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { - Log.d(TAG,"dialog canceled."); + Log.d(TAG, "dialog canceled."); } }); // Create the AlertDialog object and return it return builder.create(); } } -*/ } diff --git a/android/BOINC/src/edu/berkeley/boinc/adapter/ProjectsListAdapter.java b/android/BOINC/src/edu/berkeley/boinc/adapter/ProjectsListAdapter.java index 259ee87bae..013823a05b 100644 --- a/android/BOINC/src/edu/berkeley/boinc/adapter/ProjectsListAdapter.java +++ b/android/BOINC/src/edu/berkeley/boinc/adapter/ProjectsListAdapter.java @@ -125,7 +125,7 @@ public class ProjectsListAdapter extends ArrayAdapter implements OnItem ViewProject viewProject = (ViewProject)v.getTag(); ProjectsActivity a = (ProjectsActivity)activity; - a.onProjectUpdate(getProjectURL(viewProject.entryIndex)); + a.onProjectUpdate(getProject(viewProject.entryIndex), getProjectURL(viewProject.entryIndex)); } }); @@ -137,7 +137,7 @@ public class ProjectsListAdapter extends ArrayAdapter implements OnItem ViewProject viewProject = (ViewProject)v.getTag(); ProjectsActivity a = (ProjectsActivity)activity; - a.onProjectDelete(getProjectURL(viewProject.entryIndex)); + a.onProjectDelete(getProject(viewProject.entryIndex), getProjectURL(viewProject.entryIndex)); } }); } else { diff --git a/android/BOINC/src/edu/berkeley/boinc/client/Monitor.java b/android/BOINC/src/edu/berkeley/boinc/client/Monitor.java index 2b80dcec3d..c5c1af7a6b 100644 --- a/android/BOINC/src/edu/berkeley/boinc/client/Monitor.java +++ b/android/BOINC/src/edu/berkeley/boinc/client/Monitor.java @@ -338,12 +338,23 @@ public class Monitor extends Service { } public void detachProjectAsync(String url){ - Log.d(TAG,"detachProjectAsync"); + Log.d(TAG, "detachProjectAsync"); String[] param = new String[1]; param[0] = url; (new ProjectDetachAsync()).execute(param); } + public Boolean updateProject(String url){ + return rpc.projectOp(RpcClient.PROJECT_UPDATE, url); + } + + public void updateProjectAsync(String url){ + Log.d(TAG, "updateProjectAsync"); + String[] param = new String[1]; + param[0] = url; + (new ProjectUpdateAsync()).execute(param); + } + public void createAccountAsync(String url, String email, String userName, String pwd, String teamName) { Log.d(TAG,"createAccountAsync"); String[] param = new String[5]; @@ -930,6 +941,30 @@ public class Monitor extends Service { } } + private final class ProjectUpdateAsync extends AsyncTask { + + private final String TAG = "ProjectUpdateAsync"; + + private String url; + + @Override + protected Boolean doInBackground(String... params) { + this.url = params[0]; + Log.d(TAG, "doInBackground() - ProjectUpdateAsync url: " + url); + + Boolean update = rpc.projectOp(RpcClient.PROJECT_UPDATE, url); + if(update) { + Log.d(TAG,"successful."); + } + return update; + } + + @Override + protected void onPostExecute(Boolean success) { + forceRefresh(); + } + } + private final class WriteClientPrefsAsync extends AsyncTask { private final String TAG = "WriteClientPrefsAsync";