diff --git a/app/src/main/java/info/nerull7/mysqlbrowser/EntriesActivity.java b/app/src/main/java/info/nerull7/mysqlbrowser/EntriesActivity.java index e295554..1f9bf2e 100644 --- a/app/src/main/java/info/nerull7/mysqlbrowser/EntriesActivity.java +++ b/app/src/main/java/info/nerull7/mysqlbrowser/EntriesActivity.java @@ -3,19 +3,24 @@ package info.nerull7.mysqlbrowser; import android.app.Activity; import android.os.Bundle; import android.view.Menu; +import android.view.MenuInflater; import android.view.MenuItem; +import java.util.zip.Inflater; + public class EntriesActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_entries); - String titleName = getIntent().getStringExtra("DatabaseName")+"->"+getIntent().getStringExtra("TableName"); + Bundle bundle = getIntent().getExtras(); + bundle.putInt("Page", 0); + String titleName = bundle.getString("DatabaseName")+"->"+bundle.getString("TableName"); setTitle(titleName); EntriesFragment entriesFragment = new EntriesFragment(); - entriesFragment.setArguments(getIntent().getExtras()); + entriesFragment.setArguments(bundle); if (savedInstanceState == null) { getFragmentManager().beginTransaction() .add(R.id.container, entriesFragment) @@ -23,4 +28,22 @@ public class EntriesActivity extends Activity { } } + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()){ + case R.id.action_previous: + case R.id.action_next: +// item.setEnabled(!item.isEnabled()); +// item.setVisible(!item.isVisible()); + break; + } + return super.onOptionsItemSelected(item); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.entries_activity_actions, menu); + return super.onCreateOptionsMenu(menu); + } } diff --git a/app/src/main/java/info/nerull7/mysqlbrowser/EntriesFragment.java b/app/src/main/java/info/nerull7/mysqlbrowser/EntriesFragment.java index f2517ff..2910a5e 100644 --- a/app/src/main/java/info/nerull7/mysqlbrowser/EntriesFragment.java +++ b/app/src/main/java/info/nerull7/mysqlbrowser/EntriesFragment.java @@ -1,5 +1,6 @@ package info.nerull7.mysqlbrowser; +import android.app.ActionBar; import android.app.Fragment; import android.content.Context; import android.graphics.Canvas; @@ -21,14 +22,16 @@ import java.util.List; * Created by nerull7 on 15.07.14. */ public class EntriesFragment extends Fragment { - private String databaseName; - private String tableName; private TableLayout entriesTable; private ScrollView entriesScrollView; private FrameLayout headerFrame; - private int entriesLimit; private RelativeLayout rootView; + private String databaseName; + private String tableName; + private int entriesLimit; + private int page; + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -40,10 +43,17 @@ public class EntriesFragment extends Fragment { headerFrame = (FrameLayout) rootView.findViewById(R.id.headerFrame); entriesLimit = getActivity().getSharedPreferences(SettingsFragment.PREFERENCE_FILE, Context.MODE_PRIVATE).getInt(SettingsFragment.ENTRIES_PAGE_LIMIT, SettingsFragment.ENTRIES_PAGE_LIMIT_DEF); this.rootView = (RelativeLayout) rootView; + page = getArguments().getInt("Page"); setupTable(); +// setupActionBar(); return rootView; } +// private void setupActionBar() { +// ActionBar actionBar = getActivity().getActionBar(); +// actionBar. +// } + private void setupTable(){ List<String> fieldList = Static.databaseConnector.getFields(tableName); @@ -81,7 +91,7 @@ public class EntriesFragment extends Fragment { headerFrame.addView(fakeHeaderView); // Now we get Rows - List<List<String>> rows = Static.databaseConnector.getRows(tableName, entriesLimit); + List<List<String>> rows = Static.databaseConnector.getRows(tableName, entriesLimit, page); if(rows!=null) { for (int i = 0; i < rows.size(); i++) { List<String> elements = rows.get(i); diff --git a/app/src/main/java/info/nerull7/mysqlbrowser/db/DatabaseConnector.java b/app/src/main/java/info/nerull7/mysqlbrowser/db/DatabaseConnector.java index c06f97b..28ac00c 100644 --- a/app/src/main/java/info/nerull7/mysqlbrowser/db/DatabaseConnector.java +++ b/app/src/main/java/info/nerull7/mysqlbrowser/db/DatabaseConnector.java @@ -14,5 +14,5 @@ public interface DatabaseConnector { List<String> getFields(String table); - List<List<String>> getRows(String table, int count); + List<List<String>> getRows(String table, int count, int page); } diff --git a/app/src/main/java/info/nerull7/mysqlbrowser/db/FakeDatabaseConnector.java b/app/src/main/java/info/nerull7/mysqlbrowser/db/FakeDatabaseConnector.java index 650d95e..3f1a59e 100644 --- a/app/src/main/java/info/nerull7/mysqlbrowser/db/FakeDatabaseConnector.java +++ b/app/src/main/java/info/nerull7/mysqlbrowser/db/FakeDatabaseConnector.java @@ -67,7 +67,7 @@ public class FakeDatabaseConnector implements DatabaseConnector { } @Override - public List<List<String>> getRows(String table, int count){ + public List<List<String>> getRows(String table, int count, int page){ if(database==null) return null; // if database is not chosen return null List<List<String>> stringListList = new ArrayList<List<String>>(); diff --git a/app/src/main/java/info/nerull7/mysqlbrowser/db/RealDatabaseConnector.java b/app/src/main/java/info/nerull7/mysqlbrowser/db/RealDatabaseConnector.java index 1da7a82..8e5fd02 100644 --- a/app/src/main/java/info/nerull7/mysqlbrowser/db/RealDatabaseConnector.java +++ b/app/src/main/java/info/nerull7/mysqlbrowser/db/RealDatabaseConnector.java @@ -178,7 +178,8 @@ public class RealDatabaseConnector implements DatabaseConnector { return null; } - public List<List<String>> getRows(String table, int count){ - return getMatrix(actionUrlBuilder("getrows")+"&d="+database+"&t="+table+"&s="+0+"&l="+count); //FIXME + public List<List<String>> getRows(String table, int count, int page){ + int limitStart = page * count; + return getMatrix(actionUrlBuilder("getrows")+"&d="+database+"&t="+table+"&s="+limitStart+"&l="+count); //FIXME } } diff --git a/app/src/main/res/drawable-hdpi/ic_action_arrow_back.png b/app/src/main/res/drawable-hdpi/ic_action_arrow_back.png new file mode 100644 index 0000000..7cd653e Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_action_arrow_back.png differ diff --git a/app/src/main/res/drawable-hdpi/ic_action_arrow_forward.png b/app/src/main/res/drawable-hdpi/ic_action_arrow_forward.png new file mode 100644 index 0000000..062defe Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_action_arrow_forward.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_action_arrow_back.png b/app/src/main/res/drawable-mdpi/ic_action_arrow_back.png new file mode 100644 index 0000000..35930f1 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_action_arrow_back.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_action_arrow_forward.png b/app/src/main/res/drawable-mdpi/ic_action_arrow_forward.png new file mode 100644 index 0000000..755ad8b Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_action_arrow_forward.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_action_arrow_back.png b/app/src/main/res/drawable-xhdpi/ic_action_arrow_back.png new file mode 100644 index 0000000..bf3991d Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_action_arrow_back.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_action_arrow_forward.png b/app/src/main/res/drawable-xhdpi/ic_action_arrow_forward.png new file mode 100644 index 0000000..73e047f Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_action_arrow_forward.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_arrow_back.png b/app/src/main/res/drawable-xxhdpi/ic_action_arrow_back.png new file mode 100644 index 0000000..7a83122 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_action_arrow_back.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_arrow_forward.png b/app/src/main/res/drawable-xxhdpi/ic_action_arrow_forward.png new file mode 100644 index 0000000..da2268a Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_action_arrow_forward.png differ diff --git a/app/src/main/res/menu/entries_activity_actions.xml b/app/src/main/res/menu/entries_activity_actions.xml new file mode 100644 index 0000000..43bef46 --- /dev/null +++ b/app/src/main/res/menu/entries_activity_actions.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8"?> + +<menu xmlns:android="http://schemas.android.com/apk/res/android"> + <item + android:id="@+id/action_previous" + android:icon="@drawable/ic_action_arrow_back" + android:title="@string/action_previous" + android:showAsAction="always"/> + + <item + android:id="@+id/action_next" + android:icon="@drawable/ic_action_arrow_forward" + android:title="@string/action_next" + android:showAsAction="always"/> + +</menu> \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d9e5ce6..329bfdb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -25,5 +25,7 @@ <string name="error_no_tables">No tables in this database</string> <string name="error_no_entries">No entries in this table</string> <string name="error_no_databases">No available databases</string> + <string name="action_previous">Previous</string> + <string name="action_next">Next</string> </resources>