Added player fragment to main activity

This commit is contained in:
daniel oeh 2012-09-05 17:20:57 +02:00
parent e106dc8c1b
commit 2e9bd1f07e
5 changed files with 97 additions and 62 deletions

View File

@ -1,55 +1,68 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragmentLayout" android:id="@+id/fragmentLayout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@color/ics_gray" > android:orientation="vertical" >
<ImageButton <View
android:id="@+id/butPlay" android:layout_width="match_parent"
android:background="@drawable/borderless_button" android:layout_height="0.5dp"
android:layout_width="50dp" android:background="#AAAAAA" />
android:layout_height="50dp"
android:layout_alignParentRight="true" <View
android:layout_centerVertical="true" /> android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#D2D2D2" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/actionbar_gray" >
<RelativeLayout <RelativeLayout
android:id="@+id/layoutInfo" android:id="@+id/layoutInfo"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentLeft="true" android:layout_weight="1"
android:layout_toLeftOf="@id/butPlay"
android:background="@drawable/borderless_button" > android:background="@drawable/borderless_button" >
<ImageView <ImageView
android:id="@+id/imgvCover" android:id="@+id/imgvCover"
android:layout_width="55dp" android:layout_width="@dimen/external_player_height"
android:layout_height="55dp" android:layout_height="@dimen/external_player_height"
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_margin="8dp"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:cropToPadding="true" android:cropToPadding="true"
android:scaleType="fitXY" /> android:scaleType="fitXY" />
<TextView <TextView
android:id="@+id/txtvTitle" android:id="@+id/txtvTitle"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentTop="true" android:layout_alignParentTop="true"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp" android:layout_marginRight="8dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:layout_toRightOf="@id/imgvCover" android:layout_toRightOf="@id/imgvCover"
android:maxLines="1"
android:textStyle="bold" /> android:textStyle="bold" />
<TextView <TextView
android:id="@+id/txtvPosition" android:id="@+id/txtvPosition"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentBottom="true" android:layout_below="@id/txtvTitle"
android:layout_marginRight="8dp" android:layout_margin="8dp"
android:layout_marginTop="8dp" android:layout_toRightOf="@id/imgvCover"
android:layout_toRightOf="@id/imgvCover" /> android:textSize="14dp" />
</RelativeLayout> </RelativeLayout>
</RelativeLayout> <ImageButton
android:id="@+id/butPlay"
android:layout_width="@dimen/external_player_height"
android:layout_height="@dimen/external_player_height"
android:background="@drawable/borderless_button" />
</LinearLayout>
</LinearLayout>

View File

@ -1,21 +1,27 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_view" android:id="@+id/main_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent" >
android:orientation="vertical" >
<com.viewpagerindicator.TabPageIndicator <com.viewpagerindicator.TabPageIndicator
android:id="@+id/tabs" android:id="@+id/tabs"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
/> android:layout_alignParentTop="true" />
<FrameLayout
android:id="@+id/playerFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" />
<android.support.v4.view.ViewPager <android.support.v4.view.ViewPager
android:id="@+id/viewpager" android:id="@+id/viewpager"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0px" android:layout_height="0px"
android:layout_weight="1"> android:layout_above="@id/playerFragment"
android:layout_below="@id/tabs" >
</android.support.v4.view.ViewPager> </android.support.v4.view.ViewPager>
</LinearLayout> </RelativeLayout>

View File

@ -2,5 +2,6 @@
<resources> <resources>
<dimen name="widget_margin">8dp</dimen> <dimen name="widget_margin">8dp</dimen>
<dimen name="thumbnail_length">55dp</dimen> <dimen name="thumbnail_length">55dp</dimen>
<dimen name="external_player_height">55dp</dimen>
</resources> </resources>

View File

@ -7,6 +7,7 @@ import android.content.IntentFilter;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.app.FragmentStatePagerAdapter; import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager;
import android.util.Log; import android.util.Log;
@ -20,6 +21,7 @@ import com.viewpagerindicator.TabPageIndicator;
import de.danoeh.antennapod.asynctask.OpmlExportWorker; import de.danoeh.antennapod.asynctask.OpmlExportWorker;
import de.danoeh.antennapod.feed.FeedManager; import de.danoeh.antennapod.feed.FeedManager;
import de.danoeh.antennapod.fragment.ExternalPlayerFragment;
import de.danoeh.antennapod.fragment.FeedlistFragment; import de.danoeh.antennapod.fragment.FeedlistFragment;
import de.danoeh.antennapod.fragment.QueueFragment; import de.danoeh.antennapod.fragment.QueueFragment;
import de.danoeh.antennapod.fragment.UnreadItemlistFragment; import de.danoeh.antennapod.fragment.UnreadItemlistFragment;
@ -38,6 +40,7 @@ public class MainActivity extends SherlockFragmentActivity {
private ViewPager viewpager; private ViewPager viewpager;
private MainPagerAdapter pagerAdapter; private MainPagerAdapter pagerAdapter;
private TabPageIndicator tabs; private TabPageIndicator tabs;
private ExternalPlayerFragment externalPlayerFragment;
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
@ -53,6 +56,12 @@ public class MainActivity extends SherlockFragmentActivity {
viewpager.setAdapter(pagerAdapter); viewpager.setAdapter(pagerAdapter);
tabs.setViewPager(viewpager); tabs.setViewPager(viewpager);
FragmentTransaction transaction = getSupportFragmentManager()
.beginTransaction();
externalPlayerFragment = new ExternalPlayerFragment();
transaction.replace(R.id.playerFragment, externalPlayerFragment);
transaction.commit();
} }
@Override @Override

View File

@ -21,7 +21,6 @@ import com.actionbarsherlock.app.SherlockFragment;
import de.danoeh.antennapod.AppConfig; import de.danoeh.antennapod.AppConfig;
import de.danoeh.antennapod.R; import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.AudioplayerActivity;
import de.danoeh.antennapod.asynctask.FeedImageLoader; import de.danoeh.antennapod.asynctask.FeedImageLoader;
import de.danoeh.antennapod.feed.FeedMedia; import de.danoeh.antennapod.feed.FeedMedia;
import de.danoeh.antennapod.receiver.PlayerWidget; import de.danoeh.antennapod.receiver.PlayerWidget;
@ -48,6 +47,10 @@ public class ExternalPlayerFragment extends SherlockFragment {
private boolean mediaInfoLoaded = false; private boolean mediaInfoLoaded = false;
public ExternalPlayerFragment() {
super();
}
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { Bundle savedInstanceState) {
@ -217,9 +220,12 @@ public class ExternalPlayerFragment extends SherlockFragment {
if (AppConfig.DEBUG) if (AppConfig.DEBUG)
Log.d(TAG, "Refreshing fragment state"); Log.d(TAG, "Refreshing fragment state");
if (playbackService == null) { if (playbackService == null) {
fragmentLayout.setVisibility(View.GONE);
if (PlaybackService.isRunning) {
getActivity().bindService( getActivity().bindService(
new Intent(getActivity(), PlaybackService.class), new Intent(getActivity(), PlaybackService.class),
mConnection, 0); mConnection, 0);
}
} else { } else {
PlayerStatus status = playbackService.getStatus(); PlayerStatus status = playbackService.getStatus();
if ((status == PlayerStatus.PAUSED || status == PlayerStatus.PLAYING)) { if ((status == PlayerStatus.PAUSED || status == PlayerStatus.PLAYING)) {