summaryrefslogtreecommitdiff
path: root/src/org/fox/ttrss/MainActivity.java
diff options
context:
space:
mode:
authorAndrew Dolgov <fox@fakecake.org>2012-06-19 18:24:22 +0400
committerAndrew Dolgov <fox@fakecake.org>2012-06-19 18:24:22 +0400
commitf5547cc4ac1ef7e9b3bb40cbfaf6eb05c7b51664 (patch)
treed01ee2bada11e5d8354f07184ff10303e40cdd01 /src/org/fox/ttrss/MainActivity.java
parent82035f40035bf5fb72b24fe8cc38491ff5d7dfc6 (diff)
revert ics fragment stuff
Diffstat (limited to 'src/org/fox/ttrss/MainActivity.java')
-rw-r--r--src/org/fox/ttrss/MainActivity.java228
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) {