diff options
| author | Andrew Dolgov <fox@fakecake.org> | 2012-06-19 18:24:22 +0400 |
|---|---|---|
| committer | Andrew Dolgov <fox@fakecake.org> | 2012-06-19 18:24:22 +0400 |
| commit | f5547cc4ac1ef7e9b3bb40cbfaf6eb05c7b51664 (patch) | |
| tree | d01ee2bada11e5d8354f07184ff10303e40cdd01 /src/org/fox/ttrss/MainActivity.java | |
| parent | 82035f40035bf5fb72b24fe8cc38491ff5d7dfc6 (diff) | |
revert ics fragment stuff
Diffstat (limited to 'src/org/fox/ttrss/MainActivity.java')
| -rw-r--r-- | src/org/fox/ttrss/MainActivity.java | 228 |
1 files changed, 143 insertions, 85 deletions
diff --git a/src/org/fox/ttrss/MainActivity.java b/src/org/fox/ttrss/MainActivity.java index 23e06513..4564b9f9 100644 --- a/src/org/fox/ttrss/MainActivity.java +++ b/src/org/fox/ttrss/MainActivity.java @@ -19,11 +19,8 @@ import org.fox.ttrss.util.AppRater; import org.fox.ttrss.util.DatabaseHelper; import android.animation.LayoutTransition; -import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; -import android.app.Fragment; -import android.app.FragmentTransaction; import android.content.BroadcastReceiver; import android.content.Context; import android.content.DialogInterface; @@ -39,6 +36,9 @@ import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; import android.preference.PreferenceManager; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentActivity; +import android.support.v4.app.FragmentTransaction; import android.util.Log; import android.view.ActionMode; import android.view.KeyEvent; @@ -60,7 +60,7 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; -public class MainActivity extends Activity implements OnlineServices { +public class MainActivity extends FragmentActivity implements OnlineServices { private final String TAG = this.getClass().getSimpleName(); private SharedPreferences m_prefs; @@ -75,6 +75,7 @@ public class MainActivity extends Activity implements OnlineServices { private boolean m_smallScreenMode; private boolean m_unreadOnly = true; private boolean m_unreadArticlesOnly = true; + private boolean m_compatMode = false; private boolean m_enableCats = false; private int m_apiLevel = 0; private boolean m_isLoggingIn = false; @@ -144,7 +145,7 @@ public class MainActivity extends Activity implements OnlineServices { }; public void updateHeadlines() { - HeadlinesFragment frag = (HeadlinesFragment) getFragmentManager() + HeadlinesFragment frag = (HeadlinesFragment) getSupportFragmentManager() .findFragmentById(R.id.headlines_fragment); if (frag != null) { frag.notifyUpdated(); @@ -362,7 +363,7 @@ public class MainActivity extends Activity implements OnlineServices { private synchronized void refreshFeeds() { if (m_sessionId != null) { - FeedsFragment frag = (FeedsFragment) getFragmentManager() + FeedsFragment frag = (FeedsFragment) getSupportFragmentManager() .findFragmentById(R.id.feeds_fragment); Log.d(TAG, "Refreshing feeds..."); @@ -375,7 +376,7 @@ public class MainActivity extends Activity implements OnlineServices { private synchronized void refreshHeadlines() { if (m_sessionId != null) { - HeadlinesFragment frag = (HeadlinesFragment) getFragmentManager() + HeadlinesFragment frag = (HeadlinesFragment) getSupportFragmentManager() .findFragmentById(R.id.headlines_fragment); Log.d(TAG, "Refreshing headlines..."); @@ -388,7 +389,7 @@ public class MainActivity extends Activity implements OnlineServices { private synchronized void refreshCategories() { if (m_sessionId != null) { - FeedCategoriesFragment frag = (FeedCategoriesFragment) getFragmentManager() + FeedCategoriesFragment frag = (FeedCategoriesFragment) getSupportFragmentManager() .findFragmentById(R.id.cats_fragment); Log.d(TAG, "Refreshing categories..."); @@ -418,7 +419,7 @@ public class MainActivity extends Activity implements OnlineServices { * = unread; * * HeadlinesFragment frag = - * (HeadlinesFragment)getFragmentManager().findFragmentById + * (HeadlinesFragment)getSupportFragmentManager().findFragmentById * (R.id.headlines_fragment); * * if (frag != null) frag.refresh(false); } @@ -446,6 +447,8 @@ public class MainActivity extends Activity implements OnlineServices { m_prefs = PreferenceManager .getDefaultSharedPreferences(getApplicationContext()); + m_compatMode = android.os.Build.VERSION.SDK_INT <= 10; + if (m_prefs.getString("theme", "THEME_DARK").equals("THEME_DARK")) { setTheme(R.style.DarkTheme); } else { @@ -472,7 +475,7 @@ public class MainActivity extends Activity implements OnlineServices { m_enableCats = m_prefs.getBoolean("enable_cats", false); - m_smallScreenMode = (getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) != + m_smallScreenMode = m_compatMode || (getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) != Configuration.SCREENLAYOUT_SIZE_XLARGE; setContentView(R.layout.main); @@ -490,11 +493,18 @@ public class MainActivity extends Activity implements OnlineServices { Log.d(TAG, "m_isOffline=" + m_isOffline); Log.d(TAG, "m_smallScreenMode=" + m_smallScreenMode); + Log.d(TAG, "m_compatMode=" + m_compatMode); - LayoutTransition transitioner = new LayoutTransition(); - ((ViewGroup) findViewById(R.id.main)).setLayoutTransition(transitioner); - - m_headlinesActionModeCallback = new HeadlinesActionModeCallback(); + 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); + } + } + + m_headlinesActionModeCallback = new HeadlinesActionModeCallback(); + } if (m_isOffline) { Intent offline = new Intent(MainActivity.this, @@ -756,7 +766,7 @@ public class MainActivity extends Activity implements OnlineServices { m_activeCategory = null; - FeedCategoriesFragment cf = (FeedCategoriesFragment) getFragmentManager() + FeedCategoriesFragment cf = (FeedCategoriesFragment) getSupportFragmentManager() .findFragmentById(R.id.cats_fragment); if (cf != null) { @@ -769,7 +779,7 @@ public class MainActivity extends Activity implements OnlineServices { } private void deselectAllArticles() { - HeadlinesFragment hf = (HeadlinesFragment) getFragmentManager() + HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager() .findFragmentById(R.id.headlines_fragment); if (hf != null) { @@ -799,11 +809,11 @@ public class MainActivity extends Activity implements OnlineServices { findViewById(R.id.cats_fragment) .setVisibility(View.VISIBLE); - FragmentTransaction ft = getFragmentManager().beginTransaction(); + FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.replace(R.id.headlines_fragment, new HeadlinesFragment()); ft.commit(); - FeedCategoriesFragment cf = (FeedCategoriesFragment) getFragmentManager() + FeedCategoriesFragment cf = (FeedCategoriesFragment) getSupportFragmentManager() .findFragmentById(R.id.cats_fragment); if (cf != null) { @@ -818,14 +828,14 @@ public class MainActivity extends Activity implements OnlineServices { findViewById(R.id.feeds_fragment).setVisibility( View.VISIBLE); - FragmentTransaction ft = getFragmentManager().beginTransaction(); + FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.replace(R.id.headlines_fragment, new HeadlinesFragment()); ft.commit(); refreshFeeds(); } - FeedsFragment ff = (FeedsFragment) getFragmentManager() + FeedsFragment ff = (FeedsFragment) getSupportFragmentManager() .findFragmentById(R.id.feeds_fragment); if (ff != null) { @@ -857,7 +867,7 @@ public class MainActivity extends Activity implements OnlineServices { findViewById(R.id.headlines_fragment).setVisibility( View.INVISIBLE); - FeedsFragment ff = (FeedsFragment) getFragmentManager() + FeedsFragment ff = (FeedsFragment) getSupportFragmentManager() .findFragmentById(R.id.feeds_fragment); if (ff != null) { @@ -866,7 +876,7 @@ public class MainActivity extends Activity implements OnlineServices { m_activeFeed = null; - FragmentTransaction ft = getFragmentManager().beginTransaction(); + FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.replace(R.id.headlines_fragment, new HeadlinesFragment()); ft.commit(); @@ -882,7 +892,7 @@ public class MainActivity extends Activity implements OnlineServices { @SuppressWarnings("unchecked") @Override public boolean onOptionsItemSelected(MenuItem item) { - final HeadlinesFragment hf = (HeadlinesFragment) getFragmentManager() + final HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager() .findFragmentById(R.id.headlines_fragment); switch (item.getItemId()) { @@ -928,6 +938,44 @@ public class MainActivity extends Activity implements OnlineServices { case android.R.id.home: goBack(false); return true; + case R.id.search: + if (hf != null && m_compatMode) { + Dialog dialog = new Dialog(this); + + final EditText edit = new EditText(this); + + AlertDialog.Builder builder = new AlertDialog.Builder(this) + .setTitle(R.string.search) + .setPositiveButton(getString(R.string.search), + new OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, + int which) { + + String query = edit.getText().toString().trim(); + + hf.setSearchQuery(query); + + } + }) + .setNegativeButton(getString(R.string.cancel), + new OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, + int which) { + + // + + } + }).setView(edit); + + dialog = builder.create(); + dialog.show(); + } + + return true; case R.id.preferences: Intent intent = new Intent(MainActivity.this, PreferencesActivity.class); @@ -1240,7 +1288,7 @@ public class MainActivity extends Activity implements OnlineServices { m_selectedArticle = null; - FragmentTransaction ft = getFragmentManager().beginTransaction(); + FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.replace(R.id.article_fragment, new DummyFragment()); ft.commit(); @@ -1267,7 +1315,7 @@ public class MainActivity extends Activity implements OnlineServices { m_menu.setGroupVisible(R.id.menu_group_logged_in, true); m_menu.setGroupVisible(R.id.menu_group_logged_out, false); - HeadlinesFragment hf = (HeadlinesFragment) getFragmentManager() + HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager() .findFragmentById(R.id.headlines_fragment); int numSelected = 0; @@ -1276,8 +1324,12 @@ public class MainActivity extends Activity implements OnlineServices { numSelected = hf.getSelectedArticles().size(); if (numSelected != 0) { - if (m_headlinesActionMode == null) - m_headlinesActionMode = startActionMode(m_headlinesActionModeCallback); + if (m_compatMode) { + m_menu.setGroupVisible(R.id.menu_group_headlines_selection, true); + } else { + if (m_headlinesActionMode == null) + m_headlinesActionMode = startActionMode(m_headlinesActionModeCallback); + } } else if (m_selectedArticle != null) { m_menu.setGroupVisible(R.id.menu_group_article, true); @@ -1288,38 +1340,40 @@ public class MainActivity extends Activity implements OnlineServices { search.setEnabled(m_apiLevel >= 2); - SearchView searchView = (SearchView) search.getActionView(); - searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { - private String query = ""; - - @Override - public boolean onQueryTextSubmit(String query) { - HeadlinesFragment frag = (HeadlinesFragment) getFragmentManager() - .findFragmentById(R.id.headlines_fragment); + if (!m_compatMode) { + SearchView searchView = (SearchView) search.getActionView(); + searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { + private String query = ""; - if (frag != null) { - frag.setSearchQuery(query); - this.query = query; - } - - return false; - } - - @Override - public boolean onQueryTextChange(String newText) { - if (newText.equals("") && !newText.equals(this.query)) { - HeadlinesFragment frag = (HeadlinesFragment) getFragmentManager() + @Override + public boolean onQueryTextSubmit(String query) { + HeadlinesFragment frag = (HeadlinesFragment) getSupportFragmentManager() .findFragmentById(R.id.headlines_fragment); if (frag != null) { - frag.setSearchQuery(newText); - this.query = newText; + frag.setSearchQuery(query); + this.query = query; } + + return false; } - return false; - } + @Override + public boolean onQueryTextChange(String newText) { + if (newText.equals("") && !newText.equals(this.query)) { + HeadlinesFragment frag = (HeadlinesFragment) getSupportFragmentManager() + .findFragmentById(R.id.headlines_fragment); + + if (frag != null) { + frag.setSearchQuery(newText); + this.query = newText; + } + } + + return false; + } }); + } } else { m_menu.setGroupVisible(R.id.menu_group_feeds, true); @@ -1329,28 +1383,32 @@ public class MainActivity extends Activity implements OnlineServices { m_headlinesActionMode.finish(); } - if (m_activeFeed != null) { - getActionBar().setTitle(m_activeFeed.title); - } else if (m_activeCategory != null) { - getActionBar().setTitle(m_activeCategory.title); - } else { - getActionBar().setTitle(R.string.app_name); - } - - if (!m_smallScreenMode) { - getActionBar().setDisplayHomeAsUpEnabled(m_selectedArticle != null || m_activeCategory != null); - } else { - getActionBar().setDisplayHomeAsUpEnabled(m_selectedArticle != null || m_activeFeed != null || m_activeCategory != null); - } - - if (android.os.Build.VERSION.SDK_INT >= 14) { - ShareActionProvider shareProvider = (ShareActionProvider) m_menu.findItem(R.id.share_article).getActionProvider(); + if (!m_compatMode) { - if (m_selectedArticle != null) { - Log.d(TAG, "setting up share provider"); - shareProvider.setShareIntent(getShareIntent(m_selectedArticle)); + if (m_activeFeed != null) { + getActionBar().setTitle(m_activeFeed.title); + } else if (m_activeCategory != null) { + getActionBar().setTitle(m_activeCategory.title); + } else { + getActionBar().setTitle(R.string.app_name); } + + if (!m_smallScreenMode) { + getActionBar().setDisplayHomeAsUpEnabled(m_selectedArticle != null || m_activeCategory != null); + } else { + getActionBar().setDisplayHomeAsUpEnabled(m_selectedArticle != null || m_activeFeed != null || m_activeCategory != null); + } + + if (android.os.Build.VERSION.SDK_INT >= 14) { + ShareActionProvider shareProvider = (ShareActionProvider) m_menu.findItem(R.id.share_article).getActionProvider(); + + if (m_selectedArticle != null) { + Log.d(TAG, "setting up share provider"); + shareProvider.setShareIntent(getShareIntent(m_selectedArticle)); + } } + + } m_menu.findItem(R.id.set_labels).setEnabled(m_apiLevel >= 1); @@ -1463,7 +1521,7 @@ public class MainActivity extends Activity implements OnlineServices { if (hasPendingOfflineData()) syncOfflineData(); - FragmentTransaction ft = getFragmentManager().beginTransaction(); + FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); if (m_enableCats) { FeedCategoriesFragment frag = new FeedCategoriesFragment(); @@ -1569,7 +1627,7 @@ public class MainActivity extends Activity implements OnlineServices { if (m_menu != null) { MenuItem search = m_menu.findItem(R.id.search); - if (search != null) { + if (search != null && !m_compatMode) { SearchView sv = (SearchView) search.getActionView(); sv.setQuery("", false); } @@ -1577,12 +1635,12 @@ public class MainActivity extends Activity implements OnlineServices { HeadlinesFragment hf = new HeadlinesFragment(); - FragmentTransaction ft = getFragmentManager() + FragmentTransaction ft = getSupportFragmentManager() .beginTransaction(); ft.replace(R.id.headlines_fragment, hf); ft.commit(); } else { - HeadlinesFragment hf = (HeadlinesFragment) getFragmentManager() + HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager() .findFragmentById(R.id.headlines_fragment); if (hf != null) { hf.refresh(true); @@ -1602,7 +1660,7 @@ public class MainActivity extends Activity implements OnlineServices { FeedsFragment frag = new FeedsFragment(); - FragmentTransaction ft = getFragmentManager() + FragmentTransaction ft = getSupportFragmentManager() .beginTransaction(); ft.replace(R.id.feeds_fragment, frag); ft.commit(); @@ -1617,7 +1675,7 @@ public class MainActivity extends Activity implements OnlineServices { if (m_menu != null) { MenuItem search = m_menu.findItem(R.id.search); - if (search != null) { + if (search != null && !m_compatMode) { SearchView sv = (SearchView) search.getActionView(); sv.setQuery("", false); } @@ -1625,7 +1683,7 @@ public class MainActivity extends Activity implements OnlineServices { HeadlinesFragment frag = new HeadlinesFragment(); - FragmentTransaction ft = getFragmentManager() + FragmentTransaction ft = getSupportFragmentManager() .beginTransaction(); ft.replace(R.id.headlines_fragment, frag); ft.commit(); @@ -1645,7 +1703,7 @@ public class MainActivity extends Activity implements OnlineServices { initMainMenu(); - HeadlinesFragment hf = (HeadlinesFragment) getFragmentManager() + HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager() .findFragmentById(R.id.headlines_fragment); if (hf != null) { @@ -1669,7 +1727,7 @@ public class MainActivity extends Activity implements OnlineServices { frag = new ArticleFragment(article); } - FragmentTransaction ft = getFragmentManager().beginTransaction(); + FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.replace(R.id.article_fragment, frag); ft.commit(); @@ -1764,11 +1822,11 @@ public class MainActivity extends Activity implements OnlineServices { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item .getMenuInfo(); - HeadlinesFragment hf = (HeadlinesFragment) getFragmentManager() + HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager() .findFragmentById(R.id.headlines_fragment); - FeedsFragment ff = (FeedsFragment) getFragmentManager() + FeedsFragment ff = (FeedsFragment) getSupportFragmentManager() .findFragmentById(R.id.feeds_fragment); - FeedCategoriesFragment cf = (FeedCategoriesFragment) getFragmentManager() + FeedCategoriesFragment cf = (FeedCategoriesFragment) getSupportFragmentManager() .findFragmentById(R.id.cats_fragment); switch (item.getItemId()) { @@ -1926,7 +1984,7 @@ public class MainActivity extends Activity implements OnlineServices { @Override public Article getRelativeArticle(Article article, RelativeArticle ra) { - HeadlinesFragment frag = (HeadlinesFragment) getFragmentManager() + HeadlinesFragment frag = (HeadlinesFragment) getSupportFragmentManager() .findFragmentById(R.id.headlines_fragment); if (frag != null) { ArticleList articles = frag.getAllArticles(); @@ -1960,7 +2018,7 @@ public class MainActivity extends Activity implements OnlineServices { switch (keyCode) { case KeyEvent.KEYCODE_VOLUME_DOWN: if (action == KeyEvent.ACTION_DOWN) { - HeadlinesFragment hf = (HeadlinesFragment) getFragmentManager() + HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager() .findFragmentById(R.id.headlines_fragment); if (hf != null && m_activeFeed != null) { @@ -1987,7 +2045,7 @@ public class MainActivity extends Activity implements OnlineServices { return true; case KeyEvent.KEYCODE_VOLUME_UP: if (action == KeyEvent.ACTION_UP) { - HeadlinesFragment hf = (HeadlinesFragment) getFragmentManager() + HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager() .findFragmentById(R.id.headlines_fragment); if (hf != null && m_activeFeed != null) { |