From 73e31bb707ac8c423ec8658a7ca866d9d61c93c3 Mon Sep 17 00:00:00 2001
From: Przemek Grondek <github@nerull7.info>
Date: Mon, 14 Jul 2014 14:15:30 +0200
Subject: [PATCH] Welcome TableActivity

New TableActivity + TableFragment
Also passing database name from DatabaseActivity to TableActivity
---
 app/src/main/AndroidManifest.xml              |  4 ++
 .../mysqlbrowser/DatabaseFragment.java        | 22 ++++++--
 .../nerull7/mysqlbrowser/TableActivity.java   | 53 +++++++++++++++++++
 .../nerull7/mysqlbrowser/TableFragment.java   | 23 ++++++++
 app/src/main/res/layout/activity_table.xml    |  7 +++
 app/src/main/res/layout/fragment_table.xml    | 17 ++++++
 app/src/main/res/menu/table.xml               |  8 +++
 app/src/main/res/values/strings.xml           |  1 +
 8 files changed, 130 insertions(+), 5 deletions(-)
 create mode 100644 app/src/main/java/info/nerull7/mysqlbrowser/TableActivity.java
 create mode 100644 app/src/main/java/info/nerull7/mysqlbrowser/TableFragment.java
 create mode 100644 app/src/main/res/layout/activity_table.xml
 create mode 100644 app/src/main/res/layout/fragment_table.xml
 create mode 100644 app/src/main/res/menu/table.xml

diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index dd0c6b9..bfa8501 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -20,6 +20,10 @@
             android:name=".DatabaseActivity"
             android:label="@string/title_activity_database" >
         </activity>
+        <activity
+            android:name=".TableActivity"
+            android:label="@string/title_activity_table" >
+        </activity>
     </application>
 
 </manifest>
diff --git a/app/src/main/java/info/nerull7/mysqlbrowser/DatabaseFragment.java b/app/src/main/java/info/nerull7/mysqlbrowser/DatabaseFragment.java
index 199c860..db35900 100644
--- a/app/src/main/java/info/nerull7/mysqlbrowser/DatabaseFragment.java
+++ b/app/src/main/java/info/nerull7/mysqlbrowser/DatabaseFragment.java
@@ -2,11 +2,14 @@ package info.nerull7.mysqlbrowser;
 
 import android.app.Activity;
 import android.app.Fragment;
+import android.content.Intent;
 import android.os.Bundle;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.AdapterView;
 import android.widget.ArrayAdapter;
+import android.widget.EditText;
 import android.widget.ListAdapter;
 import android.widget.ListView;
 
@@ -15,22 +18,31 @@ import info.nerull7.mysqlbrowser.db.DatabaseConnector;
 /**
  * Created by nerull7 on 14.07.14.
  */
-public class DatabaseFragment extends Fragment {
+public class DatabaseFragment extends Fragment implements AdapterView.OnItemClickListener {
     ListView databasesListView;
+    ListAdapter listAdapter;
 
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
         //Inflate the layout for this fragment
         View V = inflater.inflate(R.layout.fragment_database, container, false);
-        databasesListView = (ListView)V.findViewById(R.id.databaseList);
+        databasesListView = (ListView) V.findViewById(R.id.databaseList);
+
         setupListViewDatabase();
         return V;
     }
 
     private void setupListViewDatabase(){
-        // TODO not local constuction!!!
-        DatabaseConnector databaseConnector = new DatabaseConnector("FIXME","FIXME","FIXME");
-        ListAdapter listAdapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1, databaseConnector.getDatabases());
+        listAdapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1, Static.databaseConnector.getDatabases());
         databasesListView.setAdapter(listAdapter);
+        databasesListView.setOnItemClickListener(this);
+    }
+
+    @Override
+    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
+        listAdapter.getItem(position);
+        Intent intent = new Intent(getActivity(), TableActivity.class);
+        intent.putExtra("DatabaseName", (String) listAdapter.getItem(position));
+        startActivity(intent);
     }
 }
