diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 96c1c9b..de239e8 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -18,6 +18,7 @@ + diff --git a/res/layout/news_view.xml b/res/layout/news_view.xml new file mode 100644 index 0000000..dfaa979 --- /dev/null +++ b/res/layout/news_view.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + diff --git a/src/com/studentersamfundet/app/News.java b/src/com/studentersamfundet/app/News.java index ee32772..a78aef6 100644 --- a/src/com/studentersamfundet/app/News.java +++ b/src/com/studentersamfundet/app/News.java @@ -8,11 +8,11 @@ import java.util.Date; public class News implements Serializable { private static final long serialVersionUID = 4015441794784305793L; - public String title; - public String description; - public String content; - public String link; - public Date pubDate; + private String title; + private String description; + private String content; + private String link; + private Date pubDate; private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -28,4 +28,24 @@ public class News implements Serializable { this.pubDate = null; } } + + public String getTitle() { + return this.title; + } + + public String getDescription() { + return this.description; + } + + public String getContent() { + return this.content; + } + + public String getLink() { + return this.link; + } + + public Date getPubDate() { + return this.pubDate; + } } diff --git a/src/com/studentersamfundet/app/ui/NewsViewActivity.java b/src/com/studentersamfundet/app/ui/NewsViewActivity.java new file mode 100644 index 0000000..9e5a474 --- /dev/null +++ b/src/com/studentersamfundet/app/ui/NewsViewActivity.java @@ -0,0 +1,53 @@ +package com.studentersamfundet.app.ui; + +import java.text.SimpleDateFormat; + +import android.content.Intent; +import android.os.Bundle; +import android.text.Html; +import android.text.util.Linkify; +import android.widget.TextView; +import com.studentersamfundet.app.News; +import com.studentersamfundet.app.R; + +public class NewsViewActivity extends BaseDnsActivity { + News article; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.news_view); + + Intent intent = getIntent(); + this.article = (News)intent.getSerializableExtra("news"); + final News a = this.article; + + if (a == null) { + throw new Error("This should NEVER happen"); + } + + TextView title = (TextView) findViewById(R.id.news_view_title); + TextView description = (TextView) findViewById(R.id.news_view_description); + TextView datetime = (TextView) findViewById(R.id.news_view_datetime); + + title.setText(Html.fromHtml(a.getTitle())); + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + datetime.setText(a.getPubDate() != null ? dateFormat.format(a.getPubDate()) : ""); + + StringBuilder sb = new StringBuilder(); + + if (a.getDescription().length() > 0) { + sb.append(""); + sb.append(a.getDescription()); + sb.append("

"); + } + + if (a.getContent().length() > 0) { + sb.append(a.getContent()); + } + + description.setText(Html.fromHtml(sb.toString())); + Linkify.addLinks(description, Linkify.ALL); + } +} diff --git a/src/com/studentersamfundet/app/ui/lists/NewsListActivity.java b/src/com/studentersamfundet/app/ui/lists/NewsListActivity.java index 65e316c..79bfbd1 100644 --- a/src/com/studentersamfundet/app/ui/lists/NewsListActivity.java +++ b/src/com/studentersamfundet/app/ui/lists/NewsListActivity.java @@ -4,10 +4,13 @@ import java.text.SimpleDateFormat; import com.studentersamfundet.app.News; import com.studentersamfundet.app.R; +import com.studentersamfundet.app.ui.NewsViewActivity; +import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; +import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ListAdapter; @@ -45,17 +48,26 @@ public class NewsListActivity extends BaseListActivity { row = (ViewGroup)convertView; } - News article = news[position]; + final News article = news[position]; TextView title = (TextView)row.findViewById(R.id.news_list_row_title); TextView description = (TextView)row.findViewById(R.id.news_list_row_desc); TextView footer = (TextView)row.findViewById(R.id.news_list_row_byline); - title.setText(article.title); - description.setText(article.description); + title.setText(article.getTitle()); + description.setText(article.getDescription()); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm, d. MMMM y"); - footer.setText(sdf.format(article.pubDate)); + footer.setText(sdf.format(article.getPubDate())); + + row.setOnClickListener(new OnClickListener() { + public void onClick(View v) { + Intent intent = new Intent(NewsListActivity.this, NewsViewActivity.class); + intent.putExtra("news", article); + + startActivity(intent); + } + }); return row; }