code cleanup, use separate menu for offline mode, start implementing

menu actions
This commit is contained in:
Andrew Dolgov 2011-12-06 09:03:55 +03:00
parent d1cb963452
commit 72a8b558e6
7 changed files with 275 additions and 67 deletions

View File

@ -1,12 +1,5 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/go_online"
android:icon="@drawable/ic_menu_cloud"
android:showAsAction="ifRoom|withText"
android:title="@string/go_online"
android:visible="false"/>
<group android:id="@+id/menu_group_logged_in" > <group android:id="@+id/menu_group_logged_in" >
<item <item

115
res/menu/offline_menu.xml Normal file
View File

@ -0,0 +1,115 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<group android:id="@+id/menu_group_feeds" >
<item
android:id="@+id/go_online"
android:icon="@drawable/ic_menu_cloud"
android:showAsAction="ifRoom|withText"
android:title="@string/go_online"
android:visible="false"/>
<item
android:id="@+id/back_to_categories"
android:icon="@android:drawable/ic_menu_close_clear_cancel"
android:showAsAction="ifRoom|withText"
android:title="@string/back_to_categories"/>
<item
android:id="@+id/show_feeds"
android:icon="@android:drawable/ic_menu_agenda"
android:showAsAction=""
android:title="@string/menu_all_feeds"/>
<item
android:id="@+id/logout"
android:icon="@drawable/ic_menu_exit"
android:showAsAction=""
android:title="@string/logout"/>
</group>
<group android:id="@+id/menu_group_headlines" >
<item
android:id="@+id/headlines_mark_as_read"
android:icon="@drawable/ic_menu_tick"
android:title="@string/headlines_mark_as_read"/>
<item
android:id="@+id/headlines_select"
android:icon="@drawable/ic_menu_database"
android:title="@string/headlines_select"/>
</group>
<group android:id="@+id/menu_group_headlines_selection" >
<item
android:id="@+id/selection_toggle_unread"
android:icon="@android:drawable/ic_menu_rotate"
android:showAsAction=""
android:title="@string/selection_toggle_unread"/>
<item
android:id="@+id/selection_toggle_marked"
android:icon="@drawable/ic_menu_marked"
android:showAsAction=""
android:title="@string/selection_toggle_marked"/>
<item
android:id="@+id/selection_toggle_published"
android:icon="@drawable/ic_menu_rss"
android:showAsAction=""
android:title="@string/selection_toggle_published"/>
<item
android:id="@+id/selection_select_none"
android:icon="@android:drawable/ic_menu_close_clear_cancel"
android:showAsAction=""
android:title="@string/selection_select_none"/>
</group>
<group android:id="@+id/menu_group_article" >
<item
android:id="@+id/share_article"
android:icon="@android:drawable/ic_menu_share"
android:showAsAction="ifRoom"
android:title="@string/share_article"/>
<item
android:id="@+id/toggle_marked"
android:icon="@drawable/ic_menu_marked"
android:showAsAction=""
android:title="@string/article_toggle_marked"/>
<item
android:id="@+id/toggle_published"
android:icon="@drawable/ic_menu_rss"
android:showAsAction=""
android:title="@string/article_toggle_published"/>
<item
android:id="@+id/set_unread"
android:icon="@android:drawable/ic_menu_recent_history"
android:showAsAction=""
android:title="@string/article_set_unread"/>
<item
android:id="@+id/close_article"
android:icon="@android:drawable/ic_menu_close_clear_cancel"
android:showAsAction="ifRoom"
android:title="@string/close_article"/>
<item
android:id="@+id/catchup_above"
android:icon="@drawable/ic_menu_tick"
android:title="@string/article_mark_read_above"/>
</group>
<item
android:id="@+id/preferences"
android:icon="@android:drawable/ic_menu_preferences"
android:showAsAction=""
android:title="@string/preferences"/>
</menu>

View File

