r48146 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r48145‎ | r48146 | r48147 >
Date:21:55, 7 March 2009
Author:demon
Status:reverted
Tags:
Comment:
eol-style
Modified paths:
  • /trunk/android-client/.classpath (modified) (history)
  • /trunk/android-client/AndroidManifest.xml (modified) (history)
  • /trunk/android-client/COPYING (modified) (history)
  • /trunk/android-client/README (modified) (history)
  • /trunk/android-client/res/layout/config.xml (modified) (history)
  • /trunk/android-client/res/layout/main.xml (modified) (history)
  • /trunk/android-client/res/layout/search_result_row.xml (modified) (history)
  • /trunk/android-client/res/layout/view_page.xml (modified) (history)
  • /trunk/android-client/res/values/strings.xml (modified) (history)
  • /trunk/android-client/src/org/mediawiki/android/HttpRequest.java (modified) (history)
  • /trunk/android-client/src/org/mediawiki/android/WikiApi.java (modified) (history)
  • /trunk/android-client/src/org/mediawiki/android/WikiPage.java (modified) (history)
  • /trunk/android-client/src/org/mediawiki/android/client/ConfigurationPage.java (modified) (history)
  • /trunk/android-client/src/org/mediawiki/android/client/EditPage.java (modified) (history)
  • /trunk/android-client/src/org/mediawiki/android/client/MainPage.java (modified) (history)
  • /trunk/android-client/src/org/mediawiki/android/client/R.java (modified) (history)
  • /trunk/android-client/src/org/mediawiki/android/client/SearchPage.java (modified) (history)
  • /trunk/android-client/src/org/mediawiki/android/client/ViewPage.java (modified) (history)

Diff [purge]

Index: trunk/android-client/.classpath
@@ -1,6 +1,6 @@
2 -<?xml version="1.0" encoding="UTF-8"?>
3 -<classpath>
4 - <classpathentry kind="src" path="src"/>
5 - <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
6 - <classpathentry kind="output" path="bin"/>
7 -</classpath>
 2+<?xml version="1.0" encoding="UTF-8"?>
 3+<classpath>
 4+ <classpathentry kind="src" path="src"/>
 5+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
 6+ <classpathentry kind="output" path="bin"/>
 7+</classpath>
Property changes on: trunk/android-client/.classpath
___________________________________________________________________
Name: svn:eol-style
88 + native
Property changes on: trunk/android-client/AndroidManifest.xml
___________________________________________________________________
Name: svn:eol-style
99 + native
Index: trunk/android-client/src/org/mediawiki/android/WikiPage.java
@@ -1,173 +1,173 @@
2 -package org.mediawiki.android;
3 -
4 -import java.util.ArrayList;
5 -import java.util.Hashtable;
6 -import org.json.JSONArray;
7 -import org.json.JSONException;
8 -import org.json.JSONObject;
9 -import org.mediawiki.android.WikiApi;
10 -
11 -public class WikiPage {
12 -
13 - private boolean __loaded = false;
14 - private WikiApi __api;
15 -
16 -
17 - // Aspects of the page
18 - protected int __revId;
19 - protected String __pageName;
20 - protected String __pageContent;
21 - protected ArrayList<String> __categories;
22 - protected ArrayList<String> __externalLinks;
23 - protected ArrayList<String> __pageLinks;
24 - protected ArrayList<String> __images;
25 - protected ArrayList<String> __templates;
26 - protected Hashtable<String,String> __interwikiLinks;
27 -
28 - public WikiApi getApi() {
29 - return this.__api;
30 - }
31 -
32 - /**
33 - * Constructor, helpful for making a quick page object
34 - * before we want to load data
35 - */
36 - public WikiPage( String pageName, WikiApi api ) {
37 - this.clearData();
38 - this.__pageName = pageName;
39 - this.__api = api;
40 - }
41 -
42 - /**
43 - * Clear all member fields for a new request
44 - */
45 - private void clearData() {
46 - this.__loaded = false;
47 - this.__revId = 0;
48 - this.__pageContent = "";
49 - this.__pageName = "";
50 - this.__categories = new ArrayList<String>();
51 - this.__externalLinks = new ArrayList<String>();
52 - this.__pageLinks = new ArrayList<String>();
53 - this.__images = new ArrayList<String>();
54 - this.__templates = new ArrayList<String>();
55 - this.__interwikiLinks = new Hashtable<String,String>();
56 - }
57 -
58 - /** Accessors **/
59 - public String getPageHtml() {
60 - this.loadData();
61 - return this.__pageContent;
62 - }
63 - public Hashtable<String,String> getInterwikiLinks() {
64 - this.loadData();
65 - return this.__interwikiLinks;
66 - }
67 - public ArrayList<String> getCategories() {
68 - this.loadData();
69 - return this.__categories;
70 - }
71 - public ArrayList<String> getExternalLinks() {
72 - this.loadData();
73 - return this.__externalLinks;
74 - }
75 - public ArrayList<String> getImages() {
76 - this.loadData();
77 - return this.__images;
78 - }
79 - public ArrayList<String>getTemplates() {
80 - this.loadData();
81 - return this.__templates;
82 - }
83 - public ArrayList<String>getPagelinks() {
84 - this.loadData();
85 - return this.__pageLinks;
86 - }
87 -
88 - /**
89 - * Load a new page
90 - */
91 - public void loadPage( String page ) {
92 - if ( this.__pageName == page ) {
93 - return;
94 - }
95 - this.clearData();
96 - this.__pageName = page;
97 - this.loadData();
98 - }
99 -
100 - /**
101 - * Have we loaded the data on this page?
102 - */
103 - protected boolean isLoaded() {
104 - return this.__loaded;
105 - }
106 -
107 - /**
108 - *
109 - */
110 - protected boolean loadData() {
111 - if ( this.isLoaded() ) {
112 - return true;
113 - }
114 - try {
115 - this.loadDataFromRemote();
116 - this.__loaded = true;
117 - } catch ( JSONException e ) {
118 - this.__loaded = false;
119 - }
120 - return this.__loaded;
121 - }
122 -
123 - protected boolean loadDataFromRemote() throws JSONException {
124 - WikiApi api = this.getApi();
125 - api.newAction( "parse" );
126 - api.addParams( "prop", "revid|text|categories|externallinks|images|templates|links" );
127 - // api.addParams( "prop", "langlinks" );
128 - api.addParams( "page", this.__pageName );
129 - if ( api.doRequest() ) {
130 - JSONObject json = api.getJson().getJSONObject( "parse" );
131 -
132 - // Revid and page content
133 - this.__revId = json.getInt( "revid" );
134 - this.__pageContent = json.getJSONObject( "text" ).getString( "*" );
135 - this.__pageContent = this.__pageContent.replace("\\", "");
136 -
137 - // Populate categories
138 - JSONArray arr = json.optJSONArray( "categories" );
139 - for ( int i = 0; i < arr.length(); i++ ) {
140 - this.__categories.add( arr.getString(i) );
141 - }
142 -
143 - // Populate external links
144 - arr = json.optJSONArray( "externallinks" );
145 - for ( int i = 0; i < arr.length(); i++ ) {
146 - this.__externalLinks.add( arr.getString(i) );
147 - }
148 -
149 - // Populate links
150 - arr = json.optJSONArray( "links" );
151 - for ( int i = 0; i < arr.length(); i++ ) {
152 - this.__pageLinks.add( arr.getString(i) );
153 - }
154 -
155 - // Populate images
156 - arr = json.optJSONArray( "images" );
157 - for ( int i = 0; i < arr.length(); i++ ) {
158 - this.__images.add( arr.getString(i) );
159 - }
160 -
161 - // Populate images
162 - arr = json.optJSONArray( "templates" );
163 - for ( int i = 0; i < arr.length(); i++ ) {
164 - this.__templates.add( arr.getString(i) );
165 - }
166 -
167 - return true;
168 -
169 - }
170 - else {
171 - return false;
172 - }
173 - }
174 -}
 2+package org.mediawiki.android;
 3+
 4+import java.util.ArrayList;
 5+import java.util.Hashtable;
 6+import org.json.JSONArray;
 7+import org.json.JSONException;
 8+import org.json.JSONObject;
 9+import org.mediawiki.android.WikiApi;
 10+
 11+public class WikiPage {
 12+
 13+ private boolean __loaded = false;
 14+ private WikiApi __api;
 15+
 16+
 17+ // Aspects of the page
 18+ protected int __revId;
 19+ protected String __pageName;
 20+ protected String __pageContent;
 21+ protected ArrayList<String> __categories;
 22+ protected ArrayList<String> __externalLinks;
 23+ protected ArrayList<String> __pageLinks;
 24+ protected ArrayList<String> __images;
 25+ protected ArrayList<String> __templates;
 26+ protected Hashtable<String,String> __interwikiLinks;
 27+
 28+ public WikiApi getApi() {
 29+ return this.__api;
 30+ }
 31+
 32+ /**
 33+ * Constructor, helpful for making a quick page object
 34+ * before we want to load data
 35+ */
 36+ public WikiPage( String pageName, WikiApi api ) {
 37+ this.clearData();
 38+ this.__pageName = pageName;
 39+ this.__api = api;
 40+ }
 41+
 42+ /**
 43+ * Clear all member fields for a new request
 44+ */
 45+ private void clearData() {
 46+ this.__loaded = false;
 47+ this.__revId = 0;
 48+ this.__pageContent = "";
 49+ this.__pageName = "";
 50+ this.__categories = new ArrayList<String>();
 51+ this.__externalLinks = new ArrayList<String>();
 52+ this.__pageLinks = new ArrayList<String>();
 53+ this.__images = new ArrayList<String>();
 54+ this.__templates = new ArrayList<String>();
 55+ this.__interwikiLinks = new Hashtable<String,String>();
 56+ }
 57+
 58+ /** Accessors **/
 59+ public String getPageHtml() {
 60+ this.loadData();
 61+ return this.__pageContent;
 62+ }
 63+ public Hashtable<String,String> getInterwikiLinks() {
 64+ this.loadData();
 65+ return this.__interwikiLinks;
 66+ }
 67+ public ArrayList<String> getCategories() {
 68+ this.loadData();
 69+ return this.__categories;
 70+ }
 71+ public ArrayList<String> getExternalLinks() {
 72+ this.loadData();
 73+ return this.__externalLinks;
 74+ }
 75+ public ArrayList<String> getImages() {
 76+ this.loadData();
 77+ return this.__images;
 78+ }
 79+ public ArrayList<String>getTemplates() {
 80+ this.loadData();
 81+ return this.__templates;
 82+ }
 83+ public ArrayList<String>getPagelinks() {
 84+ this.loadData();
 85+ return this.__pageLinks;
 86+ }
 87+
 88+ /**
 89+ * Load a new page
 90+ */
 91+ public void loadPage( String page ) {
 92+ if ( this.__pageName == page ) {
 93+ return;
 94+ }
 95+ this.clearData();
 96+ this.__pageName = page;
 97+ this.loadData();
 98+ }
 99+
 100+ /**
 101+ * Have we loaded the data on this page?
 102+ */
 103+ protected boolean isLoaded() {
 104+ return this.__loaded;
 105+ }
 106+
 107+ /**
 108+ *
 109+ */
 110+ protected boolean loadData() {
 111+ if ( this.isLoaded() ) {
 112+ return true;
 113+ }
 114+ try {
 115+ this.loadDataFromRemote();
 116+ this.__loaded = true;
 117+ } catch ( JSONException e ) {
 118+ this.__loaded = false;
 119+ }
 120+ return this.__loaded;
 121+ }
 122+
 123+ protected boolean loadDataFromRemote() throws JSONException {
 124+ WikiApi api = this.getApi();
 125+ api.newAction( "parse" );
 126+ api.addParams( "prop", "revid|text|categories|externallinks|images|templates|links" );
 127+ // api.addParams( "prop", "langlinks" );
 128+ api.addParams( "page", this.__pageName );
 129+ if ( api.doRequest() ) {
 130+ JSONObject json = api.getJson().getJSONObject( "parse" );
 131+
 132+ // Revid and page content
 133+ this.__revId = json.getInt( "revid" );
 134+ this.__pageContent = json.getJSONObject( "text" ).getString( "*" );
 135+ this.__pageContent = this.__pageContent.replace("\\", "");
 136+
 137+ // Populate categories
 138+ JSONArray arr = json.optJSONArray( "categories" );
 139+ for ( int i = 0; i < arr.length(); i++ ) {
 140+ this.__categories.add( arr.getString(i) );
 141+ }
 142+
 143+ // Populate external links
 144+ arr = json.optJSONArray( "externallinks" );
 145+ for ( int i = 0; i < arr.length(); i++ ) {
 146+ this.__externalLinks.add( arr.getString(i) );
 147+ }
 148+
 149+ // Populate links
 150+ arr = json.optJSONArray( "links" );
 151+ for ( int i = 0; i < arr.length(); i++ ) {
 152+ this.__pageLinks.add( arr.getString(i) );
 153+ }
 154+
 155+ // Populate images
 156+ arr = json.optJSONArray( "images" );
 157+ for ( int i = 0; i < arr.length(); i++ ) {
 158+ this.__images.add( arr.getString(i) );
 159+ }
 160+
 161+ // Populate images
 162+ arr = json.optJSONArray( "templates" );
 163+ for ( int i = 0; i < arr.length(); i++ ) {
 164+ this.__templates.add( arr.getString(i) );
 165+ }
 166+
 167+ return true;
 168+
 169+ }
 170+ else {
 171+ return false;
 172+ }
 173+ }
 174+}
