From c59a709afb0196f8853ec81e9a349e4b4868fe3c Mon Sep 17 00:00:00 2001 From: =?utf8?q?=A3ukasz=20Anwajler?= Date: Wed, 23 Mar 2011 19:15:48 +0100 Subject: [PATCH] Dirty stub. --- gen/pl/org/nowoczesnapolska/R.java | 31 ++- lib/google-gson-stream-1.6.jar | Bin 0 -> 14671 bytes res/layout/catalogue.xml | 9 +- res/layout/catalogue_row.xml | 32 +++ src/pl/org/nowoczesnapolska/Auth.java | 16 +- src/pl/org/nowoczesnapolska/AuthHelper.java | 4 +- src/pl/org/nowoczesnapolska/Catalogue.java | 250 +++++++++++++----- .../nowoczesnapolska/CatalogueAdapter.java | 60 +++++ .../nowoczesnapolska/CatalogueDbHelper.java | 54 ++++ .../org/nowoczesnapolska/CatalogueEntry.java | 31 +++ .../org/nowoczesnapolska/CatalogueItem.java | 20 ++ 11 files changed, 414 insertions(+), 93 deletions(-) create mode 100644 lib/google-gson-stream-1.6.jar create mode 100644 res/layout/catalogue_row.xml create mode 100644 src/pl/org/nowoczesnapolska/CatalogueAdapter.java create mode 100644 src/pl/org/nowoczesnapolska/CatalogueDbHelper.java create mode 100644 src/pl/org/nowoczesnapolska/CatalogueEntry.java diff --git a/gen/pl/org/nowoczesnapolska/R.java b/gen/pl/org/nowoczesnapolska/R.java index 219a09b..e67aa76 100644 --- a/gen/pl/org/nowoczesnapolska/R.java +++ b/gen/pl/org/nowoczesnapolska/R.java @@ -15,16 +15,20 @@ public final class R { } public static final class id { public static final int ScrollView01=0x7f050000; - public static final int addShelf=0x7f050008; - public static final int catalogueBookListView=0x7f050004; + public static final int addShelf=0x7f05000c; + public static final int catalogueBookListView=0x7f050005; public static final int catalogueListView=0x7f050002; + public static final int cataloguePrompt=0x7f050003; public static final int catalogueSearch=0x7f050001; - public static final int catalogueShelvesBookListView=0x7f050009; - public static final int catalogueShelvesListView=0x7f050007; - public static final int putOnShelf=0x7f050006; - public static final int read_online=0x7f050003; - public static final int sign_in=0x7f05000a; - public static final int webview=0x7f050005; + public static final int catalogueShelvesBookListView=0x7f05000d; + public static final int catalogueShelvesListView=0x7f05000b; + public static final int icon=0x7f050007; + public static final int id=0x7f050008; + public static final int name=0x7f050009; + public static final int putOnShelf=0x7f05000a; + public static final int read_online=0x7f050004; + public static final int sign_in=0x7f05000e; + public static final int webview=0x7f050006; } public static final class layout { public static final int about=0x7f030000; @@ -34,11 +38,12 @@ public final class R { public static final int catalogue_item_details=0x7f030004; public static final int catalogue_list_item=0x7f030005; public static final int catalogue_read_online=0x7f030006; - public static final int catalogue_shelves=0x7f030007; - public static final int catalogue_shelves_item=0x7f030008; - public static final int catalogue_shelves_list_item=0x7f030009; - public static final int settings=0x7f03000a; - public static final int signin=0x7f03000b; + public static final int catalogue_row=0x7f030007; + public static final int catalogue_shelves=0x7f030008; + public static final int catalogue_shelves_item=0x7f030009; + public static final int catalogue_shelves_list_item=0x7f03000a; + public static final int settings=0x7f03000b; + public static final int signin=0x7f03000c; } public static final class string { public static final int app_name=0x7f040000; diff --git a/lib/google-gson-stream-1.6.jar b/lib/google-gson-stream-1.6.jar new file mode 100644 index 0000000000000000000000000000000000000000..2507c654e1cb5fea7e534811464c3f1573b4454d GIT binary patch literal 14671 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 literal 0 HcmV?d00001 diff --git a/res/layout/catalogue.xml b/res/layout/catalogue.xml index f3fccb2..2b6bb30 100644 --- a/res/layout/catalogue.xml +++ b/res/layout/catalogue.xml @@ -15,6 +15,13 @@ + diff --git a/res/layout/catalogue_row.xml b/res/layout/catalogue_row.xml new file mode 100644 index 0000000..b08b7fc --- /dev/null +++ b/res/layout/catalogue_row.xml @@ -0,0 +1,32 @@ + + + + + + + + \ No newline at end of file diff --git a/src/pl/org/nowoczesnapolska/Auth.java b/src/pl/org/nowoczesnapolska/Auth.java index 0fbb0a1..b713cf7 100644 --- a/src/pl/org/nowoczesnapolska/Auth.java +++ b/src/pl/org/nowoczesnapolska/Auth.java @@ -35,7 +35,7 @@ public class Auth extends Activity { private OAuthProvider mProvider; private String mCallbackUrl; private String authURL; - private String apiURL = "http://192.168.148.129/api/"; + private String apiURL = "http://epsilon.nowoczesnapolska.org.pl/api/"; @Override public void onResume(){ @@ -48,11 +48,11 @@ public class Auth extends Activity { Log.d("resume", "token0: "+token[0]); Log.d("resume", "token1: "+token[1]); - String accessToken[] = AuthHelper.getAccessToken(token[1]); + //String accessToken[] = AuthHelper.getAccessToken(token[1]); - Log.d("resume", "token0: " + accessToken[0]); - Log.d("resume", "token1: " + accessToken[1]); - mConsumer = new CommonsHttpOAuthConsumer(accessToken[0], accessToken[1]); + Log.d("resume", "token0: " + token[0]); + Log.d("resume", "token1: " + token[1]); + mConsumer = new CommonsHttpOAuthConsumer(token[0], token[1]); final URL url = new URL(apiURL+"tags/abc.json"); Log.d("url", "token1: "+url.toString()); @@ -65,15 +65,11 @@ public class Auth extends Activity { HttpClient httpClient = new DefaultHttpClient(); HttpResponse response = httpClient.execute(request); - } catch (OAuthMessageSignerException e) { // TODO Auto-generated catch block e.printStackTrace(); - } catch (OAuthNotAuthorizedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); } catch (OAuthExpectationFailedException e) { - // TODO Auto-generated catch block + // TODO Auto-generated catch block11 e.printStackTrace(); } catch (OAuthCommunicationException e) { // TODO Auto-generated catch block diff --git a/src/pl/org/nowoczesnapolska/AuthHelper.java b/src/pl/org/nowoczesnapolska/AuthHelper.java index d531c62..8258c57 100644 --- a/src/pl/org/nowoczesnapolska/AuthHelper.java +++ b/src/pl/org/nowoczesnapolska/AuthHelper.java @@ -20,7 +20,7 @@ public class AuthHelper { private static OAuthConsumer mConsumer; private static OAuthProvider mProvider; private static String mCallbackUrl; - private static String apiURL = "http://192.168.148.129/api/"; + private static String apiURL = "http://epsilon.nowoczesnapolska.org.pl/api/"; public static void OAuthHelper(String consumerKey, String consumerSecret, String callbackUrl) throws UnsupportedEncodingException { @@ -30,7 +30,7 @@ public class AuthHelper { apiURL+"oauth/access_token/", apiURL+"oauth/authorize/"); mProvider.setOAuth10a(true); - mCallbackUrl = (callbackUrl == null ? OAuth.OUT_OF_BAND : callbackUrl); + mCallbackUrl = "wl://"; } diff --git a/src/pl/org/nowoczesnapolska/Catalogue.java b/src/pl/org/nowoczesnapolska/Catalogue.java index cbf329b..a6a72b8 100644 --- a/src/pl/org/nowoczesnapolska/Catalogue.java +++ b/src/pl/org/nowoczesnapolska/Catalogue.java @@ -1,11 +1,36 @@ package pl.org.nowoczesnapolska; +import java.io.BufferedInputStream; +import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.io.StringWriter; +import java.io.Writer; +import java.util.ArrayList; +import java.util.HashMap; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + import android.app.Activity; +import android.content.ContentValues; import android.content.Context; import android.content.Intent; +import android.content.res.AssetFileDescriptor; +import android.content.res.AssetManager; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.graphics.Paint.Join; +import android.opengl.Visibility; import android.os.Bundle; +import android.os.ParcelFileDescriptor; import android.text.Editable; import android.text.TextWatcher; +import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -19,93 +44,85 @@ public class Catalogue extends Activity { static final private int MENU_SIGNIN = Menu.FIRST; static final private int MENU_SETTINGS = Menu.FIRST+1; static final private int MENU_ABOUT = Menu.FIRST+2; - - static final String[] AUTHORS = new String[] { - "Władysław Anczyc", - "Hans Christian Andersen", - "Adam Asnyk", - "Autor nieznany", - "Honoré de Balzac", - "Michał Bałucki", - "Charles Baudelaire", - "Władysław Bełza", - "Miłosz Biedrzycki", - "August Bielowski", - "George Gordon Byron", - "Joseph Conrad", - "Anton Czechow", - "Józef Czechowicz", - "Daniel Defoe", - "Casimir Delavigne", - "Antonina Domańska", - "Alojzy Feliński", - "Aleksander Fredro", - "Johann Wolfgang von Goethe", - "Bruno Jasieński", - "Franciszek Karpiński", - "Jan Kasprowicz", - "Rudyard Kipling", - "Jan Kochanowski", - "Maria Konopnicka", - "Franciszek Kowalski", - "Ignacy Krasicki", - "Zygmunt Krasiński", - "Teofil Lenartowicz", - "Bolesław Leśmian", - "Adam Mickiewicz", - "Molière", - "Jan Andrzej Morsztyn", - "Julian Ursyn Niemcewicz", - "Cyprian Kamil Norwid", - "Artur Oppman", - "Eliza Orzeszkowa", - "Edgar Allan Poe", - "Wincenty Pol", - "Ludwik Ksawery Pomian-Łubiński", - "Bolesław Prus", - "Kazimierz Przerwa-Tetmajer", - "Władysław Stanisław Reymont", - "Mikołaj Sęp Szarzyński", - "William Shakespeare", - "Henryk Sienkiewicz", - "Juliusz Słowacki", - "Sofokles", - "Rajnold Suchodolski", - "Wacław Święcicki", - "Władysław Tarnowski", - "Stanisław Ignacy Witkiewicz", - "Stefan Witwicki", - "Józef Wybicki", - "Stanisław Wyspiański", - "Gabriela Zapolska", - "Stefan Żeromski" - }; + SQLiteDatabase db; + public ArrayList searchList; Context ctx; + public static ListView lv; + public CatalogueAdapter adapter; + int first = 1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.catalogue); ctx = this; - final ListView lv = (ListView) findViewById(R.id.catalogueListView); + lv = (ListView) findViewById(R.id.catalogueListView); final EditText search = (EditText) findViewById(R.id.catalogueSearch); + final EditText prompt = (EditText) findViewById(R.id.cataloguePrompt); - lv.setAdapter(new ArrayAdapter(this, R.layout.catalogue_list_item, AUTHORS)); + CatalogueDbHelper dbHelper = new CatalogueDbHelper(ctx); + db = dbHelper.getWritableDatabase(); + searchList = new ArrayList(); lv.setTextFilterEnabled(true); lv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { - startActivity(new Intent(ctx, CatalogueItem.class)); + Log.d("selected id", id+""); + Log.d("selected id", this+""); + Log.d("selected type", searchList.get(position).getType()+""); + Log.d("selected name", searchList.get(position).getName()+""); + Intent selectedIntent = new Intent(ctx, CatalogueItem.class); + selectedIntent.putExtra("id", id); + selectedIntent.putExtra("type", searchList.get(position).getType()); + startActivity(selectedIntent); } }); - + search.addTextChangedListener(new TextWatcher() { - @Override public void onTextChanged(CharSequence s, int start, int before, int count) { - lv.setFilterText(s.toString()); + if(s.toString().length() > 1) { + lv.setVisibility(0); // == VISIBLE + + String[] filter = new String[2]; + String term = s.toString()+"%"; + Log.d("char str:",term); + filter[0] = term; + filter[1] = term; + Cursor cur = db.rawQuery("select name, id, type from (select title as name, id, 0 as type from books where title like '"+term+"%' UNION ALL select name, id, 1 as type from tags where name like '"+term+"%') order by name", null); + cur.moveToFirst(); + int i = 0; + searchList.clear(); + while(i < cur.getCount()){ + try { + Log.d("query result", cur.getString(0)); + searchList.add(new CatalogueEntry(cur.getInt(2), cur.getInt(1), cur.getString(0))); + } catch (Exception e) { + Log.d("query result count", cur.getColumnCount() + " " + cur.getPosition()); + } + cur.moveToNext(); + i++; + Log.d("test listy ctx", ctx.toString()); + Log.d("test listy r.", R.layout.catalogue_list_item+""); + Log.d("test listy list", searchList.size() + ""); + Log.d("test listy lv", lv.toString()); + } + if(searchList.size() > 0) { + if(first == 1) { + adapter = new CatalogueAdapter(ctx, R.layout.catalogue_row, searchList); + lv.setAdapter(adapter); + first = 0; + } + adapter.notifyDataSetChanged(); + } + } else { + searchList.clear(); + if(adapter != null) { + adapter.notifyDataSetChanged(); + } + } } @Override @@ -121,6 +138,81 @@ public class Catalogue extends Activity { } }); + + + Cursor c = db.rawQuery("select id from tags limit 2", null);// do zmiany + Log.d("db", c.getCount()+""); + + /* this is memory consuming and should be optimized. it is first-run only, though */ + if(c.getCount() == 0) { + AssetManager assetManager = getAssets(); + try { + Log.d("assets", assetManager.list("/assets").length+""); + for(String s: assetManager.list("/assets")){ + Log.d("assets", s); + } + InputStream is = assetManager.open("catalogue.jpg", AssetManager.ACCESS_BUFFER); + String catalogueString = readInputStreamAsString(is); + JSONObject jObject = null; + try { + //new JSONOBj + jObject = new JSONObject(catalogueString); + } catch (JSONException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + Log.d("assets", catalogueString.length()+""); + JSONObject added = jObject.getJSONObject("added"); + JSONArray books = added.getJSONArray("books"); // books + JSONArray tags = added.getJSONArray("tags"); // tags + + Log.d("json array books length", books.length()+""); + Log.d("json array tags length", tags.length()+""); + Log.d("json array length", added.length()+""); + + for(int i = 0; i < books.length(); i++){ + JSONObject book = books.getJSONObject(i); + Log.d("json-test", book.get("id").toString() + book.get("title").toString() + book.get("slug").toString()); + // JSONException + ContentValues bookMap = new ContentValues(); + bookMap.put("id", book.get("id").toString()); + bookMap.put("title", book.get("title").toString()); + bookMap.put("slug", book.get("slug").toString()); + bookMap.put("epub", "epub"); + bookMap.put("html", "html"); + bookMap.put("mp3", "mp3"); + + long id = db.insert("books", null, bookMap); + Log.d("sql", id+""); + } + + for(int i = 0; i < tags.length(); i++){ + JSONObject tag = tags.getJSONObject(i); + Log.d("json-test", tag.get("id").toString() + tag.get("name").toString() + tag.get("slug").toString()+ tag.get("sort_key").toString()+ tag.get("category").toString()); + // JSONException + + //String bookData[] = {book.get("id").toString(), book.get("title").toString(), book.get("slug").toString()}; + ContentValues tagMap = new ContentValues(); + tagMap.put("id", tag.get("id").toString()); + tagMap.put("name", tag.get("name").toString()); + tagMap.put("slug", tag.get("slug").toString()); + tagMap.put("sort_key", tag.get("sort_key").toString()); + tagMap.put("category", tag.get("category").toString()); + tagMap.put("description", "description"); + long id = db.insert("tags", null, tagMap); + Log.d("sql", id+""); + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (JSONException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + } @Override @@ -178,5 +270,29 @@ public class Catalogue extends Activity { return false; } + public static String readInputStreamAsString(InputStream is) + throws IOException { + + if (is != null) { + Writer writer = new StringWriter(); + + /* be careful if tempted to change buffer size, OutOfMemory exception is watching you */ + char[] buffer = new char[1024]; + try { + Reader reader = new BufferedReader( + new InputStreamReader(is, "UTF-8")); + int n; + while ((n = reader.read(buffer)) != -1) { + writer.write(buffer, 0, n); + } + } finally { + is.close(); + } + return writer.toString(); + } else { + return ""; + } + } + } \ No newline at end of file diff --git a/src/pl/org/nowoczesnapolska/CatalogueAdapter.java b/src/pl/org/nowoczesnapolska/CatalogueAdapter.java new file mode 100644 index 0000000..43487ac --- /dev/null +++ b/src/pl/org/nowoczesnapolska/CatalogueAdapter.java @@ -0,0 +1,60 @@ +package pl.org.nowoczesnapolska; + +import java.util.ArrayList; + +import android.app.Activity; +import android.content.Context; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.BaseAdapter; +import android.widget.TextView; + +class CatalogueAdapter extends BaseAdapter { + private ArrayList items; + private Context ctx; + + public CatalogueAdapter(Context context, int textViewResourceId, ArrayList items) { + this.items = items; + this.ctx = context; + } + + @Override + public int getCount() { + // TODO Auto-generated method stub + return items.size(); + } + @Override + public Object getItem(int position) { + // TODO Auto-generated method stub + return items.get(position); + } + @Override + public long getItemId(int position) { + return items.get(position).getId(); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + View v = convertView; + if (v == null) { + LayoutInflater vi = (LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + v = vi.inflate(R.layout.catalogue_row, null); + } + CatalogueEntry o = items.get(position); + if (o != null) { + Log.d("not null", "not null"); + TextView tt = (TextView) v.findViewById(R.id.id); + TextView bt = (TextView) v.findViewById(R.id.name); + if (tt != null) { + tt.setText("Name: "+o.getName()); } + if(bt != null){ + bt.setText("Type: "+ o.getType()); + } + } + Log.d("dalej", "dalej"); + return v; + } +} \ No newline at end of file diff --git a/src/pl/org/nowoczesnapolska/CatalogueDbHelper.java b/src/pl/org/nowoczesnapolska/CatalogueDbHelper.java new file mode 100644 index 0000000..447d1a1 --- /dev/null +++ b/src/pl/org/nowoczesnapolska/CatalogueDbHelper.java @@ -0,0 +1,54 @@ +package pl.org.nowoczesnapolska; +import android.content.Context; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteDatabase.CursorFactory; +import android.database.sqlite.SQLiteOpenHelper; + +public class CatalogueDbHelper extends SQLiteOpenHelper { + + public CatalogueDbHelper(Context context, String name, + CursorFactory factory, int version) { + super(context, name, factory, version); + // TODO Auto-generated constructor stub + } + + private static final int DATABASE_VERSION = 2; + private static final String TAGS_TABLE = "tags"; + private static final String BOOKS_TABLE = "books"; + + private static final String TAGS_TABLE_CREATE = + "CREATE TABLE " + TAGS_TABLE + " (" + + "id INTEGER, " + + "name TEXT, " + + "slug TEXT, " + + "sort_key TEXT, " + + "category TEXT, " + + "description TEXT " + + ");"; + + private static final String BOOKS_TABLE_CREATE = + "CREATE TABLE " + BOOKS_TABLE + " (" + + "id INTEGER, " + + "title TEXT, " + + "slug TEXT, " + + "epub TEXT, " + + "html TEXT, " + + "mp3 TEXT " + + ");"; + private static final String DATABASE_NAME = "wl-mobile"; + + CatalogueDbHelper(Context context) { + super(context, DATABASE_NAME, null, DATABASE_VERSION); + } + + @Override + public void onCreate(SQLiteDatabase db) { + db.execSQL(BOOKS_TABLE_CREATE); + db.execSQL(TAGS_TABLE_CREATE); + } + + @Override + public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { + // TODO Auto-generated method stub + } +} \ No newline at end of file diff --git a/src/pl/org/nowoczesnapolska/CatalogueEntry.java b/src/pl/org/nowoczesnapolska/CatalogueEntry.java new file mode 100644 index 0000000..4f1e337 --- /dev/null +++ b/src/pl/org/nowoczesnapolska/CatalogueEntry.java @@ -0,0 +1,31 @@ +package pl.org.nowoczesnapolska; + +public class CatalogueEntry { + // type: 0 -- book, 1 -- tag + private int type; + private int id; + private String name; + public CatalogueEntry(int type, int id, String name){ + setType(type); + setId(id); + setName(name); + } + public void setType(int type) { + this.type = type; + } + public int getType() { + return type; + } + public void setId(int id) { + this.id = id; + } + public int getId() { + return id; + } + public void setName(String name) { + this.name = name; + } + public String getName() { + return name; + } +} diff --git a/src/pl/org/nowoczesnapolska/CatalogueItem.java b/src/pl/org/nowoczesnapolska/CatalogueItem.java index fbfa3f2..34ed284 100644 --- a/src/pl/org/nowoczesnapolska/CatalogueItem.java +++ b/src/pl/org/nowoczesnapolska/CatalogueItem.java @@ -3,6 +3,8 @@ package pl.org.nowoczesnapolska; import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; @@ -27,12 +29,30 @@ public class CatalogueItem extends Activity { static final private int MENU_SETTINGS = Menu.FIRST+2; static final private int MENU_ABOUT = Menu.FIRST+3; + private SQLiteDatabase db; + Context ctx; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.catalogue_item_details); ctx = this; + + int id = getIntent().getIntExtra("id", 0); + int type = getIntent().getIntExtra("type", 0); + String[] options = new String[2]; + options[0] = new String(id+""); + options[1] = new String(type+""); + + /*if(type == 0){ + // books + Cursor c = db.rawQuery("select * from books where id = ?", options); + } else { + // tags + }*/ + + CatalogueDbHelper dbHelper = new CatalogueDbHelper(ctx); + db = dbHelper.getWritableDatabase(); final ListView lv = (ListView) findViewById(R.id.catalogueBookListView); -- 2.20.1