Half implementation of SQL Query
Need to finish it.
This commit is contained in:
parent
7b5e2ddd6d
commit
6c842541c3
15 changed files with 211 additions and 3 deletions
app/src/main
AndroidManifest.xml
java/info/nerull7/mysqlbrowser
res
drawable-hdpi
drawable-mdpi
drawable-xhdpi
drawable-xxhdpi
layout
menu
values
|
@ -34,6 +34,10 @@
|
|||
android:name=".ElementActivity"
|
||||
android:label="@string/title_activity_element" >
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".SQLActivity"
|
||||
android:label="@string/title_activity_sql">
|
||||
</activity>
|
||||
</application>
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
|
|
|
@ -33,7 +33,7 @@ public class ListActivity extends Activity {
|
|||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.main, menu);
|
||||
getMenuInflater().inflate(R.menu.logged, menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -47,6 +47,8 @@ public class ListActivity extends Activity {
|
|||
if (id == R.id.action_settings) {
|
||||
Static.startSettings(this);
|
||||
return true;
|
||||
} else if (id == R.id.action_sql){
|
||||
Static.startSQL(this);
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
|
22
app/src/main/java/info/nerull7/mysqlbrowser/SQLActivity.java
Normal file
22
app/src/main/java/info/nerull7/mysqlbrowser/SQLActivity.java
Normal file
|
@ -0,0 +1,22 @@
|
|||
package info.nerull7.mysqlbrowser;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.os.Bundle;
|
||||
|
||||
/**
|
||||
* Created by nerull7 on 30.09.14.
|
||||
*/
|
||||
public class SQLActivity extends Activity {
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_sql);
|
||||
|
||||
if (savedInstanceState == null) {
|
||||
getFragmentManager().beginTransaction()
|
||||
.add(R.id.container, new SQLFragment())
|
||||
.commit();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
72
app/src/main/java/info/nerull7/mysqlbrowser/SQLFragment.java
Normal file
72
app/src/main/java/info/nerull7/mysqlbrowser/SQLFragment.java
Normal file
|
@ -0,0 +1,72 @@
|
|||
package info.nerull7.mysqlbrowser;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Fragment;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
import android.widget.EditText;
|
||||
|
||||
/**
|
||||
* Created by nerull7 on 30.09.14.
|
||||
*/
|
||||
public class SQLFragment extends Fragment{
|
||||
private EditText sqlEditText;
|
||||
private InputMethodManager inputMethodManager;
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
View rootView = inflater.inflate(R.layout.fragment_sql, container, false);
|
||||
sqlEditText = (EditText) rootView.findViewById(R.id.sqlQueryText);
|
||||
setHasOptionsMenu(true);
|
||||
return rootView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStart() {
|
||||
super.onStart();
|
||||
inputMethodManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||
inputMethodManager.showSoftInput(sqlEditText, InputMethodManager.SHOW_FORCED);
|
||||
sqlEditText.requestFocus();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()){
|
||||
case R.id.action_execute:
|
||||
actionExecute();
|
||||
break;
|
||||
case R.id.action_cancel:
|
||||
actionCancel();
|
||||
break;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
inflater.inflate(R.menu.sql, menu);
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
}
|
||||
|
||||
private void actionCancel(){
|
||||
inputMethodManager.hideSoftInputFromWindow(sqlEditText.getWindowToken(), 0);
|
||||
getActivity().finish();
|
||||
}
|
||||
|
||||
private void actionExecute(){
|
||||
String sqlQuery = String.valueOf(sqlEditText.getText());
|
||||
Log.d("SQLQUERY", sqlQuery);
|
||||
|
||||
Static.asyncDatabaseConnector.setOnPostExecuteListener(null);
|
||||
Static.asyncDatabaseConnector.executeSQL(null /*FIXME*/, sqlQuery);
|
||||
}
|
||||
}
|
|
@ -51,4 +51,9 @@ public class Static {
|
|||
builder.create();
|
||||
builder.show();
|
||||
}
|
||||
|
||||
public static void startSQL(Context context) {
|
||||
Intent intent = new Intent(context, SQLActivity.class);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package info.nerull7.mysqlbrowser.db;
|
|||
|
||||
import android.content.res.Resources;
|
||||
import android.os.AsyncTask;
|
||||
import android.util.Log;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
|
@ -37,6 +38,7 @@ public class AsyncDatabaseConnector {
|
|||
public static final String ACTION_ADD_ELEMENT = "addelement";
|
||||
public static final String ACTION_UPDATE_ELEMENT = "updateelement";
|
||||
public static final String ACTION_REMOVE_ELEMENT = "removeelement";
|
||||
public static final String ACTION_SQL_QUERY = "query";
|
||||
|
||||
private String login;
|
||||
private String password;
|
||||
|
@ -339,6 +341,44 @@ public class AsyncDatabaseConnector {
|
|||
downloader.execute(request);
|
||||
}
|
||||
|
||||
public void executeSQL(String database, String query){
|
||||
ArrayList<String> args = new ArrayList();
|
||||
ArrayList<String> values = new ArrayList();
|
||||
final Request request;
|
||||
|
||||
if(database!=null){
|
||||
args.add("d");
|
||||
values.add(database);
|
||||
}
|
||||
args.add("q");
|
||||
values.add(query);
|
||||
|
||||
request = actionUrlBuilder(ACTION_SQL_QUERY, args, values);
|
||||
|
||||
Downloader downloader = new Downloader(new Downloader.OnFinishedListener() {
|
||||
@Override
|
||||
public void onFinished(String data, String error) {
|
||||
String []response = data.split("\n");
|
||||
|
||||
List<String>headerList = null;
|
||||
try {
|
||||
headerList = parseListFromJSON(response[1]);
|
||||
} catch (JSONException e) { e.printStackTrace(); }
|
||||
if(listReturnListener!=null) {
|
||||
listReturnListener.onListReturn(headerList);
|
||||
}
|
||||
|
||||
List<List<String>> dataMatrix = null;
|
||||
try {
|
||||
dataMatrix = parseMatrixFromJSON(response[2]);
|
||||
} catch (JSONException e) { e.printStackTrace(); }
|
||||
if(matrixReturnListener!=null)
|
||||
matrixReturnListener.onMatrixReturn(dataMatrix);
|
||||
}
|
||||
}, onPostExecuteListener, resources);
|
||||
downloader.execute(request);
|
||||
}
|
||||
|
||||
public void setBooleanReturnListener(BooleanReturnListener booleanReturnListener){
|
||||
this.booleanReturnListener = booleanReturnListener;
|
||||
}
|
||||
|
@ -468,14 +508,14 @@ public class AsyncDatabaseConnector {
|
|||
reader = new BufferedReader(new InputStreamReader(in));
|
||||
String line;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
streamOutput += line;
|
||||
streamOutput += line + '\n';
|
||||
}
|
||||
} finally {
|
||||
if (reader != null) {
|
||||
reader.close();
|
||||
}
|
||||
}
|
||||
return streamOutput;
|
||||
return streamOutput.substring(0, streamOutput.length()-1); // Remove last \n
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
BIN
app/src/main/res/drawable-hdpi/ic_action_file_upload.png
Normal file
BIN
app/src/main/res/drawable-hdpi/ic_action_file_upload.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 380 B |
BIN
app/src/main/res/drawable-mdpi/ic_action_file_upload.png
Normal file
BIN
app/src/main/res/drawable-mdpi/ic_action_file_upload.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 271 B |
BIN
app/src/main/res/drawable-xhdpi/ic_action_file_upload.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/ic_action_file_upload.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 466 B |
BIN
app/src/main/res/drawable-xxhdpi/ic_action_file_upload.png
Normal file
BIN
app/src/main/res/drawable-xxhdpi/ic_action_file_upload.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 832 B |
7
app/src/main/res/layout/activity_sql.xml
Normal file
7
app/src/main/res/layout/activity_sql.xml
Normal file
|
@ -0,0 +1,7 @@
|
|||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context="info.nerull7.mysqlbrowser.ListActivity"
|
||||
tools:ignore="MergeRootFrame" />
|
24
app/src/main/res/layout/fragment_sql.xml
Normal file
24
app/src/main/res/layout/fragment_sql.xml
Normal file
|
@ -0,0 +1,24 @@
|
|||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context="info.nerull7.mysqlbrowser.DatabaseFragment">
|
||||
|
||||
|
||||
<EditText
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="textMultiLine"
|
||||
android:ems="10"
|
||||
android:id="@+id/sqlQueryText"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:gravity="left|top"
|
||||
android:hint="@string/hint_sql_query" >
|
||||
<requestFocus/>
|
||||
</EditText>
|
||||
</RelativeLayout>
|
12
app/src/main/res/menu/logged.xml
Normal file
12
app/src/main/res/menu/logged.xml
Normal file
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:id="@+id/action_settings"
|
||||
android:title="@string/action_settings"
|
||||
android:orderInCategory="100"
|
||||
android:showAsAction="never" />
|
||||
<item android:id="@+id/action_sql"
|
||||
android:title="@string/sql_query"
|
||||
android:orderInCategory="200"
|
||||
android:showAsAction="never" />
|
||||
</menu>
|
15
app/src/main/res/menu/sql.xml
Normal file
15
app/src/main/res/menu/sql.xml
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
|
||||
<item android:id="@+id/action_execute"
|
||||
android:title="@string/action_execute"
|
||||
android:showAsAction="always"
|
||||
android:icon="@drawable/ic_action_file_upload"/>
|
||||
|
||||
<item android:id="@+id/action_cancel"
|
||||
android:title="@string/action_cancel"
|
||||
android:showAsAction="always"
|
||||
android:icon="@drawable/ic_action_delete"/>
|
||||
|
||||
</menu>
|
|
@ -53,5 +53,10 @@
|
|||
<string name="save_credentials">Save credentials</string>
|
||||
<string name="connector_url">Connector URL</string>
|
||||
<string name="no_connection">No Internet Connection</string>
|
||||
<string name="sql_query">SQL Query</string>
|
||||
<string name="title_activity_sql">SQL Query</string>
|
||||
<string name="hint_sql_query">SQL Query</string>
|
||||
<string name="action_cancel">Cancel</string>
|
||||
<string name="action_execute">Execute</string>
|
||||
|
||||
</resources>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue