add compatibility with small screen devices
This commit is contained in:
parent
131dec0c1c
commit
673b31f274
30
res/layout/main_small.xml
Normal file
30
res/layout/main_small.xml
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent" android:id="@+id/main_flipper">
|
||||||
|
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:id="@+id/loading_container">
|
||||||
|
<ProgressBar android:id="@+id/loading_progress" android:layout_height="wrap_content" android:layout_width="wrap_content" ></ProgressBar>
|
||||||
|
<TextView android:text="@string/loading_message" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/loading_message"></TextView>
|
||||||
|
</LinearLayout>
|
||||||
|
<LinearLayout android:layout_height="fill_parent" android:orientation="horizontal" android:id="@+id/main" android:layout_width="fill_parent">
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:id="@+id/feeds_fragment"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent" >
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:id="@+id/headlines_fragment"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent" >
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:id="@+id/article_fragment"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent" >
|
||||||
|
</FrameLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
</FrameLayout>
|
@ -12,6 +12,7 @@ import android.preference.PreferenceManager;
|
|||||||
import android.support.v4.app.FragmentActivity;
|
import android.support.v4.app.FragmentActivity;
|
||||||
import android.support.v4.app.FragmentTransaction;
|
import android.support.v4.app.FragmentTransaction;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.view.Display;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
@ -34,6 +35,7 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe
|
|||||||
private Timer m_refreshTimer;
|
private Timer m_refreshTimer;
|
||||||
private RefreshTask m_refreshTask;
|
private RefreshTask m_refreshTask;
|
||||||
private Menu m_menu;
|
private Menu m_menu;
|
||||||
|
private boolean m_smallScreenMode;
|
||||||
private boolean m_unreadOnly = true;
|
private boolean m_unreadOnly = true;
|
||||||
|
|
||||||
private class RefreshTask extends TimerTask {
|
private class RefreshTask extends TimerTask {
|
||||||
@ -92,7 +94,18 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe
|
|||||||
m_selectedArticle = savedInstanceState.getParcelable("selectedArticle");
|
m_selectedArticle = savedInstanceState.getParcelable("selectedArticle");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Display display = getWindowManager().getDefaultDisplay();
|
||||||
|
|
||||||
|
if (display.getWidth() > 1000 && display.getHeight() >= 600) {
|
||||||
|
m_smallScreenMode = false;
|
||||||
|
|
||||||
setContentView(R.layout.main);
|
setContentView(R.layout.main);
|
||||||
|
} else {
|
||||||
|
m_smallScreenMode = true;
|
||||||
|
|
||||||
|
setContentView(R.layout.main_small);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (android.os.Build.VERSION.SDK_INT > 10) {
|
if (android.os.Build.VERSION.SDK_INT > 10) {
|
||||||
LayoutTransition transitioner = new LayoutTransition();
|
LayoutTransition transitioner = new LayoutTransition();
|
||||||
@ -100,10 +113,23 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe
|
|||||||
layout.setLayoutTransition(transitioner);
|
layout.setLayoutTransition(transitioner);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_smallScreenMode) {
|
||||||
|
if (m_selectedArticle != null) {
|
||||||
|
findViewById(R.id.feeds_fragment).setVisibility(View.GONE);
|
||||||
|
findViewById(R.id.headlines_fragment).setVisibility(View.GONE);
|
||||||
|
} else if (m_activeFeed != null) {
|
||||||
|
findViewById(R.id.feeds_fragment).setVisibility(View.GONE);
|
||||||
|
findViewById(R.id.article_fragment).setVisibility(View.GONE);
|
||||||
|
} else {
|
||||||
|
findViewById(R.id.headlines_fragment).setVisibility(View.GONE);
|
||||||
|
findViewById(R.id.article_fragment).setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
if (m_selectedArticle == null)
|
if (m_selectedArticle == null)
|
||||||
findViewById(R.id.article_fragment).setVisibility(View.GONE);
|
findViewById(R.id.article_fragment).setVisibility(View.GONE);
|
||||||
else
|
else
|
||||||
findViewById(R.id.feeds_fragment).setVisibility(View.GONE);
|
findViewById(R.id.feeds_fragment).setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
|
||||||
if (m_sessionId != null) {
|
if (m_sessionId != null) {
|
||||||
loginSuccess();
|
loginSuccess();
|
||||||
@ -195,11 +221,22 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe
|
|||||||
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
||||||
Log.d(TAG, "Overriding back button");
|
Log.d(TAG, "Overriding back button");
|
||||||
|
|
||||||
|
if (m_smallScreenMode) {
|
||||||
|
if (m_selectedArticle != null) {
|
||||||
|
closeArticle();
|
||||||
|
} else if (m_activeFeed != null) {
|
||||||
|
findViewById(R.id.headlines_fragment).setVisibility(View.GONE);
|
||||||
|
findViewById(R.id.feeds_fragment).setVisibility(View.VISIBLE);
|
||||||
|
} else {
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
if (m_selectedArticle != null) {
|
if (m_selectedArticle != null) {
|
||||||
closeArticle();
|
closeArticle();
|
||||||
} else {
|
} else {
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -258,8 +295,14 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void closeArticle() {
|
public void closeArticle() {
|
||||||
|
|
||||||
|
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.article_fragment).setVisibility(View.GONE);
|
||||||
findViewById(R.id.feeds_fragment).setVisibility(View.VISIBLE);
|
findViewById(R.id.feeds_fragment).setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
m_selectedArticle = null;
|
m_selectedArticle = null;
|
||||||
|
|
||||||
@ -395,6 +438,11 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe
|
|||||||
|
|
||||||
initMainMenu();
|
initMainMenu();
|
||||||
|
|
||||||
|
if (m_smallScreenMode) {
|
||||||
|
findViewById(R.id.feeds_fragment).setVisibility(View.GONE);
|
||||||
|
findViewById(R.id.headlines_fragment).setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
if (!append) {
|
if (!append) {
|
||||||
HeadlinesFragment hf = new HeadlinesFragment();
|
HeadlinesFragment hf = new HeadlinesFragment();
|
||||||
|
|
||||||
@ -420,8 +468,13 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe
|
|||||||
ft.replace(R.id.article_fragment, frag);
|
ft.replace(R.id.article_fragment, frag);
|
||||||
ft.commit();
|
ft.commit();
|
||||||
|
|
||||||
|
if (m_smallScreenMode) {
|
||||||
|
findViewById(R.id.headlines_fragment).setVisibility(View.GONE);
|
||||||
|
findViewById(R.id.article_fragment).setVisibility(View.VISIBLE);
|
||||||
|
} else {
|
||||||
findViewById(R.id.feeds_fragment).setVisibility(View.GONE);
|
findViewById(R.id.feeds_fragment).setVisibility(View.GONE);
|
||||||
findViewById(R.id.article_fragment).setVisibility(View.VISIBLE);
|
findViewById(R.id.article_fragment).setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user