summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2012-06-19 21:32:56 +0400
committerAndrew Dolgov <[email protected]>2012-06-19 21:32:56 +0400
commit92ccf9ec0cd336cb161b26dd09efe5618b8733f8 (patch)
tree4826bd81b950c56d416d0fc840ad99d407ca6314 /src
parentff6f103900685bdc1fd3ee359cf6724f67480b0c (diff)
offline mode fixes
Diffstat (limited to 'src')
-rw-r--r--src/org/fox/ttrss/offline/OfflineActivity.java162
-rw-r--r--src/org/fox/ttrss/offline/OfflineArticlePager.java2
-rw-r--r--src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java9
3 files changed, 67 insertions, 106 deletions
diff --git a/src/org/fox/ttrss/offline/OfflineActivity.java b/src/org/fox/ttrss/offline/OfflineActivity.java
index 899a059d..fddd8dec 100644
--- a/src/org/fox/ttrss/offline/OfflineActivity.java
+++ b/src/org/fox/ttrss/offline/OfflineActivity.java
@@ -46,6 +46,11 @@ public class OfflineActivity extends FragmentActivity implements
OfflineServices {
private final String TAG = this.getClass().getSimpleName();
+ protected final static String FRAG_HEADLINES = "headlines";
+ protected final static String FRAG_ARTICLE = "article";
+ protected final static String FRAG_FEEDS = "feeds";
+ //protected final static String FRAG_CATS = "cats";
+
private SharedPreferences m_prefs;
private String m_themeName = "";
private Menu m_menu;
@@ -139,13 +144,14 @@ public class OfflineActivity extends FragmentActivity implements
Log.d(TAG, "m_compatMode=" + m_compatMode);
if (!m_compatMode) {
- if (android.os.Build.VERSION.SDK_INT < 14 /* || android.os.Build.VERSION.SDK_INT == 15 */) {
- if (!m_smallScreenMode) {
- LayoutTransition transitioner = new LayoutTransition();
- ((ViewGroup) findViewById(R.id.main)).setLayoutTransition(transitioner);
- }
+ if (!m_smallScreenMode) {
+ findViewById(R.id.feeds_fragment).setVisibility(m_selectedArticleId != 0 ? View.GONE : View.VISIBLE);
+ findViewById(R.id.article_fragment).setVisibility(m_selectedArticleId != 0 ? View.VISIBLE : View.GONE);
}
+ LayoutTransition transitioner = new LayoutTransition();
+ ((ViewGroup) findViewById(R.id.fragment_container)).setLayoutTransition(transitioner);
+
m_headlinesActionModeCallback = new HeadlinesActionModeCallback();
}
@@ -153,37 +159,16 @@ public class OfflineActivity extends FragmentActivity implements
findViewById(R.id.loading_container).setVisibility(View.GONE);
- /* if (m_smallScreenMode) {
- if (m_selectedArticleId != 0) {
- findViewById(R.id.feeds_fragment).setVisibility(View.GONE);
- findViewById(R.id.cats_fragment).setVisibility(View.GONE);
- findViewById(R.id.headlines_fragment).setVisibility(View.GONE);
- } else if (m_activeFeedId != 0) {
- findViewById(R.id.feeds_fragment).setVisibility(View.GONE);
- findViewById(R.id.article_fragment).setVisibility(View.GONE);
- findViewById(R.id.cats_fragment).setVisibility(View.GONE);
- } else {
- //findViewById(R.id.headlines_fragment).setVisibility(View.GONE);
- // findViewById(R.id.article_fragment).setVisibility(View.GONE);
-
- findViewById(R.id.cats_fragment).setVisibility(View.GONE);
- }
- } else {
- if (m_selectedArticleId == 0) {
- findViewById(R.id.article_fragment).setVisibility(View.GONE);
- findViewById(R.id.cats_fragment).setVisibility(View.GONE);
-
- } else {
- findViewById(R.id.feeds_fragment).setVisibility(View.GONE);
- findViewById(R.id.cats_fragment).setVisibility(View.GONE);
- }
- } */
-
if (m_activeFeedId == 0) {
FragmentTransaction ft = getSupportFragmentManager()
.beginTransaction();
OfflineFeedsFragment frag = new OfflineFeedsFragment();
- ft.replace(R.id.feeds_fragment, frag);
+ if (m_smallScreenMode) {
+ ft.replace(R.id.fragment_container, frag, FRAG_FEEDS);
+ } else {
+ ft.replace(R.id.feeds_fragment, frag, FRAG_FEEDS);
+ }
+
ft.commit();
}
}
@@ -308,34 +293,10 @@ public class OfflineActivity extends FragmentActivity implements
if (m_selectedArticleId != 0) {
closeArticle();
} else if (m_activeFeedId != 0) {
- //if (m_compatMode) {
- findViewById(R.id.main).setAnimation(
- AnimationUtils.loadAnimation(this,
- R.anim.slide_right));
- //}
-
- /*
- * if (m_activeFeed != null && m_activeFeed.is_cat) {
- * findViewById
- * (R.id.headlines_fragment).setVisibility(View.GONE);
- * findViewById(R.id.cats_fragment).setVisibility(View.VISIBLE);
- *
- * refreshCategories(); } else {
- */
- findViewById(R.id.headlines_fragment).setVisibility(View.GONE);
- findViewById(R.id.feeds_fragment).setVisibility(View.VISIBLE);
- // }
m_activeFeedId = 0;
- OfflineFeedsFragment ff = (OfflineFeedsFragment) getSupportFragmentManager()
- .findFragmentById(R.id.feeds_fragment);
-
- if (ff != null) {
- ff.setSelectedFeedId(0);
- }
-
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
- ft.replace(R.id.headlines_fragment, new OfflineHeadlinesFragment());
+ ft.replace(R.id.fragment_container, new OfflineFeedsFragment(), FRAG_FEEDS);
ft.commit();
refreshViews();
@@ -347,23 +308,23 @@ public class OfflineActivity extends FragmentActivity implements
} else {
if (m_selectedArticleId != 0) {
closeArticle();
- } else if (m_activeFeedId != 0) {
+ /* } else if (m_activeFeedId != 0) {
findViewById(R.id.headlines_fragment).setVisibility(View.INVISIBLE);
m_activeFeedId = 0;
OfflineFeedsFragment ff = (OfflineFeedsFragment) getSupportFragmentManager()
- .findFragmentById(R.id.feeds_fragment);
+ .findFragmentByTag(FRAG_FEEDS);
if (ff != null) {
ff.setSelectedFeedId(0);
}
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
- ft.replace(R.id.headlines_fragment, new OfflineHeadlinesFragment());
+ ft.replace(R.id.fragment_container, new OfflineHeadlinesFragment(), FRAG_HEADLINES);
ft.commit();
refreshViews();
- initMainMenu();
+ initMainMenu(); */
} else if (allowQuit) {
finish();
@@ -457,7 +418,7 @@ public class OfflineActivity extends FragmentActivity implements
private void refreshHeadlines() {
OfflineHeadlinesFragment ohf = (OfflineHeadlinesFragment) getSupportFragmentManager()
- .findFragmentById(R.id.headlines_fragment);
+ .findFragmentByTag(FRAG_HEADLINES);
if (ohf != null) {
ohf.refresh();
@@ -467,7 +428,7 @@ public class OfflineActivity extends FragmentActivity implements
@Override
public boolean onOptionsItemSelected(MenuItem item) {
final OfflineHeadlinesFragment ohf = (OfflineHeadlinesFragment) getSupportFragmentManager()
- .findFragmentById(R.id.headlines_fragment);
+ .findFragmentByTag(FRAG_HEADLINES);
switch (item.getItemId()) {
case android.R.id.home:
@@ -680,7 +641,7 @@ public class OfflineActivity extends FragmentActivity implements
private void refreshFeeds() {
OfflineFeedsFragment frag = (OfflineFeedsFragment) getSupportFragmentManager()
- .findFragmentById(R.id.feeds_fragment);
+ .findFragmentByTag(FRAG_FEEDS);
if (frag != null) {
frag.refresh();
@@ -688,27 +649,21 @@ public class OfflineActivity extends FragmentActivity implements
}
private void closeArticle() {
- if (m_smallScreenMode) {
- findViewById(R.id.main).setAnimation(
- AnimationUtils.loadAnimation(this, R.anim.slide_right));
- }
-
- if (m_smallScreenMode) {
- findViewById(R.id.article_fragment).setVisibility(View.GONE);
- findViewById(R.id.headlines_fragment).setVisibility(View.VISIBLE);
- } else {
- findViewById(R.id.article_fragment).setVisibility(View.GONE);
- findViewById(R.id.feeds_fragment).setVisibility(View.VISIBLE);
-
- }
-
// we don't want to lose selected article in headlines so we refresh them before setting selected id to 0
refreshViews();
m_selectedArticleId = 0;
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
- ft.replace(R.id.article_fragment, new DummyFragment());
+
+ if (m_smallScreenMode) {
+ ft.remove(getSupportFragmentManager().findFragmentByTag(FRAG_ARTICLE));
+ ft.show(getSupportFragmentManager().findFragmentByTag(FRAG_HEADLINES));
+ } else {
+ findViewById(R.id.feeds_fragment).setVisibility(View.VISIBLE);
+ findViewById(R.id.article_fragment).setVisibility(View.GONE);
+ ft.replace(R.id.article_fragment, new DummyFragment(), FRAG_ARTICLE);
+ }
ft.commit();
initMainMenu();
@@ -757,7 +712,7 @@ public class OfflineActivity extends FragmentActivity implements
@Override
public boolean onQueryTextSubmit(String query) {
OfflineHeadlinesFragment frag = (OfflineHeadlinesFragment) getSupportFragmentManager()
- .findFragmentById(R.id.headlines_fragment);
+ .findFragmentByTag(FRAG_HEADLINES);
if (frag != null) {
frag.setSearchQuery(query);
@@ -771,7 +726,7 @@ public class OfflineActivity extends FragmentActivity implements
public boolean onQueryTextChange(String newText) {
if (newText.equals("") && !newText.equals(this.query)) {
OfflineHeadlinesFragment frag = (OfflineHeadlinesFragment) getSupportFragmentManager()
- .findFragmentById(R.id.headlines_fragment);
+ .findFragmentByTag(FRAG_HEADLINES);
if (frag != null) {
frag.setSearchQuery(newText);
@@ -839,9 +794,9 @@ public class OfflineActivity extends FragmentActivity implements
.getMenuInfo();
OfflineHeadlinesFragment hf = (OfflineHeadlinesFragment) getSupportFragmentManager()
- .findFragmentById(R.id.headlines_fragment);
+ .findFragmentByTag(FRAG_HEADLINES);
OfflineFeedsFragment ff = (OfflineFeedsFragment) getSupportFragmentManager()
- .findFragmentById(R.id.feeds_fragment);
+ .findFragmentByTag(FRAG_FEEDS);
switch (item.getItemId()) {
case R.id.article_link_copy:
@@ -1004,7 +959,7 @@ public class OfflineActivity extends FragmentActivity implements
if (action == KeyEvent.ACTION_DOWN) {
OfflineHeadlinesFragment ohf = (OfflineHeadlinesFragment) getSupportFragmentManager()
- .findFragmentById(R.id.headlines_fragment);
+ .findFragmentByTag(FRAG_HEADLINES);
int nextId = getRelativeArticleId(m_selectedArticleId,
m_activeFeedId, RelativeArticle.AFTER);
@@ -1033,7 +988,7 @@ public class OfflineActivity extends FragmentActivity implements
if (action == KeyEvent.ACTION_UP) {
OfflineHeadlinesFragment ohf = (OfflineHeadlinesFragment) getSupportFragmentManager()
- .findFragmentById(R.id.headlines_fragment);
+ .findFragmentByTag(FRAG_HEADLINES);
int prevId = getRelativeArticleId(m_selectedArticleId,
m_activeFeedId, RelativeArticle.BEFORE);
@@ -1123,13 +1078,6 @@ public class OfflineActivity extends FragmentActivity implements
initMainMenu();
- if (m_smallScreenMode) {
- findViewById(R.id.feeds_fragment).setVisibility(View.GONE);
- findViewById(R.id.headlines_fragment).setVisibility(View.VISIBLE);
- } else {
- findViewById(R.id.headlines_fragment).setVisibility(View.VISIBLE);
- }
-
deselectAllArticles();
if (m_menu != null) {
@@ -1142,8 +1090,14 @@ public class OfflineActivity extends FragmentActivity implements
}
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
- OfflineHeadlinesFragment frag = new OfflineHeadlinesFragment();
- ft.replace(R.id.headlines_fragment, frag);
+ OfflineHeadlinesFragment frag = new OfflineHeadlinesFragment(feedId);
+
+ if (m_smallScreenMode) {
+ ft.replace(R.id.fragment_container, frag, FRAG_HEADLINES);
+ } else {
+ findViewById(R.id.headlines_fragment).setVisibility(View.VISIBLE);
+ ft.replace(R.id.headlines_fragment, frag, FRAG_HEADLINES);
+ }
ft.commit();
}
@@ -1155,7 +1109,7 @@ public class OfflineActivity extends FragmentActivity implements
initMainMenu();
OfflineHeadlinesFragment hf = (OfflineHeadlinesFragment) getSupportFragmentManager()
- .findFragmentById(R.id.headlines_fragment);
+ .findFragmentByTag(FRAG_HEADLINES);
if (hf != null) {
hf.setActiveArticleId(articleId);
@@ -1171,24 +1125,24 @@ public class OfflineActivity extends FragmentActivity implements
Fragment frag;
- if (m_smallScreenMode) {
+ if (m_smallScreenMode || m_prefs.getBoolean("tablet_article_swipe", false)) {
frag = new OfflineArticlePager(articleId);
} else {
frag = new OfflineArticleFragment(articleId);
}
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
- ft.replace(R.id.article_fragment, frag);
- ft.commit();
if (m_smallScreenMode) {
- if (compatAnimation == 0)
- findViewById(R.id.main).setAnimation(
- AnimationUtils.loadAnimation(this, R.anim.slide_left));
- else
- findViewById(R.id.main).setAnimation(
- AnimationUtils.loadAnimation(this, compatAnimation));
+ ft.hide(getSupportFragmentManager().findFragmentByTag(FRAG_HEADLINES));
+ ft.add(R.id.fragment_container, frag, FRAG_ARTICLE);
+ } else {
+ findViewById(R.id.feeds_fragment).setVisibility(View.GONE);
+ findViewById(R.id.article_fragment).setVisibility(View.VISIBLE);
+ ft.replace(R.id.article_fragment, frag, FRAG_ARTICLE);
}
+
+ ft.commit();
}
@Override
diff --git a/src/org/fox/ttrss/offline/OfflineArticlePager.java b/src/org/fox/ttrss/offline/OfflineArticlePager.java
index aa50805e..ec3b86c1 100644
--- a/src/org/fox/ttrss/offline/OfflineArticlePager.java
+++ b/src/org/fox/ttrss/offline/OfflineArticlePager.java
@@ -105,7 +105,7 @@ public class OfflineArticlePager extends Fragment {
public void onAttach(Activity activity) {
super.onAttach(activity);
- m_hf = (OfflineHeadlinesFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.headlines_fragment);
+ m_hf = (OfflineHeadlinesFragment) getActivity().getSupportFragmentManager().findFragmentByTag(OfflineActivity.FRAG_HEADLINES);
m_offlineServices = (OfflineServices)activity;
}
diff --git a/src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java b/src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
index 56ec2b71..3b29c435 100644
--- a/src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
+++ b/src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
@@ -69,6 +69,14 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
};
+ public OfflineHeadlinesFragment(int feedId) {
+ m_feedId = feedId;
+ }
+
+ public OfflineHeadlinesFragment() {
+ //
+ }
+
@Override
public void onDestroy() {
super.onDestroy();
@@ -164,7 +172,6 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
super.onAttach(activity);
m_offlineServices = (OfflineServices)activity;
- m_feedId = m_offlineServices.getActiveFeedId();
m_prefs = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext());
m_combinedMode = m_prefs.getBoolean("combined_mode", false);
}