Property changes on: trunk/android-client/src/org/mediawiki/android/WikiPage.java
___________________________________________________________________
Name: svn:eol-style
175175 + native
Index: trunk/android-client/src/org/mediawiki/android/HttpRequest.java
@@ -1,81 +1,81 @@
2 -package org.mediawiki.android;
3 -
4 -// Imports
5 -import java.io.IOException;
6 -import java.net.SocketException;
7 -import java.net.URI;
8 -import java.net.URISyntaxException;
9 -import org.apache.http.client.ClientProtocolException;
10 -import org.apache.http.client.HttpClient;
11 -import org.apache.http.client.ResponseHandler;
12 -import org.apache.http.client.methods.HttpGet;
13 -import org.apache.http.client.methods.HttpPost;
14 -import org.apache.http.impl.client.BasicResponseHandler;
15 -import org.apache.http.impl.client.DefaultHttpClient;
16 -
17 -/**
18 - * Class definition. Pretty simple use to get a raw HTTP GET/POST
19 - * No caching, just a raw request.
20 - */
21 -public class HttpRequest {
22 -
23 - // Keep a single client
24 - private static HttpClient __client;
25 -
26 - public static String get( String url ) {
27 - URI uri = HttpRequest.makeUri( url );
28 - if ( uri == null ) {
29 - return null;
30 - }
31 - HttpGet get = new HttpGet( uri );
32 - ResponseHandler<String> responseHandler = new BasicResponseHandler();
33 - String responseBody = "";
34 - try {
35 - responseBody = HttpRequest.getClient().execute(get, responseHandler);
36 - } catch (ClientProtocolException e) {
37 - e.printStackTrace();
38 - } catch (IOException e) {
39 - e.printStackTrace();
40 - }
41 - return responseBody;
42 - }
43 -
44 - public static String post( String url ) {
45 - URI uri = HttpRequest.makeUri( url );
46 - if ( uri == null ) {
47 - return null;
48 - }
49 - HttpPost post = new HttpPost( uri );
50 - // Create a response handler
51 - ResponseHandler<String> responseHandler = new BasicResponseHandler();
52 - String responseBody = "";
53 - try {
54 - responseBody = HttpRequest.getClient().execute(post, responseHandler);
55 - } catch (ClientProtocolException e) {
56 - e.printStackTrace();
57 - } catch (SocketException e) {
58 - e.printStackTrace();
59 - } catch (IOException e) {
60 - e.printStackTrace();
61 - }
62 - return responseBody;
63 - }
64 -
65 - private static HttpClient getClient() {
66 - if ( HttpRequest.__client == null ) {
67 - HttpRequest.__client = new DefaultHttpClient();
68 - }
69 - return HttpRequest.__client;
70 - }
71 -
72 - private static URI makeUri( String uri ) {
73 - try {
74 - return new URI( uri );
75 - }
76 - catch( URISyntaxException use ) { {
77 - return null;
78 - }
79 -
80 - }
81 - }
 2+package org.mediawiki.android;
 3+
 4+// Imports
 5+import java.io.IOException;
 6+import java.net.SocketException;
 7+import java.net.URI;
 8+import java.net.URISyntaxException;
 9+import org.apache.http.client.ClientProtocolException;
 10+import org.apache.http.client.HttpClient;
 11+import org.apache.http.client.ResponseHandler;
 12+import org.apache.http.client.methods.HttpGet;
 13+import org.apache.http.client.methods.HttpPost;
 14+import org.apache.http.impl.client.BasicResponseHandler;
 15+import org.apache.http.impl.client.DefaultHttpClient;
 16+
 17+/**
 18+ * Class definition. Pretty simple use to get a raw HTTP GET/POST
 19+ * No caching, just a raw request.
 20+ */
 21+public class HttpRequest {
 22+
 23+ // Keep a single client
 24+ private static HttpClient __client;
 25+
 26+ public static String get( String url ) {
 27+ URI uri = HttpRequest.makeUri( url );
 28+ if ( uri == null ) {
 29+ return null;
 30+ }
 31+ HttpGet get = new HttpGet( uri );
 32+ ResponseHandler<String> responseHandler = new BasicResponseHandler();
 33+ String responseBody = "";
 34+ try {
 35+ responseBody = HttpRequest.getClient().execute(get, responseHandler);
 36+ } catch (ClientProtocolException e) {
 37+ e.printStackTrace();
 38+ } catch (IOException e) {
 39+ e.printStackTrace();
 40+ }
 41+ return responseBody;
 42+ }
 43+
 44+ public static String post( String url ) {
 45+ URI uri = HttpRequest.makeUri( url );
 46+ if ( uri == null ) {
 47+ return null;
 48+ }
 49+ HttpPost post = new HttpPost( uri );
 50+ // Create a response handler
 51+ ResponseHandler<String> responseHandler = new BasicResponseHandler();
 52+ String responseBody = "";
 53+ try {
 54+ responseBody = HttpRequest.getClient().execute(post, responseHandler);
 55+ } catch (ClientProtocolException e) {
 56+ e.printStackTrace();
 57+ } catch (SocketException e) {
 58+ e.printStackTrace();
 59+ } catch (IOException e) {
 60+ e.printStackTrace();
 61+ }
 62+ return responseBody;
 63+ }
 64+
 65+ private static HttpClient getClient() {
 66+ if ( HttpRequest.__client == null ) {
 67+ HttpRequest.__client = new DefaultHttpClient();
 68+ }
 69+ return HttpRequest.__client;
 70+ }
 71+
 72+ private static URI makeUri( String uri ) {
 73+ try {
 74+ return new URI( uri );
 75+ }
 76+ catch( URISyntaxException use ) { {
 77+ return null;
 78+ }
 79+
 80+ }
 81+ }
8282 }
\ No newline at end of file
Property changes on: trunk/android-client/src/org/mediawiki/android/HttpRequest.java
___________________________________________________________________
Name: svn:eol-style
8383 + native
Index: trunk/android-client/src/org/mediawiki/android/WikiApi.java
@@ -1,86 +1,86 @@
2 -package org.mediawiki.android;
3 -
4 -import org.json.JSONException;
5 -import org.json.JSONObject;
6 -import java.net.URLEncoder;
7 -
8 -public class WikiApi {
9 -
10 - public static final String FORMAT = "json";
11 - private String __name;
12 - private String __urlBase;
13 - private String __lastJsonResult = null;
14 - private String __action = "query"; // Default to action=query
15 - private String __params = "";
16 - private String __fullRequestUrl;
17 - private boolean __status = false;
18 - private boolean __post = false; // set to true to be a posted request
19 - private static WikiApi __instance = null;
20 -
21 - protected WikiApi( String apiName, String apiUrl ) {
22 - this.__name = apiName;
23 - this.__urlBase = apiUrl;
24 - }
25 -
26 - public static WikiApi getSingleton() {
27 - if ( WikiApi.__instance == null ) {
28 - WikiApi.__instance = new WikiApi( "enwiki", "http://en.wikipedia.org/w/api.php" );
29 - }
30 - return WikiApi.__instance;
31 - }
32 -
33 - public void newAction( String action ) {
34 - this.__action = action;
35 - this.__params = "";
36 - }
37 -
38 - public String getName() {
39 - return this.__name;
40 - }
41 -
42 - public void addParams( String key, String value ) {
43 - this.__params += "&" + key + "=" + URLEncoder.encode(value);
44 - }
45 -
46 - public void setPost( boolean p ) {
47 - this.__post = p;
48 - }
49 -
50 - public boolean doRequest() {
51 - if ( this.__fullRequestUrl == this.getFullRequestUrl() ) {
52 - return this.__status;
53 - }
54 - this.__fullRequestUrl = this.getFullRequestUrl();
55 - String res;
56 - if ( this.__post )
57 - res = HttpRequest.post( this.__fullRequestUrl );
58 - else
59 - res = HttpRequest.get( this.__fullRequestUrl );
60 - if ( res != "" && res != null ) {
61 - this.__lastJsonResult = res;
62 - this.__status = true;
63 - } else {
64 - this.__lastJsonResult = null;
65 - this.__status = false;
66 - }
67 - return this.__status;
68 - }
69 -
70 - public String getFullRequestUrl() {
71 - return this.__urlBase + "?action=" + this.__action +
72 - this.__params + "&format=" + WikiApi.FORMAT;
73 - }
74 -
75 - public String getRawResult() {
76 - return this.__lastJsonResult;
77 - }
78 -
79 - public JSONObject getJson() {
80 - try {
81 - return new JSONObject( this.__lastJsonResult );
82 - } catch (JSONException e) {
83 - return null;
84 - }
85 - }
86 -
87 -}
 2+package org.mediawiki.android;
 3+
 4+import org.json.JSONException;
 5+import org.json.JSONObject;
 6+import java.net.URLEncoder;
 7+
 8+public class WikiApi {
 9+
 10+ public static final String FORMAT = "json";
 11+ private String __name;
 12+ private String __urlBase;
 13+ private String __lastJsonResult = null;
 14+ private String __action = "query"; // Default to action=query
 15+ private String __params = "";
 16+ private String __fullRequestUrl;
 17+ private boolean __status = false;
 18+ private boolean __post = false; // set to true to be a posted request
 19+ private static WikiApi __instance = null;
 20+
 21+ protected WikiApi( String apiName, String apiUrl ) {
 22+ this.__name = apiName;
 23+ this.__urlBase = apiUrl;
 24+ }
 25+
 26+ public static WikiApi getSingleton() {
 27+ if ( WikiApi.__instance == null ) {
 28+ WikiApi.__instance = new WikiApi( "enwiki", "http://en.wikipedia.org/w/api.php" );
 29+ }
 30+ return WikiApi.__instance;
 31+ }
 32+
 33+ public void newAction( String action ) {
 34+ this.__action = action;
 35+ this.__params = "";
 36+ }
 37+
 38+ public String getName() {
 39+ return this.__name;
 40+ }
 41+
 42+ public void addParams( String key, String value ) {
 43+ this.__params += "&" + key + "=" + URLEncoder.encode(value);
 44+ }
 45+
 46+ public void setPost( boolean p ) {
 47+ this.__post = p;
 48+ }
 49+
 50+ public boolean doRequest() {
 51+ if ( this.__fullRequestUrl == this.getFullRequestUrl() ) {
 52+ return this.__status;
 53+ }
 54+ this.__fullRequestUrl = this.getFullRequestUrl();
 55+ String res;
 56+ if ( this.__post )
 57+ res = HttpRequest.post( this.__fullRequestUrl );
 58+ else
 59+ res = HttpRequest.get( this.__fullRequestUrl );
 60+ if ( res != "" && res != null ) {
 61+ this.__lastJsonResult = res;
 62+ this.__status = true;
 63+ } else {
 64+ this.__lastJsonResult = null;
 65+ this.__status = false;
 66+ }
 67+ return this.__status;
 68+ }
 69+
 70+ public String getFullRequestUrl() {
 71+ return this.__urlBase + "?action=" + this.__action +
 72+ this.__params + "&format=" + WikiApi.FORMAT;
 73+ }
 74+
 75+ public String getRawResult() {
 76+ return this.__lastJsonResult;
 77+ }
 78+
 79+ public JSONObject getJson() {
 80+ try {
 81+ return new JSONObject( this.__lastJsonResult );
 82+ } catch (JSONException e) {
 83+ return null;
 84+ }
 85+ }
 86+
 87+}
Property changes on: trunk/android-client/src/org/mediawiki/android/WikiApi.java
___________________________________________________________________
Name: svn:eol-style
8888 + native
Property changes on: trunk/android-client/src/org/mediawiki/android/client/MainPage.java
___________________________________________________________________
Name: svn:eol-style
8989 + native
Index: trunk/android-client/src/org/mediawiki/android/client/R.java
@@ -1,66 +1,66 @@
2 -/* AUTO-GENERATED FILE. DO NOT MODIFY.
3 - *
4 - * This class was automatically generated by the
5 - * aapt tool from the resource data it found. It
6 - * should not be modified by hand.
7 - */
8 -
9 -package org.mediawiki.android.client;
10 -
11 -public final class R {
12 - public static final class attr {
13 - }
14 - public static final class drawable {
15 - public static final int icon=0x7f020000;
16 - public static final int mediawiki=0x7f020001;
17 - }
18 - public static final class id {
19 - public static final int MainPage_EditText=0x7f050002;
20 - public static final int MainPage_image=0x7f050001;
21 - public static final int MainPage_parent=0x7f050000;
22 - public static final int SearchPage=0x7f050003;
23 - public static final int SearchResultRow=0x7f050005;
24 - public static final int ViewPage=0x7f050004;
25 - public static final int ViewPage_root=0x7f050006;
26 - public static final int ViewPage_text=0x7f050007;
27 - }
28 - public static final class layout {
29 - public static final int config=0x7f030000;
30 - public static final int main=0x7f030001;
31 - public static final int search_result_row=0x7f030002;
32 - public static final int view_page=0x7f030003;
33 - }
34 - public static final class string {
35 - public static final int app_authors=0x7f040002;
36 - public static final int app_license=0x7f040003;
37 - /** GLOBAL THINGS
38 - */
39 - public static final int app_name=0x7f040000;
40 - public static final int app_version=0x7f040001;
41 - public static final int fetch_data=0x7f040004;
42 - public static final int intent_config=0x7f040010;
43 - /** INTENTS FOR MANIFEST
44 - */
45 - public static final int intent_edit=0x7f04000c;
46 - public static final int intent_main=0x7f04000d;
47 - public static final int intent_search=0x7f04000f;
48 - public static final int intent_view=0x7f04000e;
49 - public static final int menu_about=0x7f040006;
50 - public static final int menu_categories=0x7f04000a;
51 - public static final int menu_config=0x7f040007;
52 - /** MAIN MENU
53 - */
54 - public static final int menu_home=0x7f040005;
55 - public static final int menu_langlinks=0x7f04000b;
56 - public static final int menu_pagelinks=0x7f040009;
57 - public static final int menu_search=0x7f040008;
58 - public static final int pref_cachetime=0x7f040014;
59 - public static final int pref_cachetime_summary=0x7f040015;
60 - public static final int pref_usecache=0x7f040012;
61 - public static final int pref_usecache_summary=0x7f040013;
62 - /** PREFERENCES
63 - */
64 - public static final int prefcat_caching=0x7f040011;
65 - public static final int prefcat_wikis=0x7f040016;
66 - }
67 -}
 2+/* AUTO-GENERATED FILE. DO NOT MODIFY.
 3+ *
 4+ * This class was automatically generated by the
 5+ * aapt tool from the resource data it found. It
 6+ * should not be modified by hand.
 7+ */
 8+
 9+package org.mediawiki.android.client;
 10+
 11+public final class R {
 12+ public static final class attr {
 13+ }
 14+ public static final class drawable {
 15+ public static final int icon=0x7f020000;
 16+ public static final int mediawiki=0x7f020001;
 17+ }
 18+ public static final class id {
 19+ public static final int MainPage_EditText=0x7f050002;
 20+ public static final int MainPage_image=0x7f050001;
 21+ public static final int MainPage_parent=0x7f050000;
 22+ public static final int SearchPage=0x7f050003;
 23+ public static final int SearchResultRow=0x7f050005;
 24+ public static final int ViewPage=0x7f050004;
 25+ public static final int ViewPage_root=0x7f050006;
 26+ public static final int ViewPage_text=0x7f050007;
 27+ }
 28+ public static final class layout {
 29+ public static final int config=0x7f030000;
 30+ public static final int main=0x7f030001;
 31+ public static final int search_result_row=0x7f030002;
 32+ public static final int view_page=0x7f030003;
 33+ }
 34+ public static final class string {
 35+ public static final int app_authors=0x7f040002;
 36+ public static final int app_license=0x7f040003;
 37+ /** GLOBAL THINGS
 38+ */
 39+ public static final int app_name=0x7f040000;
 40+ public static final int app_version=0x7f040001;
 41+ public static final int fetch_data=0x7f040004;
 42+ public static final int intent_config=0x7f040010;
 43+ /** INTENTS FOR MANIFEST
 44+ */
 45+ public static final int intent_edit=0x7f04000c;
 46+ public static final int intent_main=0x7f04000d;
 47+ public static final int intent_search=0x7f04000f;
 48+ public static final int intent_view=0x7f04000e;
 49+ public static final int menu_about=0x7f040006;
 50+ public static final int menu_categories=0x7f04000a;
 51+ public static final int menu_config=0x7f040007;
 52+ /** MAIN MENU
 53+ */
 54+ public static final int menu_home=0x7f040005;
 55+ public static final int menu_langlinks=0x7f04000b;
 56+ public static final int menu_pagelinks=0x7f040009;
 57+ public static final int menu_search=0x7f040008;
 58+ public static final int pref_cachetime=0x7f040014;
 59+ public static final int pref_cachetime_summary=0x7f040015;
 60+ public static final int pref_usecache=0x7f040012;
 61+ public static final int pref_usecache_summary=0x7f040013;
 62+ /** PREFERENCES
 63+ */
 64+ public static final int prefcat_caching=0x7f040011;
 65+ public static final int prefcat_wikis=0x7f040016;
 66+ }
 67+}
Property changes on: trunk/android-client/src/org/mediawiki/android/client/R.java
___________________________________________________________________
Name: svn:eol-style
6868 + native
Property changes on: trunk/android-client/src/org/mediawiki/android/client/EditPage.java
___________________________________________________________________
Name: svn:eol-style
6969 + native
Index: trunk/android-client/src/org/mediawiki/android/client/SearchPage.java
@@ -1,87 +1,87 @@
2 -package org.mediawiki.android.client;
3 -
4 -import android.app.ListActivity;
5 -import android.content.Intent;
6 -import android.os.Bundle;
7 -import android.view.Menu;
8 -import android.view.MenuItem;
9 -import android.view.View;
10 -import android.widget.ArrayAdapter;
11 -import android.widget.ListView;
12 -import android.widget.Toast;
13 -
14 -import java.util.ArrayList;
15 -import java.util.List;
16 -import org.json.JSONArray;
17 -import org.json.JSONException;
18 -import org.json.JSONObject;
19 -import org.mediawiki.android.WikiApi;
20 -
21 -public class SearchPage extends ListActivity {
22 -
23 - @Override
24 - protected void onListItemClick(ListView l, View v, int position, long id) {
25 - String title = (String)l.getItemAtPosition( position );
26 - Intent i = new Intent( this, ViewPage.class );
27 - i.putExtra( "pageTitle", title );
28 - startActivity( i );
29 - super.onListItemClick(l, v, position, id);
30 - }
31 -
32 - /** Called when the activity is first created. */
33 - @Override
34 - public void onCreate(Bundle savedInstanceState) {
35 - super.onCreate(savedInstanceState);
36 - try {
37 - this.fillData( getIntent().getExtras().getString( "searchTerm" ) );
38 - } catch (JSONException e) {
39 - Toast t = Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG );
40 - t.show();
41 - }
42 - }
43 -
44 - private void fillData( String searchTerm ) throws JSONException {
45 - List<String> items = new ArrayList<String>();
46 - WikiApi api = WikiApi.getSingleton();
47 - api.newAction( "query" );
48 - api.addParams( "list", "search" );
49 - api.addParams( "srwhat", "text" );
50 - api.addParams( "srsearch", searchTerm );
51 - Toast t = Toast.makeText( this, this.getString(R.string.fetch_data), 60 * 5 );
52 - t.show();
53 - api.doRequest();
54 - t.cancel();
55 - JSONArray json = api.getJson().getJSONObject("query").getJSONArray("search");
56 - JSONObject jsonItem;
57 - for ( int i = 0; i < json.length(); i++ ) {
58 - jsonItem = json.getJSONObject( i );
59 - items.add( jsonItem.getString( "title" ) );
60 - }
61 - ArrayAdapter<String> results =
62 - new ArrayAdapter<String>(this, R.layout.search_result_row, items);
63 - setListAdapter(results);
64 - }
65 -
66 - /**
67 - * Setup our menus at the bottom
68 - */
69 - @Override
70 - public boolean onCreateOptionsMenu( Menu menu ) {
71 - menu.add(0, MainPage.HOME, MainPage.HOME, getString( R.string.menu_home ) );
72 - return super.onCreateOptionsMenu(menu);
73 - }
74 -
75 - /**
76 - * Handle our menus :)
77 - */
78 - @Override
79 - public boolean onMenuItemSelected(int featureId, MenuItem item) {
80 - switch ( item.getItemId() ) {
81 - case MainPage.HOME:
82 - default:
83 - this.startActivity( new Intent( this, MainPage.class ) );
84 - break;
85 - }
86 - return super.onMenuItemSelected(featureId, item);
87 - }
88 -}
 2+package org.mediawiki.android.client;
 3+
 4+import android.app.ListActivity;
 5+import android.content.Intent;
 6+import android.os.Bundle;
 7+import android.view.Menu;
 8+import android.view.MenuItem;
 9+import android.view.View;
 10+import android.widget.ArrayAdapter;
 11+import android.widget.ListView;
 12+import android.widget.Toast;
 13+
 14+import java.util.ArrayList;
 15+import java.util.List;
 16+import org.json.JSONArray;
 17+import org.json.JSONException;
 18+import org.json.JSONObject;
 19+import org.mediawiki.android.WikiApi;
 20+
 21+public class SearchPage extends ListActivity {
 22+
 23+ @Override
 24+ protected void onListItemClick(ListView l, View v, int position, long id) {
 25+ String title = (String)l.getItemAtPosition( position );
 26+ Intent i = new Intent( this, ViewPage.class );
 27+ i.putExtra( "pageTitle", title );
 28+ startActivity( i );
 29+ super.onListItemClick(l, v, position, id);
 30+ }
 31+
 32+ /** Called when the activity is first created. */
 33+ @Override
 34+ public void onCreate(Bundle savedInstanceState) {
 35+ super.onCreate(savedInstanceState);
 36+ try {
 37+ this.fillData( getIntent().getExtras().getString( "searchTerm" ) );
 38+ } catch (JSONException e) {
 39+ Toast t = Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG );
 40+ t.show();
 41+ }
 42+ }
 43+
 44+ private void fillData( String searchTerm ) throws JSONException {
 45+ List<String> items = new ArrayList<String>();
 46+ WikiApi api = WikiApi.getSingleton();
 47+ api.newAction( "query" );
 48+ api.addParams( "list", "search" );
 49+ api.addParams( "srwhat", "text" );
 50+ api.addParams( "srsearch", searchTerm );
 51+ Toast t = Toast.makeText( this, this.getString(R.string.fetch_data), 60 * 5 );
 52+ t.show();
 53+ api.doRequest();
 54+ t.cancel();
 55+ JSONArray json = api.getJson().getJSONObject("query").getJSONArray("search");
 56+ JSONObject jsonItem;
 57+ for ( int i = 0; i < json.length(); i++ ) {
 58+ jsonItem = json.getJSONObject( i );
 59+ items.add( jsonItem.getString( "title" ) );
 60+ }
 61+ ArrayAdapter<String> results =
 62+ new ArrayAdapter<String>(this, R.layout.search_result_row, items);
 63+ setListAdapter(results);
 64+ }
 65+
 66+ /**
 67+ * Setup our menus at the bottom
 68+ */
 69+ @Override
 70+ public boolean onCreateOptionsMenu( Menu menu ) {
 71+ menu.add(0, MainPage.HOME, MainPage.HOME, getString( R.string.menu_home ) );
 72+ return super.onCreateOptionsMenu(menu);
 73+ }
 74+
 75+ /**
 76+ * Handle our menus :)
 77+ */
 78+ @Override
 79+ public boolean onMenuItemSelected(int featureId, MenuItem item) {
 80+ switch ( item.getItemId() ) {
 81+ case MainPage.HOME:
 82+ default:
 83+ this.startActivity( new Intent( this, MainPage.class ) );
 84+ break;
 85+ }
 86+ return super.onMenuItemSelected(featureId, item);
 87+ }
 88+}
