From 9133326dac3fa116cf13fb7b4b8f266bb0646f27 Mon Sep 17 00:00:00 2001 From: zjywill Date: Wed, 18 Jun 2014 17:33:45 +0800 Subject: [PATCH] add diable news function --- res/menu/main.xml | 7 +++++ res/values-zh-rCN/strings.xml | 2 +- res/values/strings.xml | 1 + src/com/comic/chhreader/MainActivity.java | 30 +++++++++++++++++-- .../gallery/CenterCorssFadeView.java | 15 +++++++--- .../chhreader/gallery/GalleryRootView.java | 8 +++++ .../utils/SharedPreferencesUtils.java | 12 ++++++++ 7 files changed, 68 insertions(+), 7 deletions(-) diff --git a/res/menu/main.xml b/res/menu/main.xml index e38956d..a31e086 100644 --- a/res/menu/main.xml +++ b/res/menu/main.xml @@ -12,5 +12,12 @@ android:showAsAction="never" android:checkable="true" android:title="@string/no_image_mode"/> + + \ No newline at end of file diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index e3fdef8..3ae0c94 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -24,5 +24,5 @@ 保存到印象笔记… 保存到印象笔记成功 保存到印象笔记失败 - + 不显示新闻 \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index 4f56f0b..4b7bc61 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -24,5 +24,6 @@ Save to Evernote… Note saved to Evernote Fail to save to Evernote + Not show News \ No newline at end of file diff --git a/src/com/comic/chhreader/MainActivity.java b/src/com/comic/chhreader/MainActivity.java index 8cda34d..d31e7d8 100644 --- a/src/com/comic/chhreader/MainActivity.java +++ b/src/com/comic/chhreader/MainActivity.java @@ -64,6 +64,7 @@ public class MainActivity extends Activity implements OnItemClickListener, Loade private boolean updating = false; private boolean mNoImage = true; + private boolean mNoNews = false; private List mENews = new ArrayList(); @@ -94,6 +95,8 @@ protected void onCreate(Bundle savedInstanceState) { mNoImage = false; } + mNoNews = SharedPreferencesUtils.getNoNewsMode(mContext); + mGirdAdapter.setNoImage(mNoImage); mGrid.setAdapter(mGirdAdapter); @@ -109,7 +112,14 @@ public void onAnimationEnd(Animator animation) { mScrollView.setVisibility(View.VISIBLE); } }); - new FetchNewsTaskLocal().execute(); + + mGalleryRootView.setNoImage(mNoImage); + if (mNoNews) { + mGalleryRootView.setVisibility(View.GONE); + } else { + new FetchNewsTaskLocal().execute(); + } + getLoaderManager().initLoader(LOADER_ID_LOACL, null, this); if (Utils.isWifiAvailable(mContext) && !updating) { @@ -143,6 +153,8 @@ public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); MenuItem no_image = menu.findItem(R.id.action_no_image); no_image.setChecked(SharedPreferencesUtils.getNoImageMode(mContext)); + MenuItem no_news = menu.findItem(R.id.action_no_news); + no_news.setChecked(SharedPreferencesUtils.getNoNewsMode(mContext)); return true; } @@ -151,7 +163,7 @@ public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_do_refresh: { Loge.i("Options Selected = do_refresh"); - if (!updating){ + if (!updating) { new FetchDataTaskNet().execute(); new FetchNewsTaskNet().execute(); } @@ -165,6 +177,19 @@ public boolean onOptionsItemSelected(MenuItem item) { SharedPreferencesUtils.saveNoImageMode(mContext, !state); } break; + case R.id.action_no_news: { + boolean state = SharedPreferencesUtils.getNoNewsMode(mContext); + item.setChecked(!state); + SharedPreferencesUtils.saveNoNewsMode(mContext, !state); + mNoNews = !state; + if (mNoNews) { + mGalleryRootView.setVisibility(View.GONE); + } else { + mGalleryRootView.setVisibility(View.VISIBLE); + new FetchNewsTaskLocal().execute(); + } + } + break; default: break; } @@ -192,6 +217,7 @@ protected void onResume() { } else { mNoImage = false; } + mGalleryRootView.setNoImage(mNoImage); if (mGirdAdapter != null) { mGirdAdapter.setNoImage(mNoImage); new Handler().postDelayed(new Runnable() { diff --git a/src/com/comic/chhreader/gallery/CenterCorssFadeView.java b/src/com/comic/chhreader/gallery/CenterCorssFadeView.java index 9483818..a53302a 100644 --- a/src/com/comic/chhreader/gallery/CenterCorssFadeView.java +++ b/src/com/comic/chhreader/gallery/CenterCorssFadeView.java @@ -28,21 +28,27 @@ public class CenterCorssFadeView extends FrameLayout { private Drawable mLogoDrawable; - public CenterCorssFadeView(Context context, GalleryRootView rootView, - int pagecount) { + private boolean mNoImage = true; + + public CenterCorssFadeView(Context context, GalleryRootView rootView, int pagecount) { super(context); mPageCount = pagecount; mRootView = rootView; initView(); } + public void setNoImage(boolean noImage) { + mNoImage = noImage; + } + private void initView() { mLogoDrawable = getContext().getResources().getDrawable(R.drawable.feedlogo); if (mCenterLayoutList == null) { mCenterLayoutList = new ArrayList(mPageCount); } - FrameLayout.LayoutParams centerParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT); + FrameLayout.LayoutParams centerParams = new FrameLayout.LayoutParams( + FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT); for (int i = 0; i < 5; i++) { PhotoView view = new PhotoView(getContext()); @@ -84,7 +90,8 @@ public void invalidate() { String imageUrl = mRootView.mENews.get(i).imageurl; Loge.d("CenterCorssFadeView invalidate: " + imageUrl); try { - mCenterLayoutList.get(i).setImageURL(new URL(imageUrl), true, true, true, mLogoDrawable); + mCenterLayoutList.get(i).setImageURL(new URL(imageUrl), true, true, !mNoImage, + mLogoDrawable); } catch (MalformedURLException e) { e.printStackTrace(); } diff --git a/src/com/comic/chhreader/gallery/GalleryRootView.java b/src/com/comic/chhreader/gallery/GalleryRootView.java index bda882e..2ee23d4 100644 --- a/src/com/comic/chhreader/gallery/GalleryRootView.java +++ b/src/com/comic/chhreader/gallery/GalleryRootView.java @@ -99,6 +99,13 @@ public void setNews(List eNews) { mCenterCorssFadeView.invalidate(); } } + + public void setNoImage(boolean noImage){ + if (mCenterCorssFadeView != null) { + mCenterCorssFadeView.setNoImage(noImage); + mCenterCorssFadeView.invalidate(); + } + } @Override public boolean onTouchEvent(MotionEvent event) { @@ -274,4 +281,5 @@ public boolean onSingleTapUp(MotionEvent e) { } } + } diff --git a/src/com/comic/chhreader/utils/SharedPreferencesUtils.java b/src/com/comic/chhreader/utils/SharedPreferencesUtils.java index e5635d1..a528de5 100644 --- a/src/com/comic/chhreader/utils/SharedPreferencesUtils.java +++ b/src/com/comic/chhreader/utils/SharedPreferencesUtils.java @@ -31,5 +31,17 @@ public static boolean getNoImageMode(Context context) { SharedPreferences pref = context.getSharedPreferences(PREFERENCES_NAME, Context.MODE_APPEND); return pref.getBoolean("noimagemode", true); } + + public static void saveNoNewsMode(Context context, boolean check) { + SharedPreferences pref = context.getSharedPreferences(PREFERENCES_NAME, Context.MODE_APPEND); + Editor editor = pref.edit(); + editor.putBoolean("nonewsmode", check); + editor.commit(); + } + + public static boolean getNoNewsMode(Context context) { + SharedPreferences pref = context.getSharedPreferences(PREFERENCES_NAME, Context.MODE_APPEND); + return pref.getBoolean("nonewsmode", false); + } }