Skip to content

Commit

Permalink
Android: Converted EqualizerPresetDetails fragment to activity. Added…
Browse files Browse the repository at this point in the history
… layout for EqualizerPresets. Added empty OutputMeterView.

Related to issue #406.
  • Loading branch information
ycastonguay committed Jul 3, 2013
1 parent 8886b92 commit adcd6ad
Show file tree
Hide file tree
Showing 12 changed files with 727 additions and 494 deletions.
141 changes: 141 additions & 0 deletions MPfm/MPfm.Android/Classes/Activities/EqualizerPresetDetailsActivity.cs
@@ -0,0 +1,141 @@
// Copyright © 2011-2013 Yanick Castonguay
//
// This file is part of MPfm.
//
// MPfm is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// MPfm is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with MPfm. If not, see <http://www.gnu.org/licenses/>.

using System;
using System.Collections.Generic;
using System.Reflection;
using Android.App;
using Android.Content;
using Android.Content.PM;
using Android.Support.V4.App;
using Android.Views;
using Android.OS;
using MPfm.Android.Classes.Navigation;
using MPfm.MVP.Bootstrap;
using MPfm.MVP.Navigation;
using MPfm.MVP.Views;
using MPfm.Player.Objects;

namespace MPfm.Android
{
[Activity(Label = "Equalizer Preset Details", ScreenOrientation = ScreenOrientation.Sensor, Theme = "@style/MyAppTheme", ConfigurationChanges = ConfigChanges.KeyboardHidden | ConfigChanges.Orientation | ConfigChanges.ScreenSize)]
public class EqualizerPresetDetailsActivity : BaseActivity, IEqualizerPresetDetailsView
{
private MobileNavigationManager _navigationManager;
private string _sourceActivityType;

protected override void OnCreate(Bundle bundle)
{
Console.WriteLine("EqualizerPresetDetailsActivity - OnCreate");
base.OnCreate(bundle);

_navigationManager = Bootstrapper.GetContainer().Resolve<MobileNavigationManager>();
SetContentView(Resource.Layout.EqualizerPresetDetails);
ActionBar.SetDisplayHomeAsUpEnabled(true);
ActionBar.SetHomeButtonEnabled(true);

// Save the source activity type for later (for providing Up navigation)
_sourceActivityType = Intent.GetStringExtra("sourceActivity");

// Since the onViewReady action could not be added to an intent, tell the NavMgr the view is ready
((AndroidNavigationManager)_navigationManager).SetEqualizerPresetDetailsActivityInstance(this);
}

protected override void OnStart()
{
Console.WriteLine("EqualizerPresetDetailsActivity - OnStart");
base.OnStart();
}

protected override void OnRestart()
{
Console.WriteLine("EqualizerPresetDetailsActivity - OnRestart");
base.OnRestart();
}

protected override void OnPause()
{
Console.WriteLine("EqualizerPresetDetailsActivity - OnPause");
base.OnPause();
}

protected override void OnResume()
{
Console.WriteLine("EqualizerPresetDetailsActivity - OnResume");
base.OnResume();
}

protected override void OnStop()
{
Console.WriteLine("EqualizerPresetDetailsActivity - OnStop");
base.OnStop();
}

protected override void OnDestroy()
{
Console.WriteLine("EqualizerPresetDetailsActivity - OnDestroy");
base.OnDestroy();
}

public override bool OnOptionsItemSelected(IMenuItem item)
{
switch (item.ItemId)
{
case global::Android.Resource.Id.Home:
var type = Type.GetType(_sourceActivityType);
var intent = new Intent(this, type);
intent.AddFlags(ActivityFlags.ClearTop | ActivityFlags.SingleTop);
this.StartActivity(intent);
this.Finish();
return true;
break;
default:
return base.OnOptionsItemSelected(item);
break;
}
}

#region IEqualizerPresetDetailsView implementation

public Action OnResetPreset { get; set; }
public Action OnNormalizePreset { get; set; }
public Action OnRevertPreset { get; set; }
public Action<string> OnSavePreset { get; set; }
public Action<string, float> OnSetFaderGain { get; set; }

public void EqualizerPresetDetailsError(Exception ex)
{
RunOnUiThread(() => {
AlertDialog ad = new AlertDialog.Builder(this).Create();
ad.SetCancelable(false);
ad.SetMessage(string.Format("An error has occured in EqualizerPresetDetails: {0}", ex));
ad.SetButton("OK", (sender, args) => ad.Dismiss());
ad.Show();
});
}

public void ShowMessage(string title, string message)
{
}

public void RefreshPreset(EQPreset preset)
{
}

#endregion
}
}
12 changes: 12 additions & 0 deletions MPfm/MPfm.Android/Classes/Activities/EqualizerPresetsActivity.cs
Expand Up @@ -91,6 +91,13 @@ protected override void OnDestroy()
base.OnDestroy();
}