Property changes on: trunk/android-client/src/org/mediawiki/android/client/SearchPage.java
___________________________________________________________________
Name: svn:eol-style
8989 + native
Index: trunk/android-client/src/org/mediawiki/android/client/ConfigurationPage.java
@@ -1,14 +1,14 @@
2 -package org.mediawiki.android.client;
3 -
4 -import android.os.Bundle;
5 -import android.preference.PreferenceActivity;
6 -
7 -public class ConfigurationPage extends PreferenceActivity {
8 -
9 - /** Called when the activity is first created. */
10 - @Override
11 - public void onCreate(Bundle savedInstanceState) {
12 - super.onCreate(savedInstanceState);
13 - addPreferencesFromResource(R.layout.config);
14 - }
15 -}
 2+package org.mediawiki.android.client;
 3+
 4+import android.os.Bundle;
 5+import android.preference.PreferenceActivity;
 6+
 7+public class ConfigurationPage extends PreferenceActivity {
 8+
 9+ /** Called when the activity is first created. */
 10+ @Override
 11+ public void onCreate(Bundle savedInstanceState) {
 12+ super.onCreate(savedInstanceState);
 13+ addPreferencesFromResource(R.layout.config);
 14+ }
 15+}
Property changes on: trunk/android-client/src/org/mediawiki/android/client/ConfigurationPage.java
___________________________________________________________________
Name: svn:eol-style
1616 + native
Property changes on: trunk/android-client/src/org/mediawiki/android/client/ViewPage.java
___________________________________________________________________
Name: svn:eol-style
1717 + native
Index: trunk/android-client/COPYING
@@ -1,340 +1,340 @@
2 - GNU GENERAL PUBLIC LICENSE
3 - Version 2, June 1991
4 -
5 - Copyright (C) 1989, 1991 Free Software Foundation, Inc.
6 - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
7 - Everyone is permitted to copy and distribute verbatim copies
8 - of this license document, but changing it is not allowed.
9 -
10 - Preamble
11 -
12 - The licenses for most software are designed to take away your
13 -freedom to share and change it. By contrast, the GNU General Public
14 -License is intended to guarantee your freedom to share and change free
15 -software--to make sure the software is free for all its users. This
16 -General Public License applies to most of the Free Software
17 -Foundation's software and to any other program whose authors commit to
18 -using it. (Some other Free Software Foundation software is covered by
19 -the GNU Library General Public License instead.) You can apply it to
20 -your programs, too.
21 -
22 - When we speak of free software, we are referring to freedom, not
23 -price. Our General Public Licenses are designed to make sure that you
24 -have the freedom to distribute copies of free software (and charge for
25 -this service if you wish), that you receive source code or can get it
26 -if you want it, that you can change the software or use pieces of it
27 -in new free programs; and that you know you can do these things.
28 -
29 - To protect your rights, we need to make restrictions that forbid
30 -anyone to deny you these rights or to ask you to surrender the rights.
31 -These restrictions translate to certain responsibilities for you if you
32 -distribute copies of the software, or if you modify it.
33 -
34 - For example, if you distribute copies of such a program, whether
35 -gratis or for a fee, you must give the recipients all the rights that
36 -you have. You must make sure that they, too, receive or can get the
37 -source code. And you must show them these terms so they know their
38 -rights.
39 -
40 - We protect your rights with two steps: (1) copyright the software, and
41 -(2) offer you this license which gives you legal permission to copy,
42 -distribute and/or modify the software.
43 -
44 - Also, for each author's protection and ours, we want to make certain
45 -that everyone understands that there is no warranty for this free
46 -software. If the software is modified by someone else and passed on, we
47 -want its recipients to know that what they have is not the original, so
48 -that any problems introduced by others will not reflect on the original
49 -authors' reputations.
50 -
51 - Finally, any free program is threatened constantly by software
52 -patents. We wish to avoid the danger that redistributors of a free
53 -program will individually obtain patent licenses, in effect making the
54 -program proprietary. To prevent this, we have made it clear that any
55 -patent must be licensed for everyone's free use or not licensed at all.
56 -
57 - The precise terms and conditions for copying, distribution and
58 -modification follow.
59 -
60 - GNU GENERAL PUBLIC LICENSE
61 - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
62 -
63 - 0. This License applies to any program or other work which contains
64 -a notice placed by the copyright holder saying it may be distributed
65 -under the terms of this General Public License. The "Program", below,
66 -refers to any such program or work, and a "work based on the Program"
67 -means either the Program or any derivative work under copyright law:
68 -that is to say, a work containing the Program or a portion of it,
69 -either verbatim or with modifications and/or translated into another
70 -language. (Hereinafter, translation is included without limitation in
71 -the term "modification".) Each licensee is addressed as "you".
72 -
73 -Activities other than copying, distribution and modification are not
74 -covered by this License; they are outside its scope. The act of
75 -running the Program is not restricted, and the output from the Program
76 -is covered only if its contents constitute a work based on the
77 -Program (independent of having been made by running the Program).
78 -Whether that is true depends on what the Program does.
79 -
80 - 1. You may copy and distribute verbatim copies of the Program's
81 -source code as you receive it, in any medium, provided that you
82 -conspicuously and appropriately publish on each copy an appropriate
83 -copyright notice and disclaimer of warranty; keep intact all the
84 -notices that refer to this License and to the absence of any warranty;
85 -and give any other recipients of the Program a copy of this License
86 -along with the Program.
87 -
88 -You may charge a fee for the physical act of transferring a copy, and
89 -you may at your option offer warranty protection in exchange for a fee.
90 -
91 - 2. You may modify your copy or copies of the Program or any portion
92 -of it, thus forming a work based on the Program, and copy and
93 -distribute such modifications or work under the terms of Section 1
94 -above, provided that you also meet all of these conditions:
95 -
96 - a) You must cause the modified files to carry prominent notices
97 - stating that you changed the files and the date of any change.
98 -
99 - b) You must cause any work that you distribute or publish, that in
100 - whole or in part contains or is derived from the Program or any
101 - part thereof, to be licensed as a whole at no charge to all third
102 - parties under the terms of this License.
103 -
104 - c) If the modified program normally reads commands interactively
105 - when run, you must cause it, when started running for such
106 - interactive use in the most ordinary way, to print or display an
107 - announcement including an appropriate copyright notice and a
108 - notice that there is no warranty (or else, saying that you provide
109 - a warranty) and that users may redistribute the program under
110 - these conditions, and telling the user how to view a copy of this
111 - License. (Exception: if the Program itself is interactive but
112 - does not normally print such an announcement, your work based on
113 - the Program is not required to print an announcement.)
114 -
115 -These requirements apply to the modified work as a whole. If
116 -identifiable sections of that work are not derived from the Program,
117 -and can be reasonably considered independent and separate works in
118 -themselves, then this License, and its terms, do not apply to those
119 -sections when you distribute them as separate works. But when you
120 -distribute the same sections as part of a whole which is a work based
121 -on the Program, the distribution of the whole must be on the terms of
122 -this License, whose permissions for other licensees extend to the
123 -entire whole, and thus to each and every part regardless of who wrote it.
124 -
125 -Thus, it is not the intent of this section to claim rights or contest
126 -your rights to work written entirely by you; rather, the intent is to
127 -exercise the right to control the distribution of derivative or
128 -collective works based on the Program.
129 -
130 -In addition, mere aggregation of another work not based on the Program
131 -with the Program (or with a work based on the Program) on a volume of
132 -a storage or distribution medium does not bring the other work under
133 -the scope of this License.
134 -
135 - 3. You may copy and distribute the Program (or a work based on it,
136 -under Section 2) in object code or executable form under the terms of
137 -Sections 1 and 2 above provided that you also do one of the following:
138 -
139 - a) Accompany it with the complete corresponding machine-readable
140 - source code, which must be distributed under the terms of Sections
141 - 1 and 2 above on a medium customarily used for software interchange; or,
142 -
143 - b) Accompany it with a written offer, valid for at least three
144 - years, to give any third party, for a charge no more than your
145 - cost of physically performing source distribution, a complete
146 - machine-readable copy of the corresponding source code, to be
147 - distributed under the terms of Sections 1 and 2 above on a medium
148 - customarily used for software interchange; or,
149 -
150 - c) Accompany it with the information you received as to the offer
151 - to distribute corresponding source code. (This alternative is
152 - allowed only for noncommercial distribution and only if you
153 - received the program in object code or executable form with such
154 - an offer, in accord with Subsection b above.)
155 -
156 -The source code for a work means the preferred form of the work for
157 -making modifications to it. For an executable work, complete source
158 -code means all the source code for all modules it contains, plus any
159 -associated interface definition files, plus the scripts used to
160 -control compilation and installation of the executable. However, as a
161 -special exception, the source code distributed need not include
162 -anything that is normally distributed (in either source or binary
163 -form) with the major components (compiler, kernel, and so on) of the
164 -operating system on which the executable runs, unless that component
165 -itself accompanies the executable.
166 -
167 -If distribution of executable or object code is made by offering
168 -access to copy from a designated place, then offering equivalent
169 -access to copy the source code from the same place counts as
170 -distribution of the source code, even though third parties are not
171 -compelled to copy the source along with the object code.
172 -
173 - 4. You may not copy, modify, sublicense, or distribute the Program
174 -except as expressly provided under this License. Any attempt
175 -otherwise to copy, modify, sublicense or distribute the Program is
176 -void, and will automatically terminate your rights under this License.
177 -However, parties who have received copies, or rights, from you under
178 -this License will not have their licenses terminated so long as such
179 -parties remain in full compliance.
180 -
181 - 5. You are not required to accept this License, since you have not
182 -signed it. However, nothing else grants you permission to modify or
183 -distribute the Program or its derivative works. These actions are
184 -prohibited by law if you do not accept this License. Therefore, by
185 -modifying or distributing the Program (or any work based on the
186 -Program), you indicate your acceptance of this License to do so, and
187 -all its terms and conditions for copying, distributing or modifying
188 -the Program or works based on it.
189 -
190 - 6. Each time you redistribute the Program (or any work based on the
191 -Program), the recipient automatically receives a license from the
192 -original licensor to copy, distribute or modify the Program subject to
193 -these terms and conditions. You may not impose any further
194 -restrictions on the recipients' exercise of the rights granted herein.
195 -You are not responsible for enforcing compliance by third parties to
196 -this License.
197 -
198 - 7. If, as a consequence of a court judgment or allegation of patent
199 -infringement or for any other reason (not limited to patent issues),
200 -conditions are imposed on you (whether by court order, agreement or
201 -otherwise) that contradict the conditions of this License, they do not
202 -excuse you from the conditions of this License. If you cannot
203 -distribute so as to satisfy simultaneously your obligations under this
204 -License and any other pertinent obligations, then as a consequence you
205 -may not distribute the Program at all. For example, if a patent
206 -license would not permit royalty-free redistribution of the Program by
207 -all those who receive copies directly or indirectly through you, then
208 -the only way you could satisfy both it and this License would be to
209 -refrain entirely from distribution of the Program.
210 -
211 -If any portion of this section is held invalid or unenforceable under
212 -any particular circumstance, the balance of the section is intended to
213 -apply and the section as a whole is intended to apply in other
214 -circumstances.
215 -
216 -It is not the purpose of this section to induce you to infringe any
217 -patents or other property right claims or to contest validity of any
218 -such claims; this section has the sole purpose of protecting the
219 -integrity of the free software distribution system, which is
220 -implemented by public license practices. Many people have made
221 -generous contributions to the wide range of software distributed
222 -through that system in reliance on consistent application of that
223 -system; it is up to the author/donor to decide if he or she is willing
224 -to distribute software through any other system and a licensee cannot
225 -impose that choice.
226 -
227 -This section is intended to make thoroughly clear what is believed to
228 -be a consequence of the rest of this License.
229 -
230 - 8. If the distribution and/or use of the Program is restricted in
231 -certain countries either by patents or by copyrighted interfaces, the
232 -original copyright holder who places the Program under this License
233 -may add an explicit geographical distribution limitation excluding
234 -those countries, so that distribution is permitted only in or among
235 -countries not thus excluded. In such case, this License incorporates
236 -the limitation as if written in the body of this License.
237 -
238 - 9. The Free Software Foundation may publish revised and/or new versions
239 -of the General Public License from time to time. Such new versions will
240 -be similar in spirit to the present version, but may differ in detail to
241 -address new problems or concerns.
242 -
243 -Each version is given a distinguishing version number. If the Program
244 -specifies a version number of this License which applies to it and "any
245 -later version", you have the option of following the terms and conditions
246 -either of that version or of any later version published by the Free
247 -Software Foundation. If the Program does not specify a version number of
248 -this License, you may choose any version ever published by the Free Software
249 -Foundation.
250 -
251 - 10. If you wish to incorporate parts of the Program into other free
252 -programs whose distribution conditions are different, write to the author
253 -to ask for permission. For software which is copyrighted by the Free
254 -Software Foundation, write to the Free Software Foundation; we sometimes
255 -make exceptions for this. Our decision will be guided by the two goals
256 -of preserving the free status of all derivatives of our free software and
257 -of promoting the sharing and reuse of software generally.
258 -
259 - NO WARRANTY
260 -
261 - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
262 -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
263 -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
264 -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
265 -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
266 -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
267 -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
268 -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
269 -REPAIR OR CORRECTION.
270 -
271 - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
272 -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
273 -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
274 -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
275 -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
276 -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
277 -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
278 -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
279 -POSSIBILITY OF SUCH DAMAGES.
280 -
281 - END OF TERMS AND CONDITIONS
282 -
283 - How to Apply These Terms to Your New Programs
284 -
285 - If you develop a new program, and you want it to be of the greatest
286 -possible use to the public, the best way to achieve this is to make it
287 -free software which everyone can redistribute and change under these terms.
288 -
289 - To do so, attach the following notices to the program. It is safest
290 -to attach them to the start of each source file to most effectively
291 -convey the exclusion of warranty; and each file should have at least
292 -the "copyright" line and a pointer to where the full notice is found.
293 -
294 - <one line to give the program's name and a brief idea of what it does.>
295 - Copyright (C) <year> <name of author>
296 -
297 - This program is free software; you can redistribute it and/or modify
298 - it under the terms of the GNU General Public License as published by
299 - the Free Software Foundation; either version 2 of the License, or
300 - (at your option) any later version.
301 -
302 - This program is distributed in the hope that it will be useful,
303 - but WITHOUT ANY WARRANTY; without even the implied warranty of
304 - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
305 - GNU General Public License for more details.
306 -
307 - You should have received a copy of the GNU General Public License
308 - along with this program; if not, write to the Free Software
309 - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
310 -
311 -
312 -Also add information on how to contact you by electronic and paper mail.
313 -
314 -If the program is interactive, make it output a short notice like this
315 -when it starts in an interactive mode:
316 -
317 - Gnomovision version 69, Copyright (C) year name of author
318 - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
319 - This is free software, and you are welcome to redistribute it
320 - under certain conditions; type `show c' for details.
321 -
322 -The hypothetical commands `show w' and `show c' should show the appropriate
323 -parts of the General Public License. Of course, the commands you use may
324 -be called something other than `show w' and `show c'; they could even be
325 -mouse-clicks or menu items--whatever suits your program.
326 -
327 -You should also get your employer (if you work as a programmer) or your
328 -school, if any, to sign a "copyright disclaimer" for the program, if
329 -necessary. Here is a sample; alter the names:
330 -
331 - Yoyodyne, Inc., hereby disclaims all copyright interest in the program
332 - `Gnomovision' (which makes passes at compilers) written by James Hacker.
333 -
334 - <signature of Ty Coon>, 1 April 1989
335 - Ty Coon, President of Vice
336 -
337 -This General Public License does not permit incorporating your program into
338 -proprietary programs. If your program is a subroutine library, you may
339 -consider it more useful to permit linking proprietary applications with the
340 -library. If this is what you want to do, use the GNU Library General
341 -Public License instead of this License.
 2+ GNU GENERAL PUBLIC LICENSE
 3+ Version 2, June 1991
 4+
 5+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
 6+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
 7+ Everyone is permitted to copy and distribute verbatim copies
 8+ of this license document, but changing it is not allowed.
 9+
 10+ Preamble
 11+
 12+ The licenses for most software are designed to take away your
 13+freedom to share and change it. By contrast, the GNU General Public
 14+License is intended to guarantee your freedom to share and change free
 15+software--to make sure the software is free for all its users. This
 16+General Public License applies to most of the Free Software
 17+Foundation's software and to any other program whose authors commit to
 18+using it. (Some other Free Software Foundation software is covered by
 19+the GNU Library General Public License instead.) You can apply it to
 20+your programs, too.
 21+
 22+ When we speak of free software, we are referring to freedom, not
 23+price. Our General Public Licenses are designed to make sure that you
 24+have the freedom to distribute copies of free software (and charge for
 25+this service if you wish), that you receive source code or can get it
 26+if you want it, that you can change the software or use pieces of it
 27+in new free programs; and that you know you can do these things.
 28+
 29+ To protect your rights, we need to make restrictions that forbid
 30+anyone to deny you these rights or to ask you to surrender the rights.
 31+These restrictions translate to certain responsibilities for you if you
 32+distribute copies of the software, or if you modify it.
 33+
 34+ For example, if you distribute copies of such a program, whether
 35+gratis or for a fee, you must give the recipients all the rights that
 36+you have. You must make sure that they, too, receive or can get the
 37+source code. And you must show them these terms so they know their
 38+rights.
 39+
 40+ We protect your rights with two steps: (1) copyright the software, and
 41+(2) offer you this license which gives you legal permission to copy,
 42+distribute and/or modify the software.
 43+
 44+ Also, for each author's protection and ours, we want to make certain
 45+that everyone understands that there is no warranty for this free
 46+software. If the software is modified by someone else and passed on, we
 47+want its recipients to know that what they have is not the original, so
 48+that any problems introduced by others will not reflect on the original
 49+authors' reputations.
 50+
 51+ Finally, any free program is threatened constantly by software
 52+patents. We wish to avoid the danger that redistributors of a free
 53+program will individually obtain patent licenses, in effect making the
 54+program proprietary. To prevent this, we have made it clear that any
 55+patent must be licensed for everyone's free use or not licensed at all.
 56+
 57+ The precise terms and conditions for copying, distribution and
 58+modification follow.
 59+
 60+ GNU GENERAL PUBLIC LICENSE
 61+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 62+
 63+ 0. This License applies to any program or other work which contains
 64+a notice placed by the copyright holder saying it may be distributed
 65+under the terms of this General Public License. The "Program", below,
 66+refers to any such program or work, and a "work based on the Program"
 67+means either the Program or any derivative work under copyright law:
 68+that is to say, a work containing the Program or a portion of it,
 69+either verbatim or with modifications and/or translated into another
 70+language. (Hereinafter, translation is included without limitation in
 71+the term "modification".) Each licensee is addressed as "you".
 72+
 73+Activities other than copying, distribution and modification are not
 74+covered by this License; they are outside its scope. The act of
 75+running the Program is not restricted, and the output from the Program
 76+is covered only if its contents constitute a work based on the
 77+Program (independent of having been made by running the Program).
 78+Whether that is true depends on what the Program does.
 79+
 80+ 1. You may copy and distribute verbatim copies of the Program's
 81+source code as you receive it, in any medium, provided that you
 82+conspicuously and appropriately publish on each copy an appropriate
 83+copyright notice and disclaimer of warranty; keep intact all the
 84+notices that refer to this License and to the absence of any warranty;
 85+and give any other recipients of the Program a copy of this License
 86+along with the Program.
 87+
 88+You may charge a fee for the physical act of transferring a copy, and
 89+you may at your option offer warranty protection in exchange for a fee.
 90+
 91+ 2. You may modify your copy or copies of the Program or any portion
 92+of it, thus forming a work based on the Program, and copy and
 93+distribute such modifications or work under the terms of Section 1
 94+above, provided that you also meet all of these conditions:
 95+
 96+ a) You must cause the modified files to carry prominent notices
 97+ stating that you changed the files and the date of any change.
 98+
 99+ b) You must cause any work that you distribute or publish, that in
 100+ whole or in part contains or is derived from the Program or any
 101+ part thereof, to be licensed as a whole at no charge to all third
 102+ parties under the terms of this License.
 103+
 104+ c) If the modified program normally reads commands interactively
 105+ when run, you must cause it, when started running for such
 106+ interactive use in the most ordinary way, to print or display an
 107+ announcement including an appropriate copyright notice and a
 108+ notice that there is no warranty (or else, saying that you provide
 109+ a warranty) and that users may redistribute the program under
 110+ these conditions, and telling the user how to view a copy of this
 111+ License. (Exception: if the Program itself is interactive but
 112+ does not normally print such an announcement, your work based on
 113+ the Program is not required to print an announcement.)
 114+
 115+These requirements apply to the modified work as a whole. If
 116+identifiable sections of that work are not derived from the Program,
 117+and can be reasonably considered independent and separate works in
 118+themselves, then this License, and its terms, do not apply to those
 119+sections when you distribute them as separate works. But when you
 120+distribute the same sections as part of a whole which is a work based
 121+on the Program, the distribution of the whole must be on the terms of
 122+this License, whose permissions for other licensees extend to the
 123+entire whole, and thus to each and every part regardless of who wrote it.
 124+
 125+Thus, it is not the intent of this section to claim rights or contest
 126+your rights to work written entirely by you; rather, the intent is to
 127+exercise the right to control the distribution of derivative or
 128+collective works based on the Program.
 129+
 130+In addition, mere aggregation of another work not based on the Program
 131+with the Program (or with a work based on the Program) on a volume of
 132+a storage or distribution medium does not bring the other work under
 133+the scope of this License.
 134+
 135+ 3. You may copy and distribute the Program (or a work based on it,
 136+under Section 2) in object code or executable form under the terms of
 137+Sections 1 and 2 above provided that you also do one of the following:
 138+
 139+ a) Accompany it with the complete corresponding machine-readable
 140+ source code, which must be distributed under the terms of Sections
 141+ 1 and 2 above on a medium customarily used for software interchange; or,
 142+
 143+ b) Accompany it with a written offer, valid for at least three
 144+ years, to give any third party, for a charge no more than your
 145+ cost of physically performing source distribution, a complete
 146+ machine-readable copy of the corresponding source code, to be
 147+ distributed under the terms of Sections 1 and 2 above on a medium
 148+ customarily used for software interchange; or,
 149+
 150+ c) Accompany it with the information you received as to the offer
 151+ to distribute corresponding source code. (This alternative is
 152+ allowed only for noncommercial distribution and only if you
 153+ received the program in object code or executable form with such
 154+ an offer, in accord with Subsection b above.)
 155+
 156+The source code for a work means the preferred form of the work for
 157+making modifications to it. For an executable work, complete source
 158+code means all the source code for all modules it contains, plus any
 159+associated interface definition files, plus the scripts used to
 160+control compilation and installation of the executable. However, as a
 161+special exception, the source code distributed need not include
 162+anything that is normally distributed (in either source or binary
 163+form) with the major components (compiler, kernel, and so on) of the
 164+operating system on which the executable runs, unless that component
 165+itself accompanies the executable.
 166+
 167+If distribution of executable or object code is made by offering
 168+access to copy from a designated place, then offering equivalent
 169+access to copy the source code from the same place counts as
 170+distribution of the source code, even though third parties are not
 171+compelled to copy the source along with the object code.
 172+
 173+ 4. You may not copy, modify, sublicense, or distribute the Program
 174+except as expressly provided under this License. Any attempt
 175+otherwise to copy, modify, sublicense or distribute the Program is
 176+void, and will automatically terminate your rights under this License.
 177+However, parties who have received copies, or rights, from you under
 178+this License will not have their licenses terminated so long as such
 179+parties remain in full compliance.
 180+
 181+ 5. You are not required to accept this License, since you have not
 182+signed it. However, nothing else grants you permission to modify or
 183+distribute the Program or its derivative works. These actions are
 184+prohibited by law if you do not accept this License. Therefore, by
 185+modifying or distributing the Program (or any work based on the
 186+Program), you indicate your acceptance of this License to do so, and
 187+all its terms and conditions for copying, distributing or modifying
 188+the Program or works based on it.
 189+
 190+ 6. Each time you redistribute the Program (or any work based on the
 191+Program), the recipient automatically receives a license from the
 192+original licensor to copy, distribute or modify the Program subject to
 193+these terms and conditions. You may not impose any further
 194+restrictions on the recipients' exercise of the rights granted herein.
 195+You are not responsible for enforcing compliance by third parties to
 196+this License.
 197+
 198+ 7. If, as a consequence of a court judgment or allegation of patent
 199+infringement or for any other reason (not limited to patent issues),
 200+conditions are imposed on you (whether by court order, agreement or
 201+otherwise) that contradict the conditions of this License, they do not
 202+excuse you from the conditions of this License. If you cannot
 203+distribute so as to satisfy simultaneously your obligations under this
 204+License and any other pertinent obligations, then as a consequence you
 205+may not distribute the Program at all. For example, if a patent
 206+license would not permit royalty-free redistribution of the Program by
 207+all those who receive copies directly or indirectly through you, then
 208+the only way you could satisfy both it and this License would be to
 209+refrain entirely from distribution of the Program.
 210+
 211+If any portion of this section is held invalid or unenforceable under
 212+any particular circumstance, the balance of the section is intended to
 213+apply and the section as a whole is intended to apply in other
 214+circumstances.
 215+
 216+It is not the purpose of this section to induce you to infringe any
 217+patents or other property right claims or to contest validity of any
 218+such claims; this section has the sole purpose of protecting the
 219+integrity of the free software distribution system, which is
 220+implemented by public license practices. Many people have made
 221+generous contributions to the wide range of software distributed
 222+through that system in reliance on consistent application of that
 223+system; it is up to the author/donor to decide if he or she is willing
 224+to distribute software through any other system and a licensee cannot
 225+impose that choice.
 226+
 227+This section is intended to make thoroughly clear what is believed to
 228+be a consequence of the rest of this License.
 229+
 230+ 8. If the distribution and/or use of the Program is restricted in
 231+certain countries either by patents or by copyrighted interfaces, the
 232+original copyright holder who places the Program under this License
 233+may add an explicit geographical distribution limitation excluding
 234+those countries, so that distribution is permitted only in or among
 235+countries not thus excluded. In such case, this License incorporates
 236+the limitation as if written in the body of this License.
 237+
 238+ 9. The Free Software Foundation may publish revised and/or new versions
 239+of the General Public License from time to time. Such new versions will
 240+be similar in spirit to the present version, but may differ in detail to
 241+address new problems or concerns.
 242+
 243+Each version is given a distinguishing version number. If the Program
 244+specifies a version number of this License which applies to it and "any
 245+later version", you have the option of following the terms and conditions
 246+either of that version or of any later version published by the Free
 247+Software Foundation. If the Program does not specify a version number of
 248+this License, you may choose any version ever published by the Free Software
 249+Foundation.
 250+
 251+ 10. If you wish to incorporate parts of the Program into other free
 252+programs whose distribution conditions are different, write to the author
 253+to ask for permission. For software which is copyrighted by the Free
 254+Software Foundation, write to the Free Software Foundation; we sometimes
 255+make exceptions for this. Our decision will be guided by the two goals
 256+of preserving the free status of all derivatives of our free software and
 257+of promoting the sharing and reuse of software generally.
 258+
 259+ NO WARRANTY
 260+
 261+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
 262+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
 263+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
 264+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
 265+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 266+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
 267+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
 268+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
 269+REPAIR OR CORRECTION.
 270+
 271+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
 272+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
 273+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
 274+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
 275+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
 276+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
 277+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
 278+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
 279+POSSIBILITY OF SUCH DAMAGES.
 280+
 281+ END OF TERMS AND CONDITIONS
 282+
 283+ How to Apply These Terms to Your New Programs
 284+
 285+ If you develop a new program, and you want it to be of the greatest
 286+possible use to the public, the best way to achieve this is to make it
 287+free software which everyone can redistribute and change under these terms.
 288+
 289+ To do so, attach the following notices to the program. It is safest
 290+to attach them to the start of each source file to most effectively
 291+convey the exclusion of warranty; and each file should have at least
 292+the "copyright" line and a pointer to where the full notice is found.
 293+
 294+ <one line to give the program's name and a brief idea of what it does.>
 295+ Copyright (C) <year> <name of author>
 296+
 297+ This program is free software; you can redistribute it and/or modify
 298+ it under the terms of the GNU General Public License as published by
 299+ the Free Software Foundation; either version 2 of the License, or
 300+ (at your option) any later version.
 301+
 302+ This program is distributed in the hope that it will be useful,
 303+ but WITHOUT ANY WARRANTY; without even the implied warranty of
 304+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 305+ GNU General Public License for more details.
 306+
 307+ You should have received a copy of the GNU General Public License
 308+ along with this program; if not, write to the Free Software
 309+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
 310+
 311+
 312+Also add information on how to contact you by electronic and paper mail.
 313+
 314+If the program is interactive, make it output a short notice like this
 315+when it starts in an interactive mode:
 316+
 317+ Gnomovision version 69, Copyright (C) year name of author
 318+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
 319+ This is free software, and you are welcome to redistribute it
 320+ under certain conditions; type `show c' for details.
 321+
 322+The hypothetical commands `show w' and `show c' should show the appropriate
 323+parts of the General Public License. Of course, the commands you use may
 324+be called something other than `show w' and `show c'; they could even be
 325+mouse-clicks or menu items--whatever suits your program.
 326+
 327+You should also get your employer (if you work as a programmer) or your
 328+school, if any, to sign a "copyright disclaimer" for the program, if
 329+necessary. Here is a sample; alter the names:
 330+
 331+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
 332+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
 333+
 334+ <signature of Ty Coon>, 1 April 1989
 335+ Ty Coon, President of Vice
 336+
 337+This General Public License does not permit incorporating your program into
 338+proprietary programs. If your program is a subroutine library, you may
 339+consider it more useful to permit linking proprietary applications with the
 340+library. If this is what you want to do, use the GNU Library General
 341+Public License instead of this License.
