summaryrefslogtreecommitdiff
path: root/src/org/fox
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/fox')
-rw-r--r--src/org/fox/ttrss/ArticleFragment.java38
-rw-r--r--src/org/fox/ttrss/CommonActivity.java4
-rw-r--r--src/org/fox/ttrss/FeedsActivity.java8
-rw-r--r--src/org/fox/ttrss/OnlineActivity.java25
-rw-r--r--src/org/fox/ttrss/offline/OfflineArticleFragment.java34
-rw-r--r--src/org/fox/ttrss/offline/OfflineFeedsActivity.java13
6 files changed, 98 insertions, 24 deletions
diff --git a/src/org/fox/ttrss/ArticleFragment.java b/src/org/fox/ttrss/ArticleFragment.java
index d2b94b98..6f87d84d 100644
--- a/src/org/fox/ttrss/ArticleFragment.java
+++ b/src/org/fox/ttrss/ArticleFragment.java
@@ -1,5 +1,6 @@
package org.fox.ttrss;
+import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
@@ -29,6 +30,7 @@ import android.util.TypedValue;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.GestureDetector;
+import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
@@ -160,10 +162,30 @@ public class ArticleFragment extends Fragment {
}
}
- WebView web = (WebView)view.findViewById(R.id.content);
+ final WebView web = (WebView)view.findViewById(R.id.content);
if (web != null) {
- registerForContextMenu(web);
+
+ web.setOnLongClickListener(new View.OnLongClickListener() {
+ @Override
+ public boolean onLongClick(View v) {
+ HitTestResult result = ((WebView)v).getHitTestResult();
+
+ if (result != null && (result.getType() == HitTestResult.IMAGE_TYPE || result.getType() == HitTestResult.SRC_IMAGE_ANCHOR_TYPE)) {
+ registerForContextMenu(web);
+ m_activity.openContextMenu(web);
+ unregisterForContextMenu(web);
+ return true;
+ } else {
+ if (m_activity.isCompatMode()) {
+ KeyEvent shiftPressEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_SHIFT_LEFT, 0, 0);
+ shiftPressEvent.dispatch(web);
+ }
+
+ return false;
+ }
+ }
+ });
// prevent flicker in ics
if (!m_prefs.getBoolean("webview_hardware_accel", true) || useTitleWebView) {
@@ -232,18 +254,20 @@ public class ArticleFragment extends Fragment {
articleContent = doc.toString();
}
-
- String align = m_prefs.getBoolean("justify_article_text", true) ? "text-align : justify;" : "";
+
+ if (m_prefs.getBoolean("justify_article_text", true)) {
+ cssOverride += "body { text-align : justify; } ";
+ }
switch (Integer.parseInt(m_prefs.getString("font_size", "0"))) {
case 0:
- cssOverride += "body { "+align+" font-size : 14px; } ";
+ ws.setDefaultFontSize(13);
break;
case 1:
- cssOverride += "body { "+align+" font-size : 16px; } ";
+ ws.setDefaultFontSize(16);
break;
case 2:
- cssOverride += "body { "+align+" font-size : 20px; } ";
+ ws.setDefaultFontSize(18);
break;
}
diff --git a/src/org/fox/ttrss/CommonActivity.java b/src/org/fox/ttrss/CommonActivity.java
index ad15b0cc..a844df39 100644
--- a/src/org/fox/ttrss/CommonActivity.java
+++ b/src/org/fox/ttrss/CommonActivity.java
@@ -43,6 +43,10 @@ public class CommonActivity extends SherlockFragmentActivity {
public boolean getUnreadOnly() {
return m_prefs.getBoolean("show_unread_only", true);
}
+
+ public static boolean isAmazonDevice() {
+ return android.os.Build.MANUFACTURER.equals("Amazon");
+ }
public void setUnreadOnly(boolean unread) {
SharedPreferences.Editor editor = m_prefs.edit();
diff --git a/src/org/fox/ttrss/FeedsActivity.java b/src/org/fox/ttrss/FeedsActivity.java
index 242ca1cf..39b5f487 100644
--- a/src/org/fox/ttrss/FeedsActivity.java
+++ b/src/org/fox/ttrss/FeedsActivity.java
@@ -77,6 +77,8 @@ public class FeedsActivity extends OnlineActivity implements HeadlinesEventListe
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
m_actionbarUpEnabled = true;
m_feedIsSelected = true;
+
+ initMenu();
}
});
@@ -127,8 +129,10 @@ public class FeedsActivity extends OnlineActivity implements HeadlinesEventListe
ft.commit();
- AppRater.appLaunched(this);
- checkTrial(true);
+ if (!isAmazonDevice()) {
+ AppRater.appLaunched(this);
+ checkTrial(true);
+ }
} else { // savedInstanceState != null
m_actionbarUpEnabled = savedInstanceState.getBoolean("actionbarUpEnabled");
diff --git a/src/org/fox/ttrss/OnlineActivity.java b/src/org/fox/ttrss/OnlineActivity.java
index 241f54da..5704302d 100644
--- a/src/org/fox/ttrss/OnlineActivity.java
+++ b/src/org/fox/ttrss/OnlineActivity.java
@@ -173,7 +173,10 @@ public class OnlineActivity extends CommonActivity {
if (isOffline) {
switchOfflineSuccess();
} else {
- checkTrial(false);
+
+ if (!isAmazonDevice()) {
+ checkTrial(false);
+ }
/* if (getIntent().getExtras() != null) {
Intent i = getIntent();
@@ -1226,15 +1229,19 @@ public class OnlineActivity extends CommonActivity {
initMenu();
- List<PackageInfo> pkgs = getPackageManager()
- .getInstalledPackages(0);
-
- for (PackageInfo p : pkgs) {
- if ("org.fox.ttrss.key".equals(p.packageName)) {
- Log.d(TAG, "license apk found");
- menu.findItem(R.id.donate).setVisible(false);
- break;
+ if (!isAmazonDevice()) {
+ List<PackageInfo> pkgs = getPackageManager()
+ .getInstalledPackages(0);
+
+ for (PackageInfo p : pkgs) {
+ if ("org.fox.ttrss.key".equals(p.packageName)) {
+ Log.d(TAG, "license apk found");
+ menu.findItem(R.id.donate).setVisible(false);
+ break;
+ }
}
+ } else {
+ menu.findItem(R.id.donate).setVisible(false);
}
return true;
diff --git a/src/org/fox/ttrss/offline/OfflineArticleFragment.java b/src/org/fox/ttrss/offline/OfflineArticleFragment.java
index 248827cd..ad148257 100644
--- a/src/org/fox/ttrss/offline/OfflineArticleFragment.java
+++ b/src/org/fox/ttrss/offline/OfflineArticleFragment.java
@@ -30,6 +30,7 @@ import android.util.TypedValue;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.GestureDetector;
+import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.MotionEvent;
@@ -174,11 +175,30 @@ public class OfflineArticleFragment extends Fragment {
comments.setVisibility(View.GONE);
}
- WebView web = (WebView)view.findViewById(R.id.content);
+ final WebView web = (WebView)view.findViewById(R.id.content);
if (web != null) {
- registerForContextMenu(web);
+ web.setOnLongClickListener(new View.OnLongClickListener() {
+ @Override
+ public boolean onLongClick(View v) {
+ HitTestResult result = ((WebView)v).getHitTestResult();
+
+ if (result != null && (result.getType() == HitTestResult.IMAGE_TYPE || result.getType() == HitTestResult.SRC_IMAGE_ANCHOR_TYPE)) {
+ registerForContextMenu(web);
+ m_activity.openContextMenu(web);
+ unregisterForContextMenu(web);
+ return true;
+ } else {
+ if (m_activity.isCompatMode()) {
+ KeyEvent shiftPressEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_SHIFT_LEFT, 0, 0);
+ shiftPressEvent.dispatch(web);
+ }
+
+ return false;
+ }
+ }
+ });
web.setWebChromeClient(new WebChromeClient() {
@Override
@@ -260,17 +280,19 @@ public class OfflineArticleFragment extends Fragment {
articleContent = doc.toString();
}
- String align = m_prefs.getBoolean("justify_article_text", true) ? "text-align : justified" : "";
+ if (m_prefs.getBoolean("justify_article_text", true)) {
+ cssOverride += "body { text-align : justify; } ";
+ }
switch (Integer.parseInt(m_prefs.getString("font_size", "0"))) {
case 0:
- cssOverride += "body { "+align+"; font-size : 14px; } ";
+ ws.setDefaultFontSize(13);
break;
case 1:
- cssOverride += "body { "+align+"; font-size : 16px; } ";
+ ws.setDefaultFontSize(16);
break;
case 2:
- cssOverride += "body { "+align+"; font-size : 20px; } ";
+ ws.setDefaultFontSize(18);
break;
}
diff --git a/src/org/fox/ttrss/offline/OfflineFeedsActivity.java b/src/org/fox/ttrss/offline/OfflineFeedsActivity.java
index 694095dc..3d01530f 100644
--- a/src/org/fox/ttrss/offline/OfflineFeedsActivity.java
+++ b/src/org/fox/ttrss/offline/OfflineFeedsActivity.java
@@ -57,6 +57,19 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead
m_slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
m_slidingMenu.setSlidingEnabled(true);
m_slidingMenu.setMenu(R.layout.feeds);
+
+ m_slidingMenu.setOnClosedListener(new SlidingMenu.OnClosedListener() {
+
+ @Override
+ public void onClosed() {
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ m_actionbarUpEnabled = true;
+ m_feedIsSelected = true;
+
+ initMenu();
+ }
+ });
+
m_slidingMenu.setOnOpenedListener(new SlidingMenu.OnOpenedListener() {
@Override