use proper layout separation for normal and large screens

This commit is contained in:
Andrew Dolgov 2011-11-30 13:17:03 +03:00
parent 20a66a8dc2
commit 97c20e0c32
12 changed files with 193 additions and 27 deletions

View File

@ -1,10 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.fox.ttrss"
android:versionCode="24"
android:versionName="0.1.23">
android:versionCode="25"
android:versionName="0.1.24">
<uses-sdk android:minSdkVersion="8" />
<!-- <supports-screens android:smallScreens="false" android:normalScreens="false" /> -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

View File

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:gravity="center_vertical"
android:background="?headlineNormalBackground"
android:id="@+id/headlines_row" android:orientation="horizontal" android:layout_height="wrap_content">
<ImageView android:background="?headlineSeparatorNormal" android:paddingRight="4dip" android:layout_height="match_parent" android:layout_width="wrap_content"></ImageView>
<CheckBox android:focusable="false"
android:paddingLeft="6dip" android:paddingRight="6dip" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/selected"></CheckBox>
<LinearLayout android:orientation="vertical" android:id="@+id/linearLayout1" android:layout_weight="1" android:layout_width="match_parent" android:layout_height="wrap_content">
<TextView android:singleLine="true" android:ellipsize="end" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/title" android:text="{Title...}" android:textSize="16sp"></TextView>
<TextView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/excerpt" android:text="{Content excerpt...}" android:textSize="13sp" android:textColor="#909090"></TextView>
</LinearLayout>
<LinearLayout
android:id="@+id/linerLayout3"
android:layout_width="wrap_content" android:gravity="center" android:padding="3dip"
android:layout_height="wrap_content" android:orientation="vertical">
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#909090" android:textSize="13sp" android:id="@+id/date" android:text="Jan 01"></TextView>
<LinearLayout
android:id="@+id/linearLayout4"
android:layout_width="wrap_content"
android:gravity="center"
android:paddingRight="2sp"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/marked"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:src="@android:drawable/star_off" >
</ImageView>
<ImageView
android:id="@+id/published"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:src="@drawable/ic_rss_bw" >
</ImageView>
</LinearLayout>
</LinearLayout>
</LinearLayout>

View File

@ -0,0 +1,95 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/headlines_row"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="?headlineSelectedBackground"
android:gravity="center_vertical"
android:orientation="horizontal" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="?headlineSeparatorSelected"
android:paddingRight="4dip" >
</ImageView>
<CheckBox
android:id="@+id/selected"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
android:paddingLeft="6dip"
android:paddingRight="6dip" >
</CheckBox>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:ellipsize="end"
android:singleLine="true"
android:text="{Title...}"
android:textSize="16sp" >
</TextView>
<TextView
android:id="@+id/excerpt"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="{Content excerpt...}"
android:textColor="#909090"
android:textSize="13sp" >
</TextView>
</LinearLayout>
<LinearLayout
android:id="@+id/linerLayout3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
android:padding="3dip" >
<TextView
android:id="@+id/date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Jan 01"
android:textColor="#909090"
android:textSize="13sp" >
</TextView>
<LinearLayout
android:id="@+id/linearLayout4"
android:layout_width="wrap_content"
android:gravity="center"
android:paddingRight="2sp"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/marked"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:src="@android:drawable/star_off" >
</ImageView>
<ImageView
android:id="@+id/published"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:src="@drawable/ic_rss_bw" >
</ImageView>
</LinearLayout>
</LinearLayout>
</LinearLayout>

