From 4ac2b72796e32f0fffef5323d300c7297d79920c Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 25 Nov 2014 12:19:36 +0300 Subject: implement resizeable imageview for image pager --- .../org/fox/ttrss/ArticleImagesPagerActivity.java | 48 ++++++++++++++++++++-- 1 file changed, 45 insertions(+), 3 deletions(-) (limited to 'org.fox.ttrss/src/main/java/org') diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleImagesPagerActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleImagesPagerActivity.java index c90ea788..396defec 100644 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleImagesPagerActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleImagesPagerActivity.java @@ -11,11 +11,14 @@ import android.os.Bundle; import android.preference.PreferenceManager; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; +import android.support.v7.app.ActionBar; import android.util.Log; import android.view.ContextMenu; +import android.view.GestureDetector; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; +import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; @@ -38,7 +41,9 @@ import org.jsoup.select.Elements; import java.util.ArrayList; import java.util.List; -public class ArticleImagesPagerActivity extends CommonActivity { +import it.sephiroth.android.library.imagezoom.ImageViewTouch; + +public class ArticleImagesPagerActivity extends CommonActivity implements GestureDetector.OnDoubleTapListener { private final String TAG = this.getClass().getSimpleName(); private ArrayList m_urls; @@ -46,6 +51,30 @@ public class ArticleImagesPagerActivity extends CommonActivity { private String m_title; private ArticleImagesPagerAdapter m_adapter; private String m_content; + private GestureDetector m_detector; + + @Override + public boolean onSingleTapConfirmed(MotionEvent motionEvent) { + ActionBar bar = getSupportActionBar(); + + if (bar.isShowing()) { + bar.hide(); + } else { + bar.show(); + } + + return false; + } + + @Override + public boolean onDoubleTap(MotionEvent motionEvent) { + return false; + } + + @Override + public boolean onDoubleTapEvent(MotionEvent motionEvent) { + return false; + } private class ArticleImagesPagerAdapter extends PagerAdapter { private List m_urls; @@ -80,8 +109,21 @@ public class ArticleImagesPagerActivity extends CommonActivity { View view = inflater.inflate(R.layout.article_images_image, null); - ImageView imgView = (ImageView) view.findViewById(R.id.flavor_image); - //imgView.setOnClickListener(this); + m_detector = new GestureDetector(ArticleImagesPagerActivity.this, new GestureDetector.SimpleOnGestureListener()); + + m_detector.setOnDoubleTapListener(ArticleImagesPagerActivity.this); + + ImageViewTouch imgView = (ImageViewTouch) view.findViewById(R.id.flavor_image); + + imgView.setFitToScreen(true); + imgView.setFitToWidth(true); + + imgView.setOnTouchListener(new View.OnTouchListener() { + @Override + public boolean onTouch(View view, MotionEvent event) { + return m_detector.onTouchEvent(event); + } + }); registerForContextMenu(imgView); -- cgit v1.2.3 From ce635408a5c4ffa691c1df02c89569a76d6cea19 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 25 Nov 2014 12:31:25 +0300 Subject: fix scrolling in article images pager when images are zoomed remove statusbar tint library --- .../java/org/fox/ttrss/ArticleImagesPager.java | 39 ++++++++++++++++++++++ .../org/fox/ttrss/ArticleImagesPagerActivity.java | 3 -- .../main/java/org/fox/ttrss/CommonActivity.java | 22 ------------ .../src/main/java/org/fox/ttrss/FeedsActivity.java | 1 - .../main/java/org/fox/ttrss/HeadlinesActivity.java | 4 --- .../main/java/org/fox/ttrss/OnlineActivity.java | 2 -- .../fox/ttrss/offline/OfflineFeedsActivity.java | 1 - .../ttrss/offline/OfflineHeadlinesActivity.java | 1 - 8 files changed, 39 insertions(+), 34 deletions(-) create mode 100644 org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleImagesPager.java (limited to 'org.fox.ttrss/src/main/java/org') diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleImagesPager.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleImagesPager.java new file mode 100644 index 00000000..62522775 --- /dev/null +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleImagesPager.java @@ -0,0 +1,39 @@ +package org.fox.ttrss; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.MotionEvent; +import android.view.View; + +import it.sephiroth.android.library.imagezoom.ImageViewTouch; + +public class ArticleImagesPager extends android.support.v4.view.ViewPager { + public ArticleImagesPager(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) { + if (v instanceof ImageViewTouch) { + ImageViewTouch ivt = (ImageViewTouch) v; + try { + return ivt.canScroll(dx); + } catch (NullPointerException e) { + // bad image, etc + return false; + } + } else { + return super.canScroll(v, checkV, dx, x, y); + } + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + return super.onTouchEvent(event); + } + + @Override + public boolean onInterceptTouchEvent(MotionEvent event) { + return super.onInterceptTouchEvent(event); + } +} \ No newline at end of file diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleImagesPagerActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleImagesPagerActivity.java index 396defec..39d5b790 100644 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleImagesPagerActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleImagesPagerActivity.java @@ -23,7 +23,6 @@ import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.FrameLayout; -import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; @@ -238,8 +237,6 @@ public class ArticleImagesPagerActivity extends CommonActivity implements Gestur setContentView(R.layout.article_images_pager); - setStatusBarTint(); - getSupportActionBar().setDisplayHomeAsUpEnabled(true); if (savedInstanceState == null) { diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java index ccb94ef5..c67353a7 100644 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java @@ -9,14 +9,10 @@ import android.os.Bundle; import android.preference.PreferenceManager; import android.support.v7.app.ActionBarActivity; import android.util.Log; -import android.util.TypedValue; import android.view.Display; import android.view.KeyEvent; -import android.view.WindowManager; import android.widget.Toast; -import com.readystatesoftware.systembartint.SystemBarTintManager; - import org.fox.ttrss.util.DatabaseHelper; public class CommonActivity extends ActionBarActivity { @@ -155,24 +151,6 @@ public class CommonActivity extends ActionBarActivity { return Math.round((float)dp * density); } - public void setStatusBarTint() { - if (android.os.Build.VERSION.SDK_INT == android.os.Build.VERSION_CODES.KITKAT && - !m_prefs.getBoolean("full_screen_mode", false)) { - - getWindow().setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, - WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); - - SystemBarTintManager tintManager = new SystemBarTintManager(this); - // enable status bar tint - tintManager.setStatusBarTintEnabled(true); - - TypedValue tv = new TypedValue(); - getTheme().resolveAttribute(R.attr.statusBarHintColor, tv, true); - - tintManager.setStatusBarTintColor(tv.data); - } - } - @Override public void onSaveInstanceState(Bundle out) { super.onSaveInstanceState(out); diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsActivity.java index 416eebc1..8fd503a1 100644 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsActivity.java @@ -55,7 +55,6 @@ public class FeedsActivity extends OnlineActivity implements HeadlinesEventListe setContentView(R.layout.headlines); - setStatusBarTint(); setSmallScreen(findViewById(R.id.sw600dp_anchor) == null); GlobalState.getInstance().load(savedInstanceState); diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesActivity.java index 7975c2db..e82feb64 100644 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesActivity.java @@ -7,11 +7,8 @@ import android.os.Bundle; import android.os.Handler; import android.preference.PreferenceManager; import android.support.v4.app.FragmentTransaction; -import android.support.v4.widget.DrawerLayout; -import android.support.v7.app.ActionBarDrawerToggle; import android.util.Log; import android.view.MenuItem; -import android.view.View; import org.fox.ttrss.types.Article; import org.fox.ttrss.types.ArticleList; @@ -37,7 +34,6 @@ public class HeadlinesActivity extends OnlineActivity implements HeadlinesEventL getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeButtonEnabled(true); - setStatusBarTint(); setSmallScreen(findViewById(R.id.sw600dp_anchor) == null); GlobalState.getInstance().load(savedInstanceState); diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java index 15bbf51f..dddefa6d 100644 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java @@ -165,8 +165,6 @@ public class OnlineActivity extends CommonActivity { setContentView(R.layout.login); - setStatusBarTint(); - ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext()) .diskCache( new LimitedAgeDiscCache(new File(StorageUtils.getCacheDirectory(getApplicationContext()), "article-images"), diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedsActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedsActivity.java index 5e08f515..83b0843f 100644 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedsActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedsActivity.java @@ -46,7 +46,6 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead setContentView(R.layout.headlines); - setStatusBarTint(); setSmallScreen(findViewById(R.id.sw600dp_anchor) == null); GlobalState.getInstance().load(savedInstanceState); diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesActivity.java index 51cfefeb..ed8ee518 100644 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesActivity.java @@ -67,7 +67,6 @@ public class OfflineHeadlinesActivity extends OfflineActivity implements Offline getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeButtonEnabled(true); - setStatusBarTint(); setSmallScreen(findViewById(R.id.sw600dp_anchor) == null); /* if (isPortrait() || m_prefs.getBoolean("headlines_hide_sidebar", false)) { -- cgit v1.2.3 From 40c88ee240924ebb894c2f48e685b2ea9fbe0a32 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 25 Nov 2014 12:32:32 +0300 Subject: remove dim status bar preference --- .../java/org/fox/ttrss/ArticleImagesPagerActivity.java | 4 ---- .../src/main/java/org/fox/ttrss/ArticlePager.java | 10 +--------- .../java/org/fox/ttrss/offline/OfflineArticlePager.java | 14 +++++--------- 3 files changed, 6 insertions(+), 22 deletions(-) (limited to 'org.fox.ttrss/src/main/java/org') diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleImagesPagerActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleImagesPagerActivity.java index 39d5b790..cfcbc584 100644 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleImagesPagerActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleImagesPagerActivity.java @@ -280,10 +280,6 @@ public class ArticleImagesPagerActivity extends CommonActivity implements Gestur public void onResume() { super.onResume(); - /* if (isCompatMode() && m_prefs.getBoolean("dim_status_bar", false)) { - setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE); - } */ - if (m_prefs.getBoolean("full_screen_mode", false)) { getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java index 3015eec0..6ddff8d9 100644 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java @@ -52,10 +52,6 @@ public class ArticlePager extends Fragment { ArticleFragment af = new ArticleFragment(); af.initialize(article); - if (m_prefs.getBoolean("dim_status_bar", false) && getView() != null && !m_activity.isCompatMode()) { - getView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE); - } - return af; } return null; @@ -280,11 +276,7 @@ public class ArticlePager extends Fragment { } m_activity.invalidateOptionsMenu(); - - if (!m_activity.isCompatMode() && m_prefs.getBoolean("dim_status_bar", false)) { - getView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE); - } - + if (m_prefs.getBoolean("full_screen_mode", false)) { m_activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticlePager.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticlePager.java index 510ab97b..f58205a3 100644 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticlePager.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticlePager.java @@ -1,9 +1,5 @@ package org.fox.ttrss.offline; -import org.fox.ttrss.R; - -import com.viewpagerindicator.UnderlinePageIndicator; - import android.app.Activity; import android.content.SharedPreferences; import android.database.Cursor; @@ -20,6 +16,10 @@ import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; +import com.viewpagerindicator.UnderlinePageIndicator; + +import org.fox.ttrss.R; + public class OfflineArticlePager extends Fragment { private final String TAG = this.getClass().getSimpleName(); @@ -118,11 +118,7 @@ public class OfflineArticlePager extends Fragment { @Override public void onResume() { super.onResume(); - - if (!m_activity.isCompatMode() && m_prefs.getBoolean("dim_status_bar", false)) { - getView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE); - } - + if (m_prefs.getBoolean("full_screen_mode", false)) { m_activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); -- cgit v1.2.3