diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/org/fox/ttrss/ArticleFragment.java | 38 | ||||
| -rw-r--r-- | src/org/fox/ttrss/CommonActivity.java | 4 | ||||
| -rw-r--r-- | src/org/fox/ttrss/FeedsActivity.java | 8 | ||||
| -rw-r--r-- | src/org/fox/ttrss/OnlineActivity.java | 25 | ||||
| -rw-r--r-- | src/org/fox/ttrss/offline/OfflineArticleFragment.java | 34 | ||||
| -rw-r--r-- | src/org/fox/ttrss/offline/OfflineFeedsActivity.java | 13 |
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 |