Skip to content

Commit

Permalink
Android: Added controls to Loops, Markers, Pitch Shifting, Time Shift…
Browse files Browse the repository at this point in the history
…ing fragments.

Related to issue #406.
  • Loading branch information
ycastonguay committed Jul 1, 2013
1 parent 5ecda3d commit 5dc027d
Show file tree
Hide file tree
Showing 9 changed files with 432 additions and 117 deletions.
4 changes: 2 additions & 2 deletions MPfm/MPfm.Android/Classes/Activities/MainActivity.cs
Expand Up @@ -48,7 +48,7 @@ public class MainActivity : BaseActivity, IMobileOptionsMenuView
private LinearLayout _miniPlayer;
private List<KeyValuePair<MobileOptionsMenuType, string>> _options;
private ViewPager _viewPager;
private MainTabPagerAdapter _tabPagerAdapter;
private MainTabStatePagerAdapter _tabPagerAdapter;
private TextView _lblArtistName;
private TextView _lblAlbumTitle;
private TextView _lblSongTitle;
Expand All @@ -67,7 +67,7 @@ protected override void OnCreate(Bundle bundle)
// Setup view pager
_viewPager = FindViewById<ViewPager>(Resource.Id.main_pager);
_viewPager.OffscreenPageLimit = 4;
_tabPagerAdapter = new MainTabPagerAdapter(FragmentManager, _viewPager, ActionBar);
_tabPagerAdapter = new MainTabStatePagerAdapter(FragmentManager, _viewPager, ActionBar);
_viewPager.Adapter = _tabPagerAdapter;
_viewPager.SetOnPageChangeListener(_tabPagerAdapter);

Expand Down
Expand Up @@ -26,18 +26,18 @@

namespace MPfm.Android.Classes.Adapters
{
public class MainTabPagerAdapter : FragmentStatePagerAdapter, ActionBar.ITabListener, ViewPager.IOnPageChangeListener
public class MainTabStatePagerAdapter : FragmentStatePagerAdapter, ActionBar.ITabListener, ViewPager.IOnPageChangeListener
{
private readonly List<Tuple<MobileNavigationTabType, List<Fragment>>> _fragments;
private readonly ViewPager _viewPager;
private readonly ActionBar _actionBar;

public MainTabPagerAdapter(IntPtr javaReference, JniHandleOwnership transfer)
public MainTabStatePagerAdapter(IntPtr javaReference, JniHandleOwnership transfer)
: base(javaReference, transfer)
{
}

public MainTabPagerAdapter(FragmentManager fm, ViewPager viewPager, ActionBar actionBar)
public MainTabStatePagerAdapter(FragmentManager fm, ViewPager viewPager, ActionBar actionBar)
: base(fm)
{
_fragments = new List<Tuple<MobileNavigationTabType, List<Fragment>>>();
Expand Down Expand Up @@ -100,7 +100,6 @@ public void OnTabUnselected(ActionBar.Tab tab, FragmentTransaction ft)

public override Fragment GetItem(int index)
{
Console.WriteLine("MainTabPagerAdapter - GetItem - index: {0}", index);
return _fragments[index].Item2.Last();
}

Expand All @@ -117,15 +116,13 @@ public override int GetItemPosition(Java.Lang.Object obj)
break;
}
}
Console.WriteLine("MainTabPagerAdapter - GetItemPosition - obj: {0} - foundItem: {1}", obj.GetType().FullName, foundItem);
return foundItem ? PositionUnchanged : PositionNone;
}

