summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2014-11-08 00:57:08 +0400
committerAndrew Dolgov <[email protected]>2014-11-08 00:57:08 +0400
commita509415720d059d59d35d83750c78d25b35256cb (patch)
treef001be37b249a4a02bfc9b13d64218fe75522aa9
parente7ed44307cffca0f0c7dabf4de0c8872f057e392 (diff)
add fab button to article fragment
-rw-r--r--org.fox.ttrss/build.gradle1
-rw-r--r--org.fox.ttrss/org.fox.ttrss.iml1
-rw-r--r--org.fox.ttrss/src/main/AndroidManifest.xml4
-rw-r--r--org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java28
-rw-r--r--org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticleFragment.java33
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_web_site.pngbin0 -> 1154 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_web_site.pngbin0 -> 1532 bytes
-rw-r--r--org.fox.ttrss/src/main/res/layout/article_fragment.xml13
-rw-r--r--org.fox.ttrss/src/main/res/values/style.xml6
9 files changed, 77 insertions, 9 deletions
diff --git a/org.fox.ttrss/build.gradle b/org.fox.ttrss/build.gradle
index f2952775..4cc22613 100644
--- a/org.fox.ttrss/build.gradle
+++ b/org.fox.ttrss/build.gradle
@@ -33,4 +33,5 @@ dependencies {
compile 'com.android.support:support-v4:21.0.0'
compile 'com.google.code.gson:gson:2.2.4'
compile 'com.android.support:appcompat-v7:21.0.0'
+ compile 'com.shamanland:fab:0.0.5'
}
diff --git a/org.fox.ttrss/org.fox.ttrss.iml b/org.fox.ttrss/org.fox.ttrss.iml
index 2f2a4b69..5506e1af 100644
--- a/org.fox.ttrss/org.fox.ttrss.iml
+++ b/org.fox.ttrss/org.fox.ttrss.iml
@@ -82,6 +82,7 @@
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" name="cardview-v7-21.0.0" level="project" />
<orderEntry type="library" exported="" name="support-annotations-21.0.0" level="project" />
+ <orderEntry type="library" exported="" name="fab-0.0.5" level="project" />
<orderEntry type="library" exported="" name="support-v4-21.0.0" level="project" />
<orderEntry type="library" exported="" name="dashclock-api-r1.1" level="project" />
<orderEntry type="library" exported="" name="systembartint-1.0.3" level="project" />
diff --git a/org.fox.ttrss/src/main/AndroidManifest.xml b/org.fox.ttrss/src/main/AndroidManifest.xml
index a5817e4b..d215d256 100644
--- a/org.fox.ttrss/src/main/AndroidManifest.xml
+++ b/org.fox.ttrss/src/main/AndroidManifest.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.fox.ttrss"
- android:versionCode="273"
- android:versionName="1.66" >
+ android:versionCode="274"
+ android:versionName="1.67" >
<uses-sdk
android:minSdkVersion="9"
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java
index e4205f24..6a371c19 100644
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java
@@ -23,6 +23,8 @@ import android.webkit.WebView;
import android.webkit.WebView.HitTestResult;
import android.widget.TextView;
+import com.shamanland.fab.ShowHideOnScroll;
+
import org.fox.ttrss.types.Article;
import org.fox.ttrss.types.Attachment;
import org.fox.ttrss.util.TypefaceCache;
@@ -93,7 +95,31 @@ public class ArticleFragment extends Fragment {
View view = inflater.inflate(useTitleWebView ? R.layout.article_fragment_compat : R.layout.article_fragment, container, false);
if (m_article != null) {
-
+
+ View scrollView = view.findViewById(R.id.article_scrollview);
+ View fab = view.findViewById(R.id.article_fab);
+
+ if (scrollView != null && fab != null) {
+ scrollView.setOnTouchListener(new ShowHideOnScroll(fab));
+
+ fab.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ try {
+ URL url = new URL(m_article.link.trim());
+ String uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(),
+ url.getPort(), url.getPath(), url.getQuery(), url.getRef()).toString();
+ Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
+ startActivity(intent);
+ } catch (Exception e) {
+ e.printStackTrace();
+ m_activity.toast(R.string.error_other_error);
+ }
+ }
+ });
+ }
+
+
/* if (!useTitleWebView) {
View scroll = view.findViewById(R.id.article_scrollview);
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticleFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticleFragment.java
index 37e5b17d..b20c23f0 100644
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticleFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticleFragment.java
@@ -27,6 +27,8 @@ import android.webkit.WebView;
import android.webkit.WebView.HitTestResult;
import android.widget.TextView;
+import com.shamanland.fab.ShowHideOnScroll;
+
import org.fox.ttrss.CommonActivity;
import org.fox.ttrss.R;
import org.fox.ttrss.util.ImageCacheService;
@@ -133,8 +135,33 @@ public class OfflineArticleFragment extends Fragment {
m_cursor.moveToFirst();
if (m_cursor.isFirst()) {
+ final String link = m_cursor.getString(m_cursor.getColumnIndex("link"));
+
if (!useTitleWebView) {
- View scroll = view.findViewById(R.id.article_scrollview);
+ View scrollView = view.findViewById(R.id.article_scrollview);
+ View fab = view.findViewById(R.id.article_fab);
+
+ if (scrollView != null && fab != null) {
+ scrollView.setOnTouchListener(new ShowHideOnScroll(fab));
+
+ fab.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ try {
+ URL url = new URL(link.trim());
+ String uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(),
+ url.getPort(), url.getPath(), url.getQuery(), url.getRef()).toString();
+ Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
+ startActivity(intent);
+ } catch (Exception e) {
+ e.printStackTrace();
+ m_activity.toast(R.string.error_other_error);
+ }
+ }
+ });
+ }
+
+ /* View scroll = view.findViewById(R.id.article_scrollview);
if (scroll != null) {
final float scale = getResources().getDisplayMetrics().density;
@@ -152,7 +179,7 @@ public class OfflineArticleFragment extends Fragment {
}
- }
+ } */
}
int articleFontSize = Integer.parseInt(m_prefs.getString("article_font_size_sp", "16"));
@@ -160,8 +187,6 @@ public class OfflineArticleFragment extends Fragment {
TextView title = (TextView)view.findViewById(R.id.title);
- final String link = m_cursor.getString(m_cursor.getColumnIndex("link"));
-
if (title != null) {
if (m_prefs.getBoolean("enable_condensed_fonts", false)) {
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_web_site.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_web_site.png
new file mode 100644
index 00000000..8c4add42
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_web_site.png
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_web_site.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_web_site.png
new file mode 100644
index 00000000..2d759def
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_web_site.png
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/layout/article_fragment.xml b/org.fox.ttrss/src/main/res/layout/article_fragment.xml
index 2f1b4498..45d41f72 100644
--- a/org.fox.ttrss/src/main/res/layout/article_fragment.xml
+++ b/org.fox.ttrss/src/main/res/layout/article_fragment.xml
@@ -1,4 +1,4 @@
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/article_fragment"
android:layout_width="fill_parent"
android:layout_height="match_parent"
@@ -101,5 +101,14 @@
</LinearLayout>
</org.fox.ttrss.util.NoChildFocusScrollView>
+ <com.shamanland.fab.FloatingActionButton
+ android:id="@+id/article_fab"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="bottom|right"
+ android:layout_marginRight="16dp"
+ android:layout_marginBottom="20dp"
+ android:src="@drawable/ic_action_web_site"
+ />
-</RelativeLayout> \ No newline at end of file
+</FrameLayout> \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/values/style.xml b/org.fox.ttrss/src/main/res/values/style.xml
index 4dc4db9f..41e913e1 100644
--- a/org.fox.ttrss/src/main/res/values/style.xml
+++ b/org.fox.ttrss/src/main/res/values/style.xml
@@ -30,6 +30,7 @@
<item name="parentBtnBackground">#dddddd</item>
<item name="articleHeader">?colorPrimaryDark</item>
<item name="articleHeaderTextColor">@android:color/white</item>
+ <item name="floatingActionButtonStyle">@style/FabTheme</item>
<item name="colorPrimary">#6482af</item>
<item name="colorPrimaryDark">#526A8E</item>
@@ -79,6 +80,7 @@
<item name="headlineSelectedSecondaryTextColor">#a0a0a0</item>
<item name="articleHeader">?colorPrimaryDark</item>
<item name="articleHeaderTextColor">@android:color/white</item>
+ <item name="floatingActionButtonStyle">@style/FabTheme</item>
<item name="colorPrimary">#51698E</item>
<item name="colorPrimaryDark">#445877</item>
@@ -87,4 +89,8 @@
<style name="DarkDialogTheme" parent="android:Theme"></style>
+ <style name="FabTheme" parent="FloatingActionButton">
+ <item name="floatingActionButtonColor">?colorPrimaryDark</item>
+ </style>
+
</resources> \ No newline at end of file