Property changes on: trunk/android-client/COPYING
___________________________________________________________________
Name: svn:eol-style
342342 + native
Property changes on: trunk/android-client/res/values/strings.xml
___________________________________________________________________
Name: svn:eol-style
343343 + native
Property changes on: trunk/android-client/res/layout/main.xml
___________________________________________________________________
Name: svn:eol-style
344344 + native
Property changes on: trunk/android-client/res/layout/config.xml
___________________________________________________________________
Name: svn:eol-style
345345 + native
Index: trunk/android-client/res/layout/view_page.xml
@@ -1,6 +1,5 @@
2 -<?xml version="1.0" encoding="utf-8"?>
3 -
4 -
5 -
6 -<RelativeLayout android:id="@+id/ViewPage_root" android:layout_width="wrap_content" android:layout_height="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android"><TextView android:layout_height="fill_parent" android:layout_width="fill_parent" android:id="@+id/ViewPage_text"></TextView>
 2+<?xml version="1.0" encoding="utf-8"?>
 3+<RelativeLayout android:id="@+id/ViewPage_root" android:layout_width="wrap_content" android:layout_height="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android">
 4+ <TextView android:layout_height="fill_parent" android:layout_width="fill_parent" android:id="@+id/ViewPage_text">
 5+ </TextView>