public override bool OnCreateOptionsMenu(IMenu menu)
{
MenuInflater.Inflate(Resource.Menu.equalizerpresets_menu, menu);
Console.WriteLine("EqualizerPresetsActivity - OnCreateOptionsMenu");
return true;
}

public override bool OnOptionsItemSelected(IMenuItem item)
{
switch (item.ItemId)
Expand All @@ -103,6 +110,11 @@ public override bool OnOptionsItemSelected(IMenuItem item)
this.Finish();
return true;
break;
case Resource.Id.equalizerPresetsMenu_item_add:
Console.WriteLine("EqualizerPresetsActivity - Menu item click - Showing equalizer preset details view...");
OnAddPreset();
return true;
break;
default:
return base.OnOptionsItemSelected(item);
break;
Expand Down
2 changes: 1 addition & 1 deletion MPfm/MPfm.Android/Classes/Application.cs
Expand Up @@ -60,7 +60,7 @@ public override void OnCreate()
container.Register<ISyncDownloadView, SyncDownloadFragment>().AsMultiInstance();
container.Register<ISyncMenuView, SyncMenuFragment>().AsMultiInstance();
container.Register<IEqualizerPresetsView, EqualizerPresetsActivity>().AsMultiInstance();
container.Register<IEqualizerPresetDetailsView, EqualizerPresetDetailsFragment>().AsMultiInstance();
container.Register<IEqualizerPresetDetailsView, EqualizerPresetDetailsActivity>().AsMultiInstance();
container.Register<IPreferencesView, PreferencesActivity>().AsMultiInstance();
container.Register<IAudioPreferencesView, AudioPreferencesFragment>().AsMultiInstance();
container.Register<IGeneralPreferencesView, GeneralPreferencesFragment>().AsMultiInstance();
Expand Down
65 changes: 65 additions & 0 deletions MPfm/MPfm.Android/Classes/Controls/OutputMeterView.cs
@@ -0,0 +1,65 @@
// Copyright © 2011-2013 Yanick Castonguay
//
// This file is part of MPfm.
//
// MPfm is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// MPfm is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with MPfm. If not, see <http://www.gnu.org/licenses/>.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Util;
using Android.Views;
using Android.Widget;

namespace org.sessionsapp.android
{
public class OutputMeterView : View
{
public OutputMeterView(Context context) : base(context)
{
Initialize();
}

public OutputMeterView(Context context, IAttributeSet attrs) : base (context, attrs)
{
Initialize();
}

public OutputMeterView(Context context, IAttributeSet attrs, int defStyle) : base(context, attrs, defStyle)
{
Initialize();
}

public OutputMeterView(IntPtr javaReference, JniHandleOwnership transfer)
: base(javaReference, transfer)
{
Initialize();
}

private void Initialize()
{
}

public override void Draw(global::Android.Graphics.Canvas canvas)
{
Console.WriteLine("OutputMeterView - Draw");
base.Draw(canvas);
}
}
}

This file was deleted.

16 changes: 14 additions & 2 deletions MPfm/MPfm.Android/Classes/Navigation/AndroidNavigationManager.cs
Expand Up @@ -37,6 +37,7 @@ public sealed class AndroidNavigationManager : MobileNavigationManager
private Action<IBaseView> _onEqualizerPresetsViewReady;
private Action<IBaseView> _onSyncViewReady;
private Action<IBaseView> _onMarkerDetailsViewReady;
private Action<IBaseView> _onEqualizerPresetDetailsViewReady;

public MainActivity MainActivity { get; set; }

Expand Down Expand Up @@ -135,8 +136,13 @@ protected override void CreateEqualizerPresetsViewInternal(IBaseView sourceView,
_onEqualizerPresetsViewReady = onViewReady;
var activity = GetActivityFromView(sourceView);
StartActivity(activity, typeof(EqualizerPresetsActivity));
//var intent = new Intent(MainActivity, typeof(EqualizerPresetsActivity));
//MainActivity.StartActivity(intent);
}

protected override void CreateEqualizerPresetDetailsViewInternal(IBaseView sourceView, Action<IBaseView> onViewReady)
{
_onEqualizerPresetDetailsViewReady = onViewReady;
var activity = GetActivityFromView(sourceView);
StartActivity(activity, typeof(EqualizerPresetDetailsActivity));
}

protected override void CreateMarkerDetailsViewInternal(IBaseView sourceView, Action<IBaseView> onViewReady)
Expand Down Expand Up @@ -171,6 +177,12 @@ public void SetEqualizerPresetsActivityInstance(EqualizerPresetsActivity activit
_onEqualizerPresetsViewReady(activity);
}

public void SetEqualizerPresetDetailsActivityInstance(EqualizerPresetDetailsActivity activity)
{
if (_onEqualizerPresetDetailsViewReady != null)
_onEqualizerPresetDetailsViewReady(activity);
}

public void SetMarkerDetailsActivityInstance(MarkerDetailsActivity activity)
{
if (_onMarkerDetailsViewReady != null)
Expand Down
4 changes: 3 additions & 1 deletion MPfm/MPfm.Android/MPfm.Android.csproj
Expand Up @@ -56,6 +56,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Classes\Activities\BaseActivity.cs" />
<Compile Include="Classes\Activities\EqualizerPresetDetailsActivity.cs" />
<Compile Include="Classes\Activities\MarkerDetailsActivity.cs" />
<Compile Include="Classes\Activities\SyncActivity.cs" />
<Compile Include="Classes\Activities\PlayerActivity.cs" />
Expand All @@ -68,12 +69,12 @@
<Compile Include="Classes\Adapters\TabPagerAdapter.cs" />
<Compile Include="Classes\Adapters\MobileLibraryBrowserListAdapter.cs" />
<Compile Include="Classes\Application.cs" />
<Compile Include="Classes\Controls\OutputMeterView.cs" />
<Compile Include="Classes\Controls\WaveFormView.cs" />
<Compile Include="Classes\Fragments\Base\BaseFragment.cs" />
<Compile Include="Classes\Fragments\AudioPreferencesFragment.cs" />
<Compile Include="Classes\Fragments\Base\BaseListFragment.cs" />
<Compile Include="Classes\Fragments\Base\BaseDialogFragment.cs" />
<Compile Include="Classes\Fragments\EqualizerPresetDetailsFragment.cs" />
<Compile Include="Classes\Fragments\SyncDownloadFragment.cs" />
<Compile Include="Classes\Fragments\SyncMenuFragment.cs" />
<Compile Include="Classes\Fragments\PlayerMetadataFragment.cs" />
Expand Down Expand Up @@ -251,6 +252,7 @@
<AndroidResource Include="Resources\animator\fade_in.xml" />
<AndroidResource Include="Resources\xml\widget_player.xml" />
<AndroidResource Include="Resources\Menu\player_menu.xml" />
<AndroidResource Include="Resources\Menu\equalizerpresets_menu.xml" />
</ItemGroup>
<ItemGroup>
<Folder Include="Lib\armeabi\" />
Expand Down

0 comments on commit adcd6ad

Please sign in to comment.