diff --git a/res/layout/article_fragment.xml b/res/layout/article_fragment.xml
index de8caed0..48b597de 100644
--- a/res/layout/article_fragment.xml
+++ b/res/layout/article_fragment.xml
@@ -7,10 +7,10 @@
android:layout_weight="1"
android:layout_height="match_parent" android:orientation="vertical">
-
-
+
+
-
+
diff --git a/res/layout/feeds_fragment.xml b/res/layout/feeds_fragment.xml
index 0dcbc1c4..32f2d229 100644
--- a/res/layout/feeds_fragment.xml
+++ b/res/layout/feeds_fragment.xml
@@ -6,6 +6,6 @@
-
+
diff --git a/res/layout/feeds_row.xml b/res/layout/feeds_row.xml
index 08eafd32..8ef8bbac 100644
--- a/res/layout/feeds_row.xml
+++ b/res/layout/feeds_row.xml
@@ -10,7 +10,7 @@
android:layout_weight="1"
android:layout_gravity="center_vertical"
android:paddingLeft="6dip"
- android:text="{FEED}" android:layout_width="wrap_content" android:textSize="21dp"/>
+ android:text="{FEED}" android:layout_width="wrap_content" android:textSize="18dip"/>
+ android:text="{123}" android:textSize="13dip"/>
\ No newline at end of file
diff --git a/res/layout/feeds_row_selected.xml b/res/layout/feeds_row_selected.xml
index 7ee526f7..a694119b 100644
--- a/res/layout/feeds_row_selected.xml
+++ b/res/layout/feeds_row_selected.xml
@@ -11,7 +11,7 @@
android:layout_weight="1"
android:layout_gravity="center_vertical"
android:paddingLeft="6dip"
- android:text="{FEED}" android:layout_width="wrap_content" android:textSize="21dp"/>
+ android:text="{FEED}" android:layout_width="wrap_content" android:textSize="18dip"/>
+ android:text="{123}" android:textSize="13dip"/>
\ No newline at end of file
diff --git a/res/layout/headlines_row.xml b/res/layout/headlines_row.xml
index 69a94a04..79de6413 100644
--- a/res/layout/headlines_row.xml
+++ b/res/layout/headlines_row.xml
@@ -12,10 +12,10 @@
-
-
+
+
\ No newline at end of file
diff --git a/res/layout/headlines_row_selected.xml b/res/layout/headlines_row_selected.xml
index ff755483..92740519 100644
--- a/res/layout/headlines_row_selected.xml
+++ b/res/layout/headlines_row_selected.xml
@@ -14,11 +14,11 @@
-
-
+
+
\ No newline at end of file
diff --git a/res/layout/headlines_row_unread.xml b/res/layout/headlines_row_unread.xml
index f6fef283..12d089eb 100644
--- a/res/layout/headlines_row_unread.xml
+++ b/res/layout/headlines_row_unread.xml
@@ -15,10 +15,10 @@
-
-
+
+
\ No newline at end of file
diff --git a/res/menu/login_menu.xml b/res/menu/login_menu.xml
deleted file mode 100644
index 0c244247..00000000
--- a/res/menu/login_menu.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
diff --git a/res/menu/main_menu.xml b/res/menu/main_menu.xml
index a4dcb9f3..57b6a65d 100644
--- a/res/menu/main_menu.xml
+++ b/res/menu/main_menu.xml
@@ -7,17 +7,20 @@
android:title="@string/login"
android:showAsAction="ifRoom|withText"/>
-
-
+
+
+
+
+
+
+
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 5947deb9..ca217315 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -29,5 +29,5 @@
Show unread feeds
Show all feeds
Update
-
+ Close article
diff --git a/res/values/style.xml b/res/values/style.xml
index ba524ccc..f931d5cb 100644
--- a/res/values/style.xml
+++ b/res/values/style.xml
@@ -5,7 +5,7 @@
- #0000ff
- #ffffff
- #96c5ff
- - #ffffff
+ - @android:color/transparent
- #fff7d5
- #ffffff
- #96C5FF
@@ -20,7 +20,7 @@
- #0000ff
- #000000
- #303030
- - #101010
+ - @android:color/transparent
- #303060
- #303030
- #303060
diff --git a/src/org/fox/ttrss/ApiRequest.java b/src/org/fox/ttrss/ApiRequest.java
index 5e06d682..5678b1fc 100644
--- a/src/org/fox/ttrss/ApiRequest.java
+++ b/src/org/fox/ttrss/ApiRequest.java
@@ -15,7 +15,6 @@ import android.util.Log;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
public class ApiRequest extends AsyncTask, Integer, JsonElement> {
diff --git a/src/org/fox/ttrss/ArticleFragment.java b/src/org/fox/ttrss/ArticleFragment.java
index ed90041b..7e1d528f 100644
--- a/src/org/fox/ttrss/ArticleFragment.java
+++ b/src/org/fox/ttrss/ArticleFragment.java
@@ -4,22 +4,21 @@ import java.net.URLEncoder;
import android.app.Activity;
import android.app.Fragment;
-import android.app.FragmentTransaction;
import android.content.SharedPreferences;
import android.os.Bundle;
+import android.text.Html;
+import android.text.method.LinkMovementMethod;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
-import android.widget.Button;
import android.widget.TextView;
-public class ArticleFragment extends Fragment implements View.OnClickListener {
+public class ArticleFragment extends Fragment {
private final String TAG = this.getClass().getSimpleName();
protected SharedPreferences m_prefs;
- //private int m_articleId;
private String m_sessionId;
private Article m_article;
@@ -38,7 +37,8 @@ public class ArticleFragment extends Fragment implements View.OnClickListener {
TextView title = (TextView)view.findViewById(R.id.title);
if (title != null) {
- title.setText(m_article.title);
+ title.setText(Html.fromHtml("" + m_article.title + ""));
+ title.setMovementMethod(LinkMovementMethod.getInstance());
}
WebView web = (WebView)view.findViewById(R.id.content);
@@ -46,6 +46,7 @@ public class ArticleFragment extends Fragment implements View.OnClickListener {
if (web != null) {
// this is ridiculous
+ // TODO white on black style for dark theme
String content = URLEncoder.encode("" +
"" +
"" + m_article.content + "").replace('+', ' ');
@@ -53,11 +54,6 @@ public class ArticleFragment extends Fragment implements View.OnClickListener {
web.loadData(content, "text/html", "utf-8");
}
- Button btn = (Button)view.findViewById(R.id.close_button);
-
- if (btn != null) {
- btn.setOnClickListener(this);
- }
}
return view;
@@ -86,11 +82,4 @@ public class ArticleFragment extends Fragment implements View.OnClickListener {
//m_prefs = PreferenceManager.getDefaultSharedPreferences(activity.getApplicationContext());
}
-
- @Override
- public void onClick(View v) {
- getActivity().findViewById(R.id.article_fragment).setVisibility(View.GONE);
- getActivity().findViewById(R.id.feeds_fragment).setVisibility(View.VISIBLE);
- }
-
}
diff --git a/src/org/fox/ttrss/FeedsFragment.java b/src/org/fox/ttrss/FeedsFragment.java
index 35c5a490..7d7863f3 100644
--- a/src/org/fox/ttrss/FeedsFragment.java
+++ b/src/org/fox/ttrss/FeedsFragment.java
@@ -12,11 +12,9 @@ import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
-import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
diff --git a/src/org/fox/ttrss/HeadlinesFragment.java b/src/org/fox/ttrss/HeadlinesFragment.java
index e1928d52..65cf2c6f 100644
--- a/src/org/fox/ttrss/HeadlinesFragment.java
+++ b/src/org/fox/ttrss/HeadlinesFragment.java
@@ -19,6 +19,7 @@ import android.preference.PreferenceManager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
+import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
@@ -26,6 +27,7 @@ import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
+import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
@@ -279,13 +281,29 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener {
v = vi.inflate(layoutId, null);
}
- TextView tt = (TextView) v.findViewById(R.id.title);
+ TextView tt = (TextView)v.findViewById(R.id.title);
if (tt != null) {
tt.setText(article.title);
}
- TextView te = (TextView) v.findViewById(R.id.excerpt);
+ ImageView marked = (ImageView)v.findViewById(R.id.marked);
+
+ if (marked != null) {
+ marked.setImageResource(article.marked ? android.R.drawable.star_on : android.R.drawable.star_off);
+
+ marked.setOnClickListener(new OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ Log.d(TAG, "Marked image clicked " + v + " / " + article.id + "/" + article.marked);
+ article.marked = !article.marked;
+ m_adapter.notifyDataSetChanged();
+ }
+ });
+ }
+
+ TextView te = (TextView)v.findViewById(R.id.excerpt);
if (te != null) {
String excerpt = Jsoup.parse(article.content).text();
diff --git a/src/org/fox/ttrss/MainActivity.java b/src/org/fox/ttrss/MainActivity.java
index 9c0e789b..8ef91d39 100644
--- a/src/org/fox/ttrss/MainActivity.java
+++ b/src/org/fox/ttrss/MainActivity.java
@@ -191,6 +191,9 @@ public class MainActivity extends Activity implements FeedsFragment.OnFeedSelect
case R.id.login:
login();
return true;
+ case R.id.close_article:
+ closeArticle();
+ return true;
case R.id.show_feeds:
if (getUnreadOnly()) {
item.setTitle(R.string.menu_unread_feeds);
@@ -205,6 +208,16 @@ public class MainActivity extends Activity implements FeedsFragment.OnFeedSelect
}
}
+ public void closeArticle() {
+ findViewById(R.id.article_fragment).setVisibility(View.GONE);
+ findViewById(R.id.feeds_fragment).setVisibility(View.VISIBLE);
+
+ if (m_menu != null)
+ m_menu.findItem(R.id.close_article).setVisible(false);
+
+ m_selectedArticle = null;
+ }
+
private class LoginRequest extends ApiRequest {
protected void onPostExecute(JsonElement result) {
@@ -316,6 +329,9 @@ public class MainActivity extends Activity implements FeedsFragment.OnFeedSelect
findViewById(R.id.feeds_fragment).setVisibility(View.GONE);
findViewById(R.id.article_fragment).setVisibility(View.VISIBLE);
+ if (m_menu != null)
+ m_menu.findItem(R.id.close_article).setVisible(true);
+
}
public Feed getActiveFeed() {
@@ -327,9 +343,11 @@ public class MainActivity extends Activity implements FeedsFragment.OnFeedSelect
findViewById(R.id.main).setVisibility(View.INVISIBLE);
if (m_menu != null) {
+ m_menu.findItem(R.id.login).setVisible(true);
m_menu.findItem(R.id.logout).setVisible(false);
m_menu.findItem(R.id.update).setVisible(false);
m_menu.findItem(R.id.show_feeds).setVisible(false);
+ m_menu.findItem(R.id.close_article).setVisible(false);
}
if (m_refreshTask != null) {