View File

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:gravity="center_vertical"
android:background="?headlineUnreadBackground"
android:id="@+id/headlines_row" android:orientation="horizontal" android:layout_height="wrap_content">
<ImageView android:background="?headlineSeparatorUnread" android:paddingRight="4dip" android:layout_height="match_parent" android:layout_width="wrap_content"></ImageView>
<CheckBox android:focusable="false"
android:paddingLeft="6dip" android:paddingRight="6dip" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/selected"></CheckBox>
<LinearLayout android:layout_weight="1" android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:orientation="vertical" android:layout_width="match_parent">
<TextView android:singleLine="true" android:ellipsize="end" android:id="@+id/title" android:textSize="16sp" android:text="{Title...}" android:layout_width="match_parent" android:layout_height="match_parent"></TextView>
<TextView android:id="@+id/excerpt" android:textSize="13sp" android:textColor="#909090" android:text="{Content excerpt...}" android:layout_width="match_parent" android:layout_height="match_parent"></TextView>
</LinearLayout>
<LinearLayout
android:id="@+id/linerLayout3"
android:layout_width="wrap_content" android:gravity="center" android:padding="3dip"
android:layout_height="wrap_content" android:orientation="vertical">
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#909090" android:textSize="13sp" android:id="@+id/date" android:text="Jan 01"></TextView>
<LinearLayout
android:id="@+id/linearLayout4"
android:layout_width="wrap_content"
android:gravity="center"
android:paddingRight="2sp"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/marked"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:src="@android:drawable/star_off" >
</ImageView>
<ImageView
android:id="@+id/published"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:src="@drawable/ic_rss_bw" >
</ImageView>
</LinearLayout>
</LinearLayout>
</LinearLayout>

View File

@ -31,24 +31,11 @@
<group android:id="@+id/menu_group_headlines" >
<!-- <item
android:id="@+id/load_more_articles"
android:icon="@android:drawable/ic_menu_more"
android:showAsAction="ifRoom|withText"
android:title="@string/load_more_articles"/> -->
<item
android:id="@+id/headlines_mark_as_read"
android:icon="@android:drawable/ic_menu_tick"
android:showAsAction="ifRoom|withText"
android:icon="@drawable/ic_menu_tick"
android:title="@string/headlines_mark_as_read"/>
<!-- <item
android:id="@+id/show_all_articles"
android:icon="@android:drawable/ic_menu_agenda"
android:showAsAction=""
android:title="@string/show_all_articles"/> -->
<item
android:id="@+id/headlines_select"
android:icon="@drawable/ic_menu_database"

View File

@ -50,8 +50,6 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener {
private ArticleList m_selectedArticles = new ArticleList();
private ArticleOps m_articleOps;
private boolean m_smallScreenMode = false;
private boolean m_portraitMode = false;
public ArticleList getSelectedArticles() {
return m_selectedArticles;
@ -78,14 +76,11 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
m_portraitMode = getActivity().getWindowManager().getDefaultDisplay().getOrientation() % 2 == 0;
if (savedInstanceState != null) {
m_feed = savedInstanceState.getParcelable("feed");
m_articles = savedInstanceState.getParcelable("articles");
m_activeArticleId = savedInstanceState.getInt("activeArticleId");
m_selectedArticles = savedInstanceState.getParcelable("selectedArticles");
m_smallScreenMode = savedInstanceState.getBoolean("smallScreenMode");
}
View view = inflater.inflate(R.layout.headlines_fragment, container, false);
@ -110,7 +105,6 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener {
public void onAttach(Activity activity) {
super.onAttach(activity);
m_feed = ((MainActivity)activity).getActiveFeed();
m_smallScreenMode = ((MainActivity)activity).getSmallScreenMode();
m_articleOps = (ArticleOps) activity;
}
@ -176,7 +170,6 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener {
out.putParcelable("articles", m_articles);
out.putInt("activeArticleId", m_activeArticleId);
out.putParcelable("selectedArticles", m_selectedArticles);
out.putBoolean("smallScreenMode", m_smallScreenMode);
}
public void setLoadingStatus(int status, boolean showProgress) {
@ -295,14 +288,14 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener {
final Article article = items.get(position);
if (v == null) {
int layoutId = (m_smallScreenMode && m_portraitMode) ? R.layout.headlines_row_small : R.layout.headlines_row;
int layoutId = R.layout.headlines_row;
switch (getItemViewType(position)) {
case VIEW_UNREAD:
layoutId = (m_smallScreenMode && m_portraitMode) ? R.layout.headlines_row_small_unread : R.layout.headlines_row_unread;
layoutId = R.layout.headlines_row_unread;
break;
case VIEW_SELECTED:
layoutId = (m_smallScreenMode && m_portraitMode) ? R.layout.headlines_row_small_selected : R.layout.headlines_row_selected;
layoutId = R.layout.headlines_row_selected;
break;
}