aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Doan <andy.doan@linaro.org>2011-10-24 20:05:14 -0500
committerAndy Doan <andy.doan@linaro.org>2011-10-24 23:38:13 -0500
commit2d56eba50455cbfc86904bd006329cac78ca49b3 (patch)
tree0abf59c2c72caba373ea9e219ee14c3f428b7294
parente804159fe154ff0f9383fd61e5e83074cb4d164c (diff)
downloadLinaroConnect-2d56eba50455cbfc86904bd006329cac78ca49b3.tar.gz
allow multi-level main screen
you can now pass a link to a second activity which will allow you to drill down on a topic
-rw-r--r--AndroidManifest.xml5
-rw-r--r--src/org/linaro/connect/LinaroConnectActivity.java20
2 files changed, 22 insertions, 3 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 79252c1..80484f7 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -13,6 +13,11 @@
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
+ <intent-filter>
+ <action android:name="org.linaro.connect.LAYOUT" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:scheme="http"/>
+ </intent-filter>
</activity>
<activity android:name=".ImagesListActivity"
android:label="@string/app_name">
diff --git a/src/org/linaro/connect/LinaroConnectActivity.java b/src/org/linaro/connect/LinaroConnectActivity.java
index fb87a82..f1dbe2b 100644
--- a/src/org/linaro/connect/LinaroConnectActivity.java
+++ b/src/org/linaro/connect/LinaroConnectActivity.java
@@ -31,8 +31,19 @@ public class LinaroConnectActivity extends Activity {
LinaroConnect.initializeCache(ctx);
+ String url = getIntent().getDataString();
+ int resid = 0;
+ if( url == null ) {
+ url = LAYOUT_URL;
+ resid = R.raw.connect_layout;
+ }
+
+ String lbl = getIntent().getStringExtra(JSONLayoutItem.INTENT_LABEL);
+ if( lbl != null )
+ setTitle(getTitle() + " - " + lbl);
+
ListView lv = (ListView) findViewById(R.id.connect_items);
- mAdapter = new JSONLayoutAdapter(ctx, LAYOUT_URL);
+ mAdapter = new JSONLayoutAdapter(ctx, url, resid);
lv.setAdapter(mAdapter);
lv.setOnItemClickListener(mClickListener);
}
@@ -47,17 +58,20 @@ public class LinaroConnectActivity extends Activity {
private final static long INTERVAL = 1000*60*30; //check every 30 minutes
- public JSONLayoutAdapter(Context ctx, String url) {
+ public JSONLayoutAdapter(Context ctx, String url, int resid) {
super(ctx, R.layout.connect_item, R.id.connect_item_label);
setRefreshInterval(INTERVAL);
setJSONUrl(url);
- setCacheResourceId(R.raw.connect_layout);
+ setCacheResourceId(resid);
}
@Override
protected void updateLayout(JSONObject jso) {
clear();
+ if(jso == null)
+ return;
+
try {
JSONArray links = jso.getJSONArray("links");
for(int i = 0; i < links.length() && !links.isNull(i); i++)