@ -696,10 +696,7 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(MenuItem item) {
HeadlinesFragment hf = null; final HeadlinesFragment hf = (HeadlinesFragment)getSupportFragmentManager().findFragmentById(R.id.headlines_fragment);
if (m_sessionId != null)
hf = (HeadlinesFragment)getSupportFragmentManager().findFragmentById(R.id.headlines_fragment);
switch (item.getItemId()) { switch (item.getItemId()) {
case R.id.preferences: case R.id.preferences:
@ -732,7 +729,6 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe
return true; return true;
case R.id.headlines_select: case R.id.headlines_select:
if (hf != null) { if (hf != null) {
final HeadlinesFragment fhf = hf;
Dialog dialog = new Dialog(this); Dialog dialog = new Dialog(this);
AlertDialog.Builder builder = new AlertDialog.Builder(this); AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(R.string.headlines_select_dialog); builder.setTitle(R.string.headlines_select_dialog);
@ -743,13 +739,13 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
switch (which) { switch (which) {
case 0: case 0:
fhf.setSelection(HeadlinesFragment.ArticlesSelection.ALL); hf.setSelection(HeadlinesFragment.ArticlesSelection.ALL);
break; break;
case 1: case 1:
fhf.setSelection(HeadlinesFragment.ArticlesSelection.UNREAD); hf.setSelection(HeadlinesFragment.ArticlesSelection.UNREAD);
break; break;
case 2: case 2:
fhf.setSelection(HeadlinesFragment.ArticlesSelection.NONE); hf.setSelection(HeadlinesFragment.ArticlesSelection.NONE);
break; break;
} }
dialog.cancel(); dialog.cancel();
@ -1014,13 +1010,13 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe
m_menu.setGroupVisible(R.id.menu_group_article, false); m_menu.setGroupVisible(R.id.menu_group_article, false);
m_menu.setGroupVisible(R.id.menu_group_headlines_selection, false); m_menu.setGroupVisible(R.id.menu_group_headlines_selection, false);
if (m_isOffline) { /* if (m_isOffline) {
m_menu.setGroupVisible(R.id.menu_group_logged_out, false); m_menu.setGroupVisible(R.id.menu_group_logged_out, false);
m_menu.findItem(R.id.go_online).setVisible(true); m_menu.findItem(R.id.go_online).setVisible(true);
} else { } else { */
m_menu.setGroupVisible(R.id.menu_group_logged_out, true); m_menu.setGroupVisible(R.id.menu_group_logged_out, true);
} //}
} }
} }
} }

View File

