projects
/
zxing.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
dbf043a
)
Preserve query in geo URI
author
srowen
<srowen@59b500cc-1b3d-0410-9834-0bbf25fbcc57>
Sat, 7 Aug 2010 13:21:35 +0000
(13:21 +0000)
committer
srowen
<srowen@59b500cc-1b3d-0410-9834-0bbf25fbcc57>
Sat, 7 Aug 2010 13:21:35 +0000
(13:21 +0000)
git-svn-id: http://zxing.googlecode.com/svn/trunk@1514
59b500cc
-1b3d-0410-9834-
0bbf25fbcc57
core/src/com/google/zxing/client/result/GeoParsedResult.java
patch
|
blob
|
history
core/src/com/google/zxing/client/result/GeoResultParser.java
patch
|
blob
|
history
core/test/src/com/google/zxing/client/result/GeoParsedResultTestCase.java
patch
|
blob
|
history
diff --git
a/core/src/com/google/zxing/client/result/GeoParsedResult.java
b/core/src/com/google/zxing/client/result/GeoParsedResult.java
index
947b9e8
..
dc50e8a
100644
(file)
--- a/
core/src/com/google/zxing/client/result/GeoParsedResult.java
+++ b/
core/src/com/google/zxing/client/result/GeoParsedResult.java
@@
-24,12
+24,14
@@
public final class GeoParsedResult extends ParsedResult {
private final double latitude;
private final double longitude;
private final double altitude;
private final double latitude;
private final double longitude;
private final double altitude;
+ private final String query;
- GeoParsedResult(double latitude, double longitude, double altitude) {
+ GeoParsedResult(double latitude, double longitude, double altitude
, String query
) {
super(ParsedResultType.GEO);
this.latitude = latitude;
this.longitude = longitude;
this.altitude = altitude;
super(ParsedResultType.GEO);
this.latitude = latitude;
this.longitude = longitude;
this.altitude = altitude;
+ this.query = query;
}
public String getGeoURI() {
}
public String getGeoURI() {
@@
-42,6
+44,10
@@
public final class GeoParsedResult extends ParsedResult {
result.append(',');
result.append(altitude);
}
result.append(',');
result.append(altitude);
}
+ if (query != null) {
+ result.append('?');
+ result.append(query);
+ }
return result.toString();
}
return result.toString();
}
@@
-66,8
+72,15
@@
public final class GeoParsedResult extends ParsedResult {
return altitude;
}
return altitude;
}
+ /**
+ * @return query string associated with geo URI or null if none exists
+ */
+ public String getQuery() {
+ return query;
+ }
+
public String getDisplayResult() {
public String getDisplayResult() {
- StringBuffer result = new StringBuffer();
+ StringBuffer result = new StringBuffer(
20
);
result.append(latitude);
result.append(", ");
result.append(longitude);
result.append(latitude);
result.append(", ");
result.append(longitude);
@@
-76,6
+89,11
@@
public final class GeoParsedResult extends ParsedResult {
result.append(altitude);
result.append('m');
}
result.append(altitude);
result.append('m');
}
+ if (query != null) {
+ result.append(" (");
+ result.append(query);
+ result.append(')');
+ }
return result.toString();
}
return result.toString();
}
diff --git
a/core/src/com/google/zxing/client/result/GeoResultParser.java
b/core/src/com/google/zxing/client/result/GeoResultParser.java
index
3d21bf3
..
8459ddc
100644
(file)
--- a/
core/src/com/google/zxing/client/result/GeoResultParser.java
+++ b/
core/src/com/google/zxing/client/result/GeoResultParser.java
@@
-38,7
+38,15
@@
final class GeoResultParser extends ResultParser {
}
// Drop geo, query portion
int queryStart = rawText.indexOf('?', 4);
}
// Drop geo, query portion
int queryStart = rawText.indexOf('?', 4);
- String geoURIWithoutQuery = queryStart < 0 ? rawText.substring(4) : rawText.substring(4, queryStart);
+ String query;
+ String geoURIWithoutQuery;
+ if (queryStart < 0) {
+ query = null;
+ geoURIWithoutQuery = rawText.substring(4);
+ } else {
+ query = rawText.substring(queryStart + 1);
+ geoURIWithoutQuery = rawText.substring(4, queryStart);
+ }
int latitudeEnd = geoURIWithoutQuery.indexOf(',');
if (latitudeEnd < 0) {
return null;
int latitudeEnd = geoURIWithoutQuery.indexOf(',');
if (latitudeEnd < 0) {
return null;
@@
-63,7
+71,7
@@
final class GeoResultParser extends ResultParser {
} catch (NumberFormatException nfe) {
return null;
}
} catch (NumberFormatException nfe) {
return null;
}
- return new GeoParsedResult(latitude, longitude, altitude);
+ return new GeoParsedResult(latitude, longitude, altitude
, query
);
}
}
\ No newline at end of file
}
}
\ No newline at end of file
diff --git
a/core/test/src/com/google/zxing/client/result/GeoParsedResultTestCase.java
b/core/test/src/com/google/zxing/client/result/GeoParsedResultTestCase.java
index
77c56cc
..
9ae2e76
100644
(file)
--- a/
core/test/src/com/google/zxing/client/result/GeoParsedResultTestCase.java
+++ b/
core/test/src/com/google/zxing/client/result/GeoParsedResultTestCase.java
@@
-28,12
+28,17
@@
import junit.framework.TestCase;
public final class GeoParsedResultTestCase extends TestCase {
public void testGeo() {
public final class GeoParsedResultTestCase extends TestCase {
public void testGeo() {
- doTest("geo:1,2", 1.0, 2.0, 0.0);
- doTest("geo:80.33,-32.3344,3.35", 80.33, -32.3344, 3.35);
- doTest("geo:-20.33,132.3344,0.01", -20.33, 132.3344, 0.01);
+ doTest("geo:1,2", 1.0, 2.0, 0.0, null);
+ doTest("geo:80.33,-32.3344,3.35", 80.33, -32.3344, 3.35, null);
+ doTest("geo:-20.33,132.3344,0.01", -20.33, 132.3344, 0.01, null);
+ doTest("geo:-20.33,132.3344,0.01?q=foobar", -20.33, 132.3344, 0.01, "q=foobar");
}
}
- private static void doTest(String contents, double latitude, double longitude, double altitude) {
+ private static void doTest(String contents,
+ double latitude,
+ double longitude,
+ double altitude,
+ String query) {
Result fakeResult = new Result(contents, null, null, BarcodeFormat.QR_CODE);
ParsedResult result = ResultParser.parseResult(fakeResult);
assertSame(ParsedResultType.GEO, result.getType());
Result fakeResult = new Result(contents, null, null, BarcodeFormat.QR_CODE);
ParsedResult result = ResultParser.parseResult(fakeResult);
assertSame(ParsedResultType.GEO, result.getType());