diff --git a/app/src/main/java/info/nerull7/mysqlbrowser/TableActivity.java b/app/src/main/java/info/nerull7/mysqlbrowser/TableActivity.java
new file mode 100644
index 0000000..4e59504
--- /dev/null
+++ b/app/src/main/java/info/nerull7/mysqlbrowser/TableActivity.java
@@ -0,0 +1,53 @@
+package info.nerull7.mysqlbrowser;
+
+import android.app.Activity;
+import android.app.ActionBar;
+import android.app.Fragment;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.os.Build;
+
+import info.nerull7.mysqlbrowser.R;
+
+public class TableActivity extends Activity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_table);
+        TableFragment tableFragment = new TableFragment();
+        tableFragment.setArguments(getIntent().getExtras());
+//        Bundle bundle = new Bundle();
+
+        if (savedInstanceState == null) {
+            getFragmentManager().beginTransaction()
+                    .add(R.id.container, tableFragment)
+                    .commit();
+        }
+    }
+
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        // Inflate the menu; this adds items to the action bar if it is present.
+        getMenuInflater().inflate(R.menu.table, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        // Handle action bar item clicks here. The action bar will
+        // automatically handle clicks on the Home/Up button, so long
+        // as you specify a parent activity in AndroidManifest.xml.
+        int id = item.getItemId();
+        if (id == R.id.action_settings) {
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+}
diff --git a/app/src/main/java/info/nerull7/mysqlbrowser/TableFragment.java b/app/src/main/java/info/nerull7/mysqlbrowser/TableFragment.java
new file mode 100644
index 0000000..21fa092
--- /dev/null
+++ b/app/src/main/java/info/nerull7/mysqlbrowser/TableFragment.java
@@ -0,0 +1,23 @@
+package info.nerull7.mysqlbrowser;
+
+import android.app.Fragment;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+/**
+ * Created by nerull7 on 14.07.14.
+ */
+public class TableFragment extends Fragment{
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+                             Bundle savedInstanceState) {
+        View rootView = inflater.inflate(R.layout.fragment_table, container, false);
+        TextView text = (TextView) rootView.findViewById(R.id.dumbText);
+        text.setText(getArguments().getString("DatabaseName"));
+        return rootView;
+    }
+}
diff --git a/app/src/main/res/layout/activity_table.xml b/app/src/main/res/layout/activity_table.xml
new file mode 100644
index 0000000..e80cef3
--- /dev/null
+++ b/app/src/main/res/layout/activity_table.xml
@@ -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.TableActivity"
+    tools:ignore="MergeRootFrame" />
diff --git a/app/src/main/res/layout/fragment_table.xml b/app/src/main/res/layout/fragment_table.xml
new file mode 100644
index 0000000..f3aa113
--- /dev/null
+++ b/app/src/main/res/layout/fragment_table.xml
@@ -0,0 +1,17 @@
+<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"
+    android:paddingLeft="@dimen/activity_horizontal_margin"
+    android:paddingRight="@dimen/activity_horizontal_margin"
+    android:paddingTop="@dimen/activity_vertical_margin"
+    android:paddingBottom="@dimen/activity_vertical_margin"
+    tools:context="info.nerull7.mysqlbrowser.TableFragment">
+
+    <TextView
+        android:text="@string/hello_world"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:id="@+id/dumbText"/>
+
+</RelativeLayout>
diff --git a/app/src/main/res/menu/table.xml b/app/src/main/res/menu/table.xml
new file mode 100644
index 0000000..8888e00
--- /dev/null
+++ b/app/src/main/res/menu/table.xml
@@ -0,0 +1,8 @@
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:context="info.nerull7.mysqlbrowser.TableActivity" >
+    <item android:id="@+id/action_settings"
+        android:title="@string/action_settings"
+        android:orderInCategory="100"
+        android:showAsAction="never" />
+</menu>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 6831380..de5ac24 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -13,5 +13,6 @@
     <string name="login_error">Wrong login/password</string>
     <string name="ok">OK</string>
     <string name="error">Error</string>
+    <string name="title_activity_table">TableActivity</string>
 
 </resources>