@ -13,6 +13,7 @@ import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.pm.PackageInfo; import android.content.pm.PackageInfo;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteStatement; import android.database.sqlite.SQLiteStatement;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
@ -51,8 +52,8 @@ public class OfflineActivity extends FragmentActivity {
private boolean m_compatMode = false; private boolean m_compatMode = false;
private boolean m_enableCats = false; private boolean m_enableCats = false;
private int m_activeOfflineFeedId = 0; private int m_activeFeedId = 0;
private int m_selectedOfflineArticleId = 0; private int m_selectedArticleId = 0;
private SQLiteDatabase m_readableDb; private SQLiteDatabase m_readableDb;
private SQLiteDatabase m_writableDb; private SQLiteDatabase m_writableDb;
@ -82,8 +83,8 @@ public class OfflineActivity extends FragmentActivity {
if (savedInstanceState != null) { if (savedInstanceState != null) {
m_unreadOnly = savedInstanceState.getBoolean("unreadOnly"); m_unreadOnly = savedInstanceState.getBoolean("unreadOnly");
m_unreadArticlesOnly = savedInstanceState.getBoolean("unreadArticlesOnly"); m_unreadArticlesOnly = savedInstanceState.getBoolean("unreadArticlesOnly");
m_activeOfflineFeedId = savedInstanceState.getInt("offlineActiveFeedId"); m_activeFeedId = savedInstanceState.getInt("offlineActiveFeedId");
m_selectedOfflineArticleId = savedInstanceState.getInt("offlineArticleId"); m_selectedArticleId = savedInstanceState.getInt("offlineArticleId");
} }
m_enableCats = m_prefs.getBoolean("enable_cats", false); m_enableCats = m_prefs.getBoolean("enable_cats", false);
@ -119,7 +120,7 @@ public class OfflineActivity extends FragmentActivity {
findViewById(R.id.loading_container).setVisibility(View.INVISIBLE); findViewById(R.id.loading_container).setVisibility(View.INVISIBLE);
findViewById(R.id.main).setVisibility(View.VISIBLE); findViewById(R.id.main).setVisibility(View.VISIBLE);
if (m_activeOfflineFeedId == 0) { if (m_activeFeedId == 0) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
OfflineFeedsFragment frag = new OfflineFeedsFragment(); OfflineFeedsFragment frag = new OfflineFeedsFragment();
ft.replace(R.id.feeds_fragment, frag); ft.replace(R.id.feeds_fragment, frag);
@ -154,7 +155,7 @@ public class OfflineActivity extends FragmentActivity {
} }
public int getActiveOfflineFeedId() { public int getActiveOfflineFeedId() {
return m_activeOfflineFeedId; return m_activeFeedId;
} }
public void setLoadingStatus(int status, boolean showProgress) { public void setLoadingStatus(int status, boolean showProgress) {
@ -177,8 +178,23 @@ public class OfflineActivity extends FragmentActivity {
out.putBoolean("unreadOnly", m_unreadOnly); out.putBoolean("unreadOnly", m_unreadOnly);
out.putBoolean("unreadArticlesOnly", m_unreadArticlesOnly); out.putBoolean("unreadArticlesOnly", m_unreadArticlesOnly);
out.putInt("offlineActiveFeedId", m_activeOfflineFeedId); out.putInt("offlineActiveFeedId", m_activeFeedId);
out.putInt("offlineArticleId", m_selectedOfflineArticleId); out.putInt("offlineArticleId", m_selectedArticleId);
}
public void setUnreadOnly(boolean unread) {
m_unreadOnly = unread;
refreshFeeds();
/*if (!m_enableCats || m_activeCategory != null )
refreshFeeds();
else
refreshCategories(); */
}
public boolean getUnreadOnly() {
return m_unreadOnly;
} }
@Override @Override
@ -198,7 +214,7 @@ public class OfflineActivity extends FragmentActivity {
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater(); MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu); inflater.inflate(R.menu.offline_menu, menu);
m_menu = menu; m_menu = menu;
@ -206,11 +222,11 @@ public class OfflineActivity extends FragmentActivity {
MenuItem item = menu.findItem(R.id.show_feeds); MenuItem item = menu.findItem(R.id.show_feeds);
/* if (getUnreadOnly()) { if (getUnreadOnly()) {
item.setTitle(R.string.menu_all_feeds); item.setTitle(R.string.menu_all_feeds);
} else { } else {
item.setTitle(R.string.menu_unread_feeds); item.setTitle(R.string.menu_unread_feeds);
} */ }
return true; return true;
} }
@ -228,9 +244,9 @@ public class OfflineActivity extends FragmentActivity {
if (keyCode == KeyEvent.KEYCODE_BACK) { if (keyCode == KeyEvent.KEYCODE_BACK) {
if (m_smallScreenMode) { if (m_smallScreenMode) {
if (m_selectedOfflineArticleId != 0) { if (m_selectedArticleId != 0) {
closeArticle(); closeArticle();
} else if (m_activeOfflineFeedId != 0) { } else if (m_activeFeedId != 0) {
if (m_compatMode) { if (m_compatMode) {
findViewById(R.id.main).setAnimation(AnimationUtils.loadAnimation(this, R.anim.slide_right)); findViewById(R.id.main).setAnimation(AnimationUtils.loadAnimation(this, R.anim.slide_right));
} }
@ -244,14 +260,14 @@ public class OfflineActivity extends FragmentActivity {
findViewById(R.id.headlines_fragment).setVisibility(View.GONE); findViewById(R.id.headlines_fragment).setVisibility(View.GONE);
findViewById(R.id.feeds_fragment).setVisibility(View.VISIBLE); findViewById(R.id.feeds_fragment).setVisibility(View.VISIBLE);
//} //}
m_activeOfflineFeedId = 0; m_activeFeedId = 0;
initMainMenu(); initMainMenu();
} else { } else {
finish(); finish();
} }
} else { } else {
if (m_selectedOfflineArticleId != 0) { if (m_selectedArticleId != 0) {
closeArticle(); closeArticle();
} else { } else {
finish(); finish();
@ -263,7 +279,33 @@ public class OfflineActivity extends FragmentActivity {
return super.onKeyDown(keyCode, event); return super.onKeyDown(keyCode, event);
} }
@SuppressWarnings("unchecked") public Cursor getArticleById(int articleId) {
Cursor c = getReadableDb().query("articles", null, BaseColumns._ID + "=?",
new String[] { String.valueOf(articleId) }, null, null, null);
c.moveToFirst();
return c;
}
public void shareArticle(int articleId) {
Cursor article = getArticleById(articleId);
if (article.isFirst()) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, article.getString(article.getColumnIndex("title")));
intent.putExtra(Intent.EXTRA_TEXT, article.getString(article.getColumnIndex("link")));
startActivity(Intent.createChooser(intent, getString(R.id.share_article)));
}
article.close();
}
@Override @Override
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) { switch (item.getItemId()) {
@ -273,6 +315,19 @@ public class OfflineActivity extends FragmentActivity {
return true; return true;
case R.id.go_online: case R.id.go_online:
switchOnline(); switchOnline();
return true;
case R.id.share_article:
shareArticle(m_selectedArticleId);
return true;
case R.id.show_feeds:
setUnreadOnly(!getUnreadOnly());
if (getUnreadOnly()) {
item.setTitle(R.string.menu_all_feeds);
} else {
item.setTitle(R.string.menu_unread_feeds);
}
return true; return true;
default: default:
Log.d(TAG, "onOptionsItemSelected, unhandled id=" + item.getItemId()); Log.d(TAG, "onOptionsItemSelected, unhandled id=" + item.getItemId());
@ -281,7 +336,11 @@ public class OfflineActivity extends FragmentActivity {
} }
public void refreshFeeds() { public void refreshFeeds() {
// TODO OfflineFeedsFragment frag = (OfflineFeedsFragment)getSupportFragmentManager().findFragmentById(R.id.feeds_fragment);
if (frag != null) {
frag.refresh();
}
} }
private void closeArticle() { private void closeArticle() {
@ -297,7 +356,7 @@ public class OfflineActivity extends FragmentActivity {
} }
m_selectedOfflineArticleId = 0; m_selectedArticleId = 0;
initMainMenu(); initMainMenu();
refreshFeeds(); refreshFeeds();
@ -306,13 +365,57 @@ public class OfflineActivity extends FragmentActivity {
public void initMainMenu() { public void initMainMenu() {
if (m_menu != null) { if (m_menu != null) {
m_menu.setGroupVisible(R.id.menu_group_logged_in, false);
m_menu.setGroupVisible(R.id.menu_group_feeds, false); m_menu.setGroupVisible(R.id.menu_group_feeds, false);
m_menu.setGroupVisible(R.id.menu_group_headlines, false); m_menu.setGroupVisible(R.id.menu_group_headlines, false);
m_menu.setGroupVisible(R.id.menu_group_article, false); m_menu.setGroupVisible(R.id.menu_group_article, false);
m_menu.setGroupVisible(R.id.menu_group_headlines_selection, false); m_menu.setGroupVisible(R.id.menu_group_headlines_selection, false);
if (m_selectedArticleId != 0) {
m_menu.setGroupVisible(R.id.menu_group_article, true);
m_menu.setGroupVisible(R.id.menu_group_feeds, false);
if (m_smallScreenMode) {
m_menu.setGroupVisible(R.id.menu_group_headlines, false);
m_menu.setGroupVisible(R.id.menu_group_headlines_selection, false);
} else {
m_menu.setGroupVisible(R.id.menu_group_headlines, true);
}
} else {
if (m_activeFeedId != 0) {
OfflineHeadlinesFragment hf = (OfflineHeadlinesFragment)getSupportFragmentManager().findFragmentById(R.id.headlines_fragment);
if (hf != null) {
int numSelected = hf.getSelectedArticles().size();
if (numSelected != 0) {
m_menu.setGroupVisible(R.id.menu_group_headlines, false);
m_menu.setGroupVisible(R.id.menu_group_headlines_selection, true);
} else {
m_menu.setGroupVisible(R.id.menu_group_headlines, true);
m_menu.setGroupVisible(R.id.menu_group_headlines_selection, false);
}
} else {
m_menu.setGroupVisible(R.id.menu_group_headlines, true);
m_menu.setGroupVisible(R.id.menu_group_headlines_selection, false);
}
m_menu.setGroupVisible(R.id.menu_group_feeds, false);
} else {
m_menu.setGroupVisible(R.id.menu_group_feeds, true);
}
m_menu.setGroupVisible(R.id.menu_group_logged_out, false); if (!m_smallScreenMode || m_activeFeedId == 0) {
m_menu.findItem(R.id.show_feeds).setVisible(true);
}
//m_menu.findItem(R.id.back_to_categories).setVisible(m_activeCategory != null);
m_menu.findItem(R.id.back_to_categories).setVisible(false);
}
m_menu.findItem(R.id.go_online).setVisible(true); m_menu.findItem(R.id.go_online).setVisible(true);
} }
} }
@ -403,8 +506,8 @@ public class OfflineActivity extends FragmentActivity {
} }
} */ } */
public void offlineViewFeed(int feedId) { public void viewFeed(int feedId) {
m_activeOfflineFeedId = feedId; m_activeFeedId = feedId;
initMainMenu(); initMainMenu();
@ -420,8 +523,8 @@ public class OfflineActivity extends FragmentActivity {
} }
public void openOfflineArticle(int articleId, int compatAnimation) { public void openArticle(int articleId, int compatAnimation) {
m_selectedOfflineArticleId = articleId; m_selectedArticleId = articleId;
initMainMenu(); initMainMenu();
@ -456,7 +559,7 @@ public class OfflineActivity extends FragmentActivity {
} }
public int getSelectedOfflineArticleId() { public int getSelectedArticleId() {
return m_selectedOfflineArticleId; return m_selectedArticleId;
} }
} }

View File

@ -205,7 +205,7 @@ public class OfflineArticleFragment extends Fragment implements OnClickListener
m_prefs = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext()); m_prefs = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext());
m_articleId = ((OfflineActivity)activity).getSelectedOfflineArticleId(); m_articleId = ((OfflineActivity)activity).getSelectedArticleId();
/* m_articleOps = (ArticleOps)activity; /* m_articleOps = (ArticleOps)activity;
m_article = m_articleOps.getSelectedArticle(); m_article = m_articleOps.getSelectedArticle();

View File

@ -54,14 +54,18 @@ public class OfflineFeedsFragment extends Fragment implements OnItemClickListene
} }
public Cursor createCursor() { public Cursor createCursor() {
if (m_cursor != null) m_cursor.close(); String unreadOnly = ((OfflineActivity)getActivity()).getUnreadOnly() ? "unread > 0" : null;
return ((OfflineActivity)getActivity()).getReadableDb().query("feeds_unread", return ((OfflineActivity)getActivity()).getReadableDb().query("feeds_unread",
null, null, null, null, null, "title"); null, unreadOnly, null, null, null, "title");
} }
public void refresh() { public void refresh() {
m_adapter.changeCursor(createCursor()); if (m_cursor != null) m_cursor.close();
m_cursor = createCursor();
m_adapter.changeCursor(m_cursor);
m_adapter.notifyDataSetChanged(); m_adapter.notifyDataSetChanged();
} }
@ -127,7 +131,7 @@ public class OfflineFeedsFragment extends Fragment implements OnItemClickListene
int feedId = (int) cursor.getLong(0); int feedId = (int) cursor.getLong(0);
Log.d(TAG, "clicked on feed " + feedId); Log.d(TAG, "clicked on feed " + feedId);
((OfflineActivity)getActivity()).offlineViewFeed(feedId); ((OfflineActivity)getActivity()).viewFeed(feedId);
m_selectedFeedId = feedId; m_selectedFeedId = feedId;

View File

@ -54,8 +54,6 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
private Cursor m_cursor; private Cursor m_cursor;
private ArticleListAdapter m_adapter; private ArticleListAdapter m_adapter;
private ArticleOps m_articleOps;
private ImageGetter m_dummyGetter = new ImageGetter() { private ImageGetter m_dummyGetter = new ImageGetter() {
@Override @Override
@ -97,7 +95,11 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
} }
public void refresh() { public void refresh() {
m_adapter.changeCursor(createCursor()); if (m_cursor != null) m_cursor.close();
m_cursor = createCursor();
m_adapter.changeCursor(m_cursor);
m_adapter.notifyDataSetChanged(); m_adapter.notifyDataSetChanged();
} }
@ -129,8 +131,6 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
} }
public Cursor createCursor() { public Cursor createCursor() {
if (m_cursor != null) m_cursor.close();
return ((OfflineActivity)getActivity()).getReadableDb().query("articles", return ((OfflineActivity)getActivity()).getReadableDb().query("articles",
null, "feed_id = ?", new String[] { String.valueOf(m_feedId) }, null, null, "updated DESC"); null, "feed_id = ?", new String[] { String.valueOf(m_feedId) }, null, null, "updated DESC");
} }
@ -140,7 +140,6 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
super.onAttach(activity); super.onAttach(activity);
m_feedId = ((OfflineActivity)activity).getActiveOfflineFeedId(); m_feedId = ((OfflineActivity)activity).getActiveOfflineFeedId();
m_prefs = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext()); m_prefs = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext());
m_articleOps = (ArticleOps) activity;
m_combinedMode = m_prefs.getBoolean("combined_mode", false); m_combinedMode = m_prefs.getBoolean("combined_mode", false);
} }
@ -154,21 +153,19 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
Cursor cursor = (Cursor)list.getItemAtPosition(position); Cursor cursor = (Cursor)list.getItemAtPosition(position);
m_activeArticleId = cursor.getInt(0); m_activeArticleId = cursor.getInt(0);
if (m_combinedMode) {
SQLiteStatement stmtUpdate = ((OfflineActivity)getActivity()).getWritableDb().compileStatement("UPDATE articles SET unread = 0 " +
"WHERE " + BaseColumns._ID + " = ?");
stmtUpdate.bindLong(1, m_activeArticleId);
stmtUpdate.execute();
stmtUpdate.close();
refresh(); SQLiteStatement stmtUpdate = ((OfflineActivity)getActivity()).getWritableDb().compileStatement("UPDATE articles SET unread = 0 " +
} else { "WHERE " + BaseColumns._ID + " = ?");
((OfflineActivity)getActivity()).openOfflineArticle(m_activeArticleId, 0);
stmtUpdate.bindLong(1, m_activeArticleId);
stmtUpdate.execute();
stmtUpdate.close();
if (!m_combinedMode) {
((OfflineActivity)getActivity()).openArticle(m_activeArticleId, 0);
} }
refresh();
} }
} }