Added remove element

This commit is contained in:
Przemek Grondek 2014-08-20 15:07:12 +02:00
parent 555a428af4
commit 7bcbe46d91
9 changed files with 66 additions and 7 deletions
app/src/main

View file

@ -62,15 +62,18 @@ public class ElementFragment extends Fragment implements AsyncDatabaseConnector.
@Override @Override
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(MenuItem item) {
List<String> fields = listAdapter.getFieldArray();
if(item.getItemId() == R.id.action_save ){ if(item.getItemId() == R.id.action_save ){
List<String> fields = listAdapter.getFieldArray();
Static.asyncDatabaseConnector.setStringReturnListener(this); Static.asyncDatabaseConnector.setStringReturnListener(this);
if(getArguments().getBoolean(EDIT_ELEMENT)) if(getArguments().getBoolean(EDIT_ELEMENT))
Static.asyncDatabaseConnector.updateElement(tableName, fields, values, getNewValues()); Static.asyncDatabaseConnector.updateElement(tableName, fields, values, getNewValues());
else else
Static.asyncDatabaseConnector.addNewElement(tableName, fields, getNewValues()); Static.asyncDatabaseConnector.addNewElement(tableName, fields, getNewValues());
return true; return true;
} else if(item.getItemId() == R.id.action_remove) {
Static.asyncDatabaseConnector.setStringReturnListener(this);
Static.asyncDatabaseConnector.removeElement(tableName, fields, values);
return true;
} else { } else {
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
} }
@ -87,6 +90,9 @@ public class ElementFragment extends Fragment implements AsyncDatabaseConnector.
@Override @Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.element, menu); inflater.inflate(R.menu.element, menu);
if(!getArguments().getBoolean(EDIT_ELEMENT)) {
menu.findItem(R.id.action_remove).setVisible(false);
}
super.onCreateOptionsMenu(menu, inflater); super.onCreateOptionsMenu(menu, inflater);
} }

View file

@ -28,6 +28,8 @@ public class LoginFragment extends Fragment implements View.OnClickListener, Asy
AsyncDatabaseConnector asyncDatabaseConnector; AsyncDatabaseConnector asyncDatabaseConnector;
private boolean result;
public LoginFragment(){} public LoginFragment(){}
@Override @Override
@ -97,6 +99,12 @@ public class LoginFragment extends Fragment implements View.OnClickListener, Asy
@Override @Override
public void onBooleanReturn(boolean result) { public void onBooleanReturn(boolean result) {
this.result = result;
}
@Override
public void onPostExecute() {
if(result) { if(result) {
Static.asyncDatabaseConnector = asyncDatabaseConnector; Static.asyncDatabaseConnector = asyncDatabaseConnector;
Intent intent = new Intent(getActivity(), ListActivity.class); Intent intent = new Intent(getActivity(), ListActivity.class);
@ -106,11 +114,7 @@ public class LoginFragment extends Fragment implements View.OnClickListener, Asy
else { else {
Static.showErrorAlert(AsyncDatabaseConnector.errorMsg, getActivity()); Static.showErrorAlert(AsyncDatabaseConnector.errorMsg, getActivity());
} }
}
@Override
public void onPostExecute() {
loginButton.setEnabled(true); // Now we can click button again loginButton.setEnabled(true); // Now we can click button again
progressBar.setVisibility(View.INVISIBLE); progressBar.setVisibility(View.INVISIBLE);
} }

View file

@ -31,6 +31,7 @@ public class AsyncDatabaseConnector {
public static final String ACTION_DATA_MATRIX = "getrows"; public static final String ACTION_DATA_MATRIX = "getrows";
public static final String ACTION_ADD_ELEMENT = "addelement"; public static final String ACTION_ADD_ELEMENT = "addelement";
public static final String ACTION_UPDATE_ELEMENT = "updateelement"; public static final String ACTION_UPDATE_ELEMENT = "updateelement";
public static final String ACTION_REMOVE_ELEMENT = "removeelement";
private String login; private String login;
private String password; private String password;
@ -206,7 +207,7 @@ public class AsyncDatabaseConnector {
args.add("l"); args.add("l");
values.add(String.valueOf(count)); values.add(String.valueOf(count));
getMatrix(actionUrlBuilder(ACTION_DATA_MATRIX, args, values) ); getMatrix(actionUrlBuilder(ACTION_DATA_MATRIX, args, values));
} }
public void getEntriesCount(String table){ public void getEntriesCount(String table){
@ -284,6 +285,47 @@ public class AsyncDatabaseConnector {
downloader.execute(request); downloader.execute(request);
} }
public void removeElement(String table, List<String> header, List<String> values) {
JSONArray headerJSON = new JSONArray();
JSONArray valuesJSON = new JSONArray();
String request;
ArrayList<String> args = new ArrayList<String>();
ArrayList<String> argValues = new ArrayList<String>();
args.add("d");
argValues.add(database);
args.add("t");
argValues.add(table);
for (String aHeader : header) {
headerJSON.put(aHeader);
}
for (String value : values) {
valuesJSON.put(value);
}
args.add("h");
argValues.add(headerJSON.toString());
args.add("v");
argValues.add(valuesJSON.toString());
request = actionUrlBuilder(ACTION_REMOVE_ELEMENT, args, argValues);
Downloader downloader = new Downloader(new Downloader.OnFinishedListener() {
@Override
public void onFinished(String data, String error) {
if(stringReturnListener!=null){
stringReturnListener.onStringReturn(data);
}
}
}, onPostExecuteListener);
downloader.execute(request);
}
public void setBooleanReturnListener(BooleanReturnListener booleanReturnListener){ public void setBooleanReturnListener(BooleanReturnListener booleanReturnListener){
this.booleanReturnListener = booleanReturnListener; this.booleanReturnListener = booleanReturnListener;
} }

Binary file not shown.

After

(image error) Size: 764 B

Binary file not shown.

After

(image error) Size: 507 B

Binary file not shown.

After

(image error) Size: 990 B

Binary file not shown.

After

(image error) Size: 1.7 KiB

View file

@ -7,4 +7,9 @@
android:showAsAction="always" android:showAsAction="always"
android:icon="@drawable/ic_action_save"/> android:icon="@drawable/ic_action_save"/>
<item android:id="@+id/action_remove"
android:title="@string/action_remove"
android:showAsAction="always"
android:icon="@drawable/ic_action_delete"/>
</menu> </menu>

View file

@ -39,5 +39,7 @@
<string name="warning">Warning</string> <string name="warning">Warning</string>
<string name="status">Status</string> <string name="status">Status</string>
<string name="back">Back</string> <string name="back">Back</string>
<string name="action_remove">Remove</string>
</resources> </resources>