public override int Count
{
get
{
Console.WriteLine("MainTabPagerAdapter - GetCount");
return _fragments.Count;
}
}
Expand Down
2 changes: 1 addition & 1 deletion MPfm/MPfm.Android/MPfm.Android.csproj
Expand Up @@ -62,7 +62,7 @@
<Compile Include="Classes\Activities\MainActivity.cs" />
<Compile Include="Classes\Activities\PreferencesActivity.cs" />
<Compile Include="Classes\Adapters\PreferencesFragmentPagerAdapter.cs" />
<Compile Include="Classes\Adapters\MainTabPagerAdapter.cs" />
<Compile Include="Classes\Adapters\MainTabStatePagerAdapter.cs" />
<Compile Include="Classes\Adapters\TabPagerAdapter.cs" />
<Compile Include="Classes\Adapters\MobileLibraryBrowserListAdapter.cs" />
<Compile Include="Classes\Application.cs" />
Expand Down
35 changes: 34 additions & 1 deletion MPfm/MPfm.Android/Resources/Layout/Loops.axml
@@ -1,6 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/loops_lblTitle"
android:text="Loops"
android:textSize="20dp"
android:textColor="#ffffffff"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:padding="6dip" />
<Button
android:id="@+id/loops_btnAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:background="#33000000"
android:text="Add"
android:textColor="#ffffffff"
android:padding="8dp" />
</RelativeLayout>
<ListView
android:id="@+id/loops_listView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/transparent"
android:cacheColorHint="#00000000"
android:focusable="false"
android:focusableInTouchMode="false"
android:clickable="false"
android:divider="#00000000"
android:listSelector="@android:color/transparent" />
</LinearLayout>
25 changes: 15 additions & 10 deletions MPfm/MPfm.Android/Resources/Layout/Main.axml
Expand Up @@ -10,42 +10,47 @@
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#FF333333"
android:gravity="bottom"
android:background="#36454F"
android:gravity="center_vertical"
android:layout_alignParentBottom="true">
<ImageView
android:id="@+id/main_miniplayer_imageView"
android:layout_width="70dp"
android:layout_height="70dp"
android:src="@drawable/icon" />
<LinearLayout
android:id="@+id/main_miniplayer_text"
android:orientation="vertical"
android:id="@+id/main_miniplayer_text"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="8dp"
android:background="#36454F">
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="8dp">
<TextView
android:id="@+id/main_miniplayer_lblArtistName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:text=""
android:textSize="14dip" />
android:textSize="14dip"
android:ellipsize="end"
android:singleLine="true" />
<TextView
android:id="@+id/main_miniplayer_lblAlbumTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textColor="#EEEEEE"
android:textSize="12dip" />
android:textSize="12dip"
android:ellipsize="end"
android:singleLine="true" />
<TextView
android:id="@+id/main_miniplayer_lblSongTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textColor="#CCCCCC"
android:textSize="11dip" />
android:textSize="11dip"
android:ellipsize="end"
android:singleLine="true" />
</LinearLayout>
</LinearLayout>
<android.support.v4.view.ViewPager
Expand Down
32 changes: 22 additions & 10 deletions MPfm/MPfm.Android/Resources/Layout/Markers.axml
Expand Up @@ -3,16 +3,28 @@
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/markers_lblTitle"
android:text="Markers"
android:textSize="20dp"
android:background="#00000000"
android:textColor="#ffffffff"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:padding="6dip" />
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/markers_lblTitle"
android:text="Markers"
android:textSize="20dp"
android:textColor="#ffffffff"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:padding="6dip" />
<Button
android:id="@+id/markers_btnAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:background="#33000000"
android:text="Add"
android:textColor="#ffffffff"
android:padding="8dp" />
</RelativeLayout>
<ListView
android:id="@+id/markers_listView"
android:layout_width="fill_parent"
Expand Down
105 changes: 103 additions & 2 deletions MPfm/MPfm.Android/Resources/Layout/PitchShifting.axml
@@ -1,6 +1,107 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/pitchShifting_lblTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="Pitch Shifting"
android:textSize="20dp"
android:textColor="#ffffffff"
android:padding="6dip" />
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
android:layout_height="wrap_content"
android:paddingLeft="8dp"
android:paddingRight="8dp">
<TextView
android:id="@+id/pitchShifting_lblCurrentInterval"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:gravity="left"
android:text="Interval (semitones):"
android:textSize="14dp"
android:textColor="#ffffffff"
android:textStyle="bold" />
<TextView
android:id="@+id/pitchShifting_lblNewKey"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:gravity="right"
android:text="New key:"
android:textSize="14dp"
android:textColor="#ffffffff"
android:textStyle="bold" />
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="8dp"
android:paddingRight="8dp">
<TextView
android:id="@+id/pitchShifting_lblCurrentIntervalValue"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:gravity="left"
android:text="0"
android:textSize="14dp"
android:textColor="#ffffffff" />
<TextView
android:id="@+id/pitchShifting_lblNewKeyValue"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:gravity="right"
android:text="C"
android:textSize="14dp"
android:textColor="#ffffffff" />
</RelativeLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:padding="8dp">
<SeekBar
android:id="@+id/pitchShifting_seekBar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:max="100" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:padding="8dp">
<Button
android:id="@+id/pitchShifting_btnIncrement"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="-"
android:textColor="#ffffffff"
android:padding="8dp" />
<Button
android:id="@+id/pitchShifting_btnDecrement"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="+"
android:textColor="#ffffffff"
android:padding="8dp" />
<Button
android:id="@+id/pitchShifting_btnReset"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="Reset"
android:textColor="#ffffffff"
android:padding="8dp" />
</LinearLayout>
</LinearLayout>

0 comments on commit 5dc027d

Please sign in to comment.