76 </RelativeLayout>
Property changes on: trunk/android-client/res/layout/view_page.xml
___________________________________________________________________
Name: svn:eol-style
87 + native
Index: trunk/android-client/res/layout/search_result_row.xml
@@ -1,4 +1,4 @@
2 -<?xml version="1.0" encoding="utf-8"?>
3 -<TextView android:id="@+id/SearchResultRow" xmlns:android="http://schemas.android.com/apk/res/android"
4 - android:layout_width="wrap_content"
 2+<?xml version="1.0" encoding="utf-8"?>
 3+<TextView android:id="@+id/SearchResultRow" xmlns:android="http://schemas.android.com/apk/res/android"
 4+ android:layout_width="wrap_content"
55 android:layout_height="wrap_content" android:height="40px"/>
\ No newline at end of file
Property changes on: trunk/android-client/res/layout/search_result_row.xml
___________________________________________________________________
Name: svn:eol-style
66 + native
Index: trunk/android-client/README
@@ -1,41 +1,41 @@
2 -Mediawiki Client for Android
3 -
4 -Designed to interface with any MediaWiki installation with an open
5 -API.
6 -
7 -
8 -Version 0.0.5
9 -
10 -NOTE: This software is pre-pre-alpha and is not guaranteed to work
11 -on any device at any point. Use at your own risk.
12 -
13 -FEATURES:
14 -* Makes request to API url entered, Returns some default information on page
15 - name provided.
16 -
17 -TODO:
18 - 1) i18n - check Google's progress in native Android. Possible workarounds?
19 - 2) Document everything
20 - 3) Make the cache work
21 - 4) Multiple wiki sources in prefs
22 - 5) User authentication
23 - 6) Make data available as a ContentProvider
24 - 7) Make page views actually attractive and usable (not just POC)
25 -
26 - This program is free software; you can redistribute it and/or modify
27 - it under the terms of the GNU General Public License as published by
28 - the Free Software Foundation; either version 2 of the License, or
29 - (at your option) any later version.
30 -
31 - This program is distributed in the hope that it will be useful,
32 - but WITHOUT ANY WARRANTY; without even the implied warranty of
33 - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
34 - GNU General Public License for more details.
35 -
36 - You should have received a copy of the GNU General Public License along
37 - with this program; if not, write to the Free Software Foundation, Inc.,
38 - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
39 - http://www.gnu.org/copyleft/gpl.html
 2+Mediawiki Client for Android
 3+--
 4+
 5+Designed to interface with any MediaWiki installation with an open
 6+API.
 7+
 8+--
 9+
 10+Version 0.0.5
 11+
 12+NOTE: This software is pre-pre-alpha and is not guaranteed to work
 13+on any device at any point. Use at your own risk.
 14+
 15+FEATURES:
 16+* Makes request to API url entered, Returns some default information on page
 17+ name provided.
 18+
 19+TODO:
 20+ 1) i18n - check Google's progress in native Android. Possible workarounds?
 21+ 2) Document everything
 22+ 3) Make the cache work
 23+ 4) Multiple wiki sources in prefs
 24+ 5) User authentication
 25+ 6) Make data available as a ContentProvider
 26+ 7) Make page views actually attractive and usable (not just POC)
 27+
 28+--
 29+ This program is free software; you can redistribute it and/or modify
 30+ it under the terms of the GNU General Public License as published by
 31+ the Free Software Foundation; either version 2 of the License, or
 32+ (at your option) any later version.
 33+
 34+ This program is distributed in the hope that it will be useful,
 35+ but WITHOUT ANY WARRANTY; without even the implied warranty of
 36+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 37+ GNU General Public License for more details.
 38+
 39+ You should have received a copy of the GNU General Public License along
 40+ with this program; if not, write to the Free Software Foundation, Inc.,
 41+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 42+ http://www.gnu.org/copyleft/gpl.html
Property changes on: trunk/android-client/README
___________________________________________________________________
Name: svn:eol-style
4043 + native

Status & tagging log