From 022f48de8b01ca1e3ac3f5a3e7feb31e65289780 Mon Sep 17 00:00:00 2001 From: Robert Kolner Date: Wed, 14 Sep 2011 20:40:16 +0200 Subject: [PATCH] Reorganized gui code to maximize code reusage - added BaseDnsActivity which is an abstract class which all Activities extend. As of now it contains code that handles footer buttons and starts other activities. --- AndroidManifest.xml | 3 +- res/layout/event_list.xml | 2 +- res/layout/join_us.xml | 29 +++++++++++++++ res/layout/main.xml | 13 ------- .../app/ui/BaseDnsActivity.java | 25 +++++++++++++ .../app/ui/DnsActivity.java | 37 +------------------ .../app/ui/JoinUsActivity.java | 12 ++++++ ...gramList.java => ProgramListActivity.java} | 11 +++--- 8 files changed, 75 insertions(+), 57 deletions(-) create mode 100644 res/layout/join_us.xml create mode 100644 src/com/studentersamfundet/app/ui/BaseDnsActivity.java create mode 100644 src/com/studentersamfundet/app/ui/JoinUsActivity.java rename src/com/studentersamfundet/app/ui/{ProgramList.java => ProgramListActivity.java} (92%) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index ede6283..12ae1f0 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -15,7 +15,8 @@ - + + \ No newline at end of file diff --git a/res/layout/event_list.xml b/res/layout/event_list.xml index 7ff0cf6..0aa13c8 100644 --- a/res/layout/event_list.xml +++ b/res/layout/event_list.xml @@ -18,7 +18,7 @@ android:layout_alignParentBottom="true" /> - + + + + + + + + + + + + \ No newline at end of file diff --git a/res/layout/main.xml b/res/layout/main.xml index 3c2e3f4..80e69ed 100644 --- a/res/layout/main.xml +++ b/res/layout/main.xml @@ -4,7 +4,6 @@ @@ -24,17 +23,5 @@ android:layout_below="@id/header" android:layout_above="@id/footer" android:src="@drawable/partest" /> - - - \ No newline at end of file diff --git a/src/com/studentersamfundet/app/ui/BaseDnsActivity.java b/src/com/studentersamfundet/app/ui/BaseDnsActivity.java new file mode 100644 index 0000000..670863e --- /dev/null +++ b/src/com/studentersamfundet/app/ui/BaseDnsActivity.java @@ -0,0 +1,25 @@ +package com.studentersamfundet.app.ui; + +import com.studentersamfundet.app.R; + +import android.app.Activity; +import android.content.Intent; +import android.view.View; + +public abstract class BaseDnsActivity extends Activity { + public void clickHandler(View v) { + Intent intent = new Intent(); + intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION + | Intent.FLAG_ACTIVITY_NO_HISTORY + | Intent.FLAG_ACTIVITY_SINGLE_TOP); + + if (v.getId() == R.id.program_button) { + intent.setClass(this, ProgramListActivity.class); + startActivity(intent); + + } else if (v.getId() == R.id.bli_med_button) { + intent.setClass(this, JoinUsActivity.class); + startActivity(intent); + } + } +} diff --git a/src/com/studentersamfundet/app/ui/DnsActivity.java b/src/com/studentersamfundet/app/ui/DnsActivity.java index 75bc0d4..b2f87e2 100644 --- a/src/com/studentersamfundet/app/ui/DnsActivity.java +++ b/src/com/studentersamfundet/app/ui/DnsActivity.java @@ -1,50 +1,15 @@ package com.studentersamfundet.app.ui; -import android.app.Activity; -import android.content.Intent; import android.os.Bundle; -import android.view.View; -import android.widget.ImageView; import com.studentersamfundet.app.R; -public class DnsActivity extends Activity { +public class DnsActivity extends BaseDnsActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); - - View tmp = this.findViewById(R.id.join_us_textview); - tmp.setVisibility(View.INVISIBLE); - } - - public void clickHandler(View v) { - if (v.getId() == R.id.program_button) { - startActivity(new Intent(this, ProgramList.class)); - } else if (v.getId() == R.id.bli_med_button) { - View j = this.findViewById(R.id.bli_med_button); - ImageView p = (ImageView)this.findViewById(R.id.paragraph); - View t = this.findViewById(R.id.join_us_textview); - - j.setClickable(false); - p.setVisibility(View.INVISIBLE); - t.setVisibility(View.VISIBLE); - } - } - - @Override - public void onBackPressed () { - View t = this.findViewById(R.id.join_us_textview); - if (t.getVisibility() == View.VISIBLE) { - View j = this.findViewById(R.id.bli_med_button); - ImageView p = (ImageView)this.findViewById(R.id.paragraph); - j.setClickable(true); - t.setVisibility(View.INVISIBLE); - p.setVisibility(View.VISIBLE); - } else { - finish(); - } } } \ No newline at end of file diff --git a/src/com/studentersamfundet/app/ui/JoinUsActivity.java b/src/com/studentersamfundet/app/ui/JoinUsActivity.java new file mode 100644 index 0000000..30c6b4d --- /dev/null +++ b/src/com/studentersamfundet/app/ui/JoinUsActivity.java @@ -0,0 +1,12 @@ +package com.studentersamfundet.app.ui; + +import android.os.Bundle; + +import com.studentersamfundet.app.R; + +public class JoinUsActivity extends BaseDnsActivity { + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.join_us); + } +} diff --git a/src/com/studentersamfundet/app/ui/ProgramList.java b/src/com/studentersamfundet/app/ui/ProgramListActivity.java similarity index 92% rename from src/com/studentersamfundet/app/ui/ProgramList.java rename to src/com/studentersamfundet/app/ui/ProgramListActivity.java index d731d74..f78416a 100644 --- a/src/com/studentersamfundet/app/ui/ProgramList.java +++ b/src/com/studentersamfundet/app/ui/ProgramListActivity.java @@ -2,13 +2,13 @@ package com.studentersamfundet.app.ui; import org.w3c.dom.NodeList; -import android.app.ListActivity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ListAdapter; +import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; @@ -19,7 +19,7 @@ import com.studentersamfundet.app.R; import com.studentersamfundet.app.Utils; import com.studentersamfundet.app.XmlParser; -public class ProgramList extends ListActivity { +public class ProgramListActivity extends BaseDnsActivity { public static final String feedURL = "http://folk.uio.no/larsjeng/test.xml"; public static final String localURL = "/data/com.studentersamfundet.app/files/dns_events"; public static FeedFetcher feed = new FeedFetcher(); @@ -31,9 +31,6 @@ public class ProgramList extends ListActivity { super.onCreate(savedInstanceState); setContentView(R.layout.event_list); - View v = this.findViewById(R.id.program_button); - v.setClickable(false); - // Do we have intarwebs? // YAY = Fetch the feed. // NAY = Inform about no connection. @@ -48,8 +45,10 @@ public class ProgramList extends ListActivity { toast.show(); } + ListView list = (ListView)findViewById(R.id.event_list); + ListAdapter adapter = createAdapter(); - setListAdapter(adapter); + list.setAdapter(adapter); } protected ListAdapter createAdapter() {