summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2013-05-28 15:47:44 +0400
committerAndrew Dolgov <[email protected]>2013-05-28 15:47:44 +0400
commite84345ce5a744a72879087566621232896c52e10 (patch)
tree629580ea4a9b4c6e2ef625baf2b7c8c78252c7c1 /src
parent3fcdae62aa524ac5c9f6bf6363603221892b7481 (diff)
use slidingmenu for sw600dp devices in portrait mode, misc menu-related
fixes
Diffstat (limited to 'src')
-rw-r--r--src/org/fox/ttrss/CommonActivity.java18
-rw-r--r--src/org/fox/ttrss/FeedsActivity.java44
-rw-r--r--src/org/fox/ttrss/offline/OfflineFeedsActivity.java28
3 files changed, 69 insertions, 21 deletions
diff --git a/src/org/fox/ttrss/CommonActivity.java b/src/org/fox/ttrss/CommonActivity.java
index 78d1937c..0b41e3ab 100644
--- a/src/org/fox/ttrss/CommonActivity.java
+++ b/src/org/fox/ttrss/CommonActivity.java
@@ -7,6 +7,7 @@ import com.actionbarsherlock.app.SherlockFragmentActivity;
import android.annotation.SuppressLint;
import android.content.SharedPreferences;
import android.database.sqlite.SQLiteDatabase;
+import android.graphics.Point;
import android.os.Build;
import android.os.Bundle;
import android.preference.PreferenceManager;
@@ -151,7 +152,7 @@ public class CommonActivity extends SherlockFragmentActivity {
return width < height;
}
- @SuppressLint("NewApi")
+ @SuppressLint({ "NewApi", "ServiceCast" })
@SuppressWarnings("deprecation")
public void copyToClipboard(String str) {
if (android.os.Build.VERSION.SDK_INT < 11) {
@@ -186,4 +187,19 @@ public class CommonActivity extends SherlockFragmentActivity {
setTheme(R.style.LightTheme);
}
}
+
+ @SuppressWarnings("deprecation")
+ @SuppressLint("NewApi")
+ protected int getScreenWidthInPixel() {
+ Display display = getWindowManager().getDefaultDisplay();
+
+ if (android.os.Build.VERSION.SDK_INT >= 13) {
+ Point size = new Point();
+ display.getSize(size);
+ int width = size.x;
+ return width;
+ } else {
+ return display.getWidth();
+ }
+ }
}
diff --git a/src/org/fox/ttrss/FeedsActivity.java b/src/org/fox/ttrss/FeedsActivity.java
index 3ba96c4f..47781cce 100644
--- a/src/org/fox/ttrss/FeedsActivity.java
+++ b/src/org/fox/ttrss/FeedsActivity.java
@@ -37,6 +37,7 @@ public class FeedsActivity extends OnlineActivity implements HeadlinesEventListe
private boolean m_actionbarUpEnabled = false;
private int m_actionbarRevertDepth = 0;
private SlidingMenu m_slidingMenu;
+ private boolean m_feedIsSelected = false;
@SuppressLint("NewApi")
@Override
@@ -49,18 +50,23 @@ public class FeedsActivity extends OnlineActivity implements HeadlinesEventListe
super.onCreate(savedInstanceState);
setContentView(R.layout.headlines);
- setSmallScreen(findViewById(R.id.sw600dp_anchor) == null);
+ setSmallScreen(findViewById(R.id.sw600dp_anchor) == null &&
+ findViewById(R.id.sw600dp_port_anchor) == null);
GlobalState.getInstance().load(savedInstanceState);
- if (isSmallScreen()) {
+ if (isSmallScreen() || findViewById(R.id.sw600dp_port_anchor) != null) {
m_slidingMenu = new SlidingMenu(this);
-
+
+ if (findViewById(R.id.sw600dp_port_anchor) != null) {
+ m_slidingMenu.setBehindWidth(getScreenWidthInPixel() * 2/3);
+ }
+
m_slidingMenu.setMode(SlidingMenu.LEFT);
m_slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
m_slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
- m_slidingMenu.setSlidingEnabled(true);
m_slidingMenu.setMenu(R.layout.feeds);
+ m_slidingMenu.setSlidingEnabled(true);
m_slidingMenu.setOnOpenedListener(new SlidingMenu.OnOpenedListener() {
@Override
@@ -94,14 +100,17 @@ public class FeedsActivity extends OnlineActivity implements HeadlinesEventListe
} else { // savedInstanceState != null
m_actionbarUpEnabled = savedInstanceState.getBoolean("actionbarUpEnabled");
m_actionbarRevertDepth = savedInstanceState.getInt("actionbarRevertDepth");
+ m_feedIsSelected = savedInstanceState.getBoolean("feedIsSelected");
- if (m_slidingMenu != null && savedInstanceState.getBoolean("slidingMenuVisible"))
+ if (m_slidingMenu != null && m_feedIsSelected == false)
m_slidingMenu.showMenu();
if (!isSmallScreen()) {
// temporary hack because FeedsActivity doesn't track whether active feed is open
LinearLayout container = (LinearLayout) findViewById(R.id.fragment_container);
- container.setWeightSum(3f);
+
+ if (container != null)
+ container.setWeightSum(3f);
}
if (m_actionbarUpEnabled) {
@@ -109,10 +118,10 @@ public class FeedsActivity extends OnlineActivity implements HeadlinesEventListe
}
}
- if (!isCompatMode() && !isSmallScreen()) {
+ /* if (!isCompatMode() && !isSmallScreen()) {
((ViewGroup)findViewById(R.id.headlines_fragment)).setLayoutTransition(new LayoutTransition());
((ViewGroup)findViewById(R.id.feeds_fragment)).setLayoutTransition(new LayoutTransition());
- }
+ } */
}
@@ -156,11 +165,13 @@ public class FeedsActivity extends OnlineActivity implements HeadlinesEventListe
if (!isCompatMode() && !isSmallScreen()) {
LinearLayout container = (LinearLayout) findViewById(R.id.fragment_container);
- float wSum = container.getWeightSum();
- if (wSum <= 2.0f) {
- ObjectAnimator anim = ObjectAnimator.ofFloat(container, "weightSum", wSum, 3.0f);
- anim.setDuration(200);
- anim.start();
+ if (container != null) {
+ float wSum = container.getWeightSum();
+ if (wSum <= 2.0f) {
+ ObjectAnimator anim = ObjectAnimator.ofFloat(container, "weightSum", wSum, 3.0f);
+ anim.setDuration(200);
+ anim.start();
+ }
}
}
@@ -177,6 +188,8 @@ public class FeedsActivity extends OnlineActivity implements HeadlinesEventListe
ft.replace(R.id.headlines_fragment, hf, FRAG_HEADLINES);
ft.commit();
+
+ m_feedIsSelected = true;
if (m_slidingMenu != null) {
m_slidingMenu.showContent();
@@ -284,9 +297,10 @@ public class FeedsActivity extends OnlineActivity implements HeadlinesEventListe
out.putBoolean("actionbarUpEnabled", m_actionbarUpEnabled);
out.putInt("actionbarRevertDepth", m_actionbarRevertDepth);
+ out.putBoolean("feedIsSelected", m_feedIsSelected);
- if (m_slidingMenu != null )
- out.putBoolean("slidingMenuVisible", m_slidingMenu.isMenuShowing());
+ //if (m_slidingMenu != null )
+ // out.putBoolean("slidingMenuVisible", m_slidingMenu.isMenuShowing());
GlobalState.getInstance().save(out);
}
diff --git a/src/org/fox/ttrss/offline/OfflineFeedsActivity.java b/src/org/fox/ttrss/offline/OfflineFeedsActivity.java
index bfc4485d..507e08ef 100644
--- a/src/org/fox/ttrss/offline/OfflineFeedsActivity.java
+++ b/src/org/fox/ttrss/offline/OfflineFeedsActivity.java
@@ -27,6 +27,7 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead
private boolean m_actionbarUpEnabled = false;
private int m_actionbarRevertDepth = 0;
private SlidingMenu m_slidingMenu;
+ private boolean m_feedIsSelected = false;
@SuppressLint("NewApi")
@Override
@@ -39,13 +40,18 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead
super.onCreate(savedInstanceState);
setContentView(R.layout.headlines);
- setSmallScreen(findViewById(R.id.sw600dp_anchor) == null);
+ setSmallScreen(findViewById(R.id.sw600dp_anchor) == null &&
+ findViewById(R.id.sw600dp_port_anchor) == null);
GlobalState.getInstance().load(savedInstanceState);
- if (isSmallScreen()) {
+ if (isSmallScreen() || findViewById(R.id.sw600dp_port_anchor) != null) {
m_slidingMenu = new SlidingMenu(this);
-
+
+ if (findViewById(R.id.sw600dp_port_anchor) != null) {
+ m_slidingMenu.setBehindWidth(getScreenWidthInPixel() * 2/3);
+ }
+
m_slidingMenu.setMode(SlidingMenu.LEFT);
m_slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
m_slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
@@ -68,6 +74,10 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead
m_actionbarUpEnabled = savedInstanceState.getBoolean("actionbarUpEnabled");
m_actionbarRevertDepth = savedInstanceState.getInt("actionbarRevertDepth");
+ m_feedIsSelected = savedInstanceState.getBoolean("feedIsSelected");
+
+ if (!m_feedIsSelected && m_slidingMenu != null)
+ m_slidingMenu.showMenu();
if (m_actionbarUpEnabled) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
@@ -148,6 +158,10 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead
out.putBoolean("actionbarUpEnabled", m_actionbarUpEnabled);
out.putInt("actionbarRevertDepth", m_actionbarRevertDepth);
+ out.putBoolean("feedIsSelected", m_feedIsSelected);
+
+ //if (m_slidingMenu != null )
+ // out.putBoolean("slidingMenuVisible", m_slidingMenu.isMenuShowing());
GlobalState.getInstance().save(out);
}
@@ -222,7 +236,9 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead
if (open) {
if (!isSmallScreen()) {
LinearLayout container = (LinearLayout) findViewById(R.id.fragment_container);
- container.setWeightSum(3f);
+ if (container != null) {
+ container.setWeightSum(3f);
+ }
}
new Handler().postDelayed(new Runnable() {
@@ -236,7 +252,9 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead
ft.replace(R.id.headlines_fragment, hf, FRAG_HEADLINES);
ft.commit();
-
+
+ m_feedIsSelected = true;
+
if (m_slidingMenu != null) {
m_slidingMenu.showContent();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);