diff options
author | Andy Doan <andy.doan@linaro.org> | 2011-10-24 20:05:14 -0500 |
---|---|---|
committer | Andy Doan <andy.doan@linaro.org> | 2011-10-24 23:38:13 -0500 |
commit | 2d56eba50455cbfc86904bd006329cac78ca49b3 (patch) | |
tree | 0abf59c2c72caba373ea9e219ee14c3f428b7294 | |
parent | e804159fe154ff0f9383fd61e5e83074cb4d164c (diff) | |
download | LinaroConnect-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.xml | 5 | ||||
-rw-r--r-- | src/org/linaro/connect/LinaroConnectActivity.java | 20 |
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++) |