public static List<Playlist> GetPlaylists()\r
{\r
List<Playlist> playlists = new List<Playlist>();\r
- SelectArguments arguments = CreateSelectArgument(MEDIA_STORAGE_TYPE_QUERY, PlaylistColumns.Name + MEDIA_SORT_ORDER_ASC);\r
MediaDataReader<Playlist> dataReader = playlistInfo.Select();\r
\r
while(dataReader.Read())\r
using System;
+using System.Text;
using Tizen.NUI;
using MusicPlayer.Views;
using MusicPlayer.Common;
{
public Application() : base(ThemeOptions.PlatformThemeEnabled)
{
+ AppDomain.CurrentDomain.UnhandledException += OnAppDomainUnHandledException;
+ }
+ public void OnKeyEvent(object sender, Window.KeyEventArgs e)
+ {
+ if (e.Key.State == Key.StateType.Up && (e.Key.KeyPressedName == AppConstants.BackKeyCode || e.Key.KeyPressedName == AppConstants.EscapeKeyCode))
+ {
+ Exit();
+ }
}
+
protected override void OnCreate()
{
Tizen.Log.Info(AppConstants.LogTag, "OnCreate statrted");
ViewManager manager = new ViewManager(Window.Instance);
}
- public void OnKeyEvent(object sender, Window.KeyEventArgs e)
+ private void OnAppDomainUnHandledException(object sender, UnhandledExceptionEventArgs e)
{
- if (e.Key.State == Key.StateType.Down && (e.Key.KeyPressedName == AppConstants.BackKeyCode || e.Key.KeyPressedName == AppConstants.EscapeKeyCode))
+ StringBuilder fileStringBuilder = new StringBuilder();
+ fileStringBuilder.Append(e.ExceptionObject.ToString());
+
+ try
{
- Exit();
+ string exceptionLogFile = Current.DirectoryInfo.Data + "org.tizen.MusicPlayer_Exception.log";
+ Tizen.Log.Error(AppConstants.LogTag, fileStringBuilder.ToString());
+ System.IO.File.WriteAllText(exceptionLogFile, fileStringBuilder.ToString());
+ }
+ catch (Exception ex)
+ {
+ Tizen.Log.Debug(AppConstants.LogTag, "Failed to write app doamin exception message: "+ex.Message);
}
+ Environment.Exit(1);
}
static void Main(string[] args)
public static Random ThisThreadsRandom
{
- get { return Local ??= new Random(unchecked(Environment.TickCount * 31 + Thread.CurrentThread.ManagedThreadId)); }
+ get { return Local ??= new Random(unchecked(Environment.TickCount * 31 + Thread.CurrentThread.ManagedThreadId)); }
}
}
base.IsCreateByXaml = true;\r
WidthSpecification = width;\r
HeightSpecification = height;\r
-\r
+ Size2D = new Size2D(width, height);\r
// to show the rounded rect of the bg\r
BackgroundColor = Color.Transparent;\r
\r
\r
private TextLabel CreateTitleLabel()\r
{\r
- TextLabel titleLabel = new TextLabel("ItemLabel")\r
+ TextLabel titleLabel = new TextLabel()\r
{\r
+ StyleName = "ItemLabel",\r
ThemeChangeSensitive = true,\r
Size2D = new Size2D(596, 40),\r
PixelSize = 32,\r
\r
private TextLabel CreateSubTitleLabel()\r
{\r
- TextLabel subtitleLabel = new TextLabel("ItemLabel")\r
+ TextLabel subtitleLabel = new TextLabel()\r
{\r
+ StyleName = "ItemLabel",\r
ThemeChangeSensitive = true,\r
Size2D= new Size2D(596,36),\r
PixelSize = 28,\r
\r
private TextLabel CreateAdditionalLabel(int width)\r
{\r
- TextLabel additionalLabel = new TextLabel("ItemLabel")\r
+ TextLabel additionalLabel = new TextLabel()\r
{\r
+ StyleName = "ItemLabel",\r
ThemeChangeSensitive = true,\r
Size2D= new Size2D(108,36),\r
PixelSize = 28,\r
AddAlbumInfo();\r
}\r
\r
+ public override string GetTitleText()\r
+ {\r
+ return albumNameLabel.Text;\r
+ }\r
+\r
public override void UpdateSubContentMoreButtonItems(Menu moreMenu)\r
{\r
var addtoPlaylist = new MenuItem { Text = "Add to playlist" };\r
\r
private void OnTrackSelection(object sender, SelectionChangedEventArgs e)\r
{\r
+ if (collectionView.SelectedItem == null)\r
+ {\r
+ return;\r
+ }\r
viewModel.PlayCurrent(collectionView.SelectedItem);\r
+ collectionView.SelectedItem = null;\r
}\r
\r
private View CreateLeftView()\r
}\r
private void AddAlbumInfo()\r
{\r
- albumNameLabel = new TextLabel("LabelText")\r
+ albumNameLabel = new TextLabel()\r
{\r
+ StyleName = "LabelText",\r
+ ThemeChangeSensitive = true,\r
Size2D = new Size2D(640, 48),\r
PixelSize = 36,\r
Margin = new Extents(0, 0, 32, 0),\r
albumNameLabel.BindingContext = viewModel;\r
albumNameLabel.SetBinding(TextLabel.TextProperty, "AlbumName");\r
leftView.Add(albumNameLabel);\r
- albumArtistLabel = new TextLabel("LabelText")\r
+ albumArtistLabel = new TextLabel()\r
{\r
+ StyleName = "LabelText",\r
+ ThemeChangeSensitive = true,\r
Size2D = new Size2D(640, 36),\r
PixelSize = 28,\r
Margin = new Extents(0, 0, 14, 0),\r
collectionView.SelectionMode = ItemSelectionMode.Single;\r
collectionView.SelectionChanged += OnAlbumSelection;\r
\r
- albumCountLabel = new TextLabel("LabelText")\r
+ albumCountLabel = new TextLabel()\r
{\r
+ StyleName = "LabelText",\r
ThemeChangeSensitive = true,\r
PixelSize = 28,\r
Text = "ALBUM COUNT",\r
\r
private void OnAlbumSelection(object sender, SelectionChangedEventArgs e)\r
{\r
- Tizen.Log.Error(AppConstants.LogTag, "OnAlbumSelection Enter ==>");\r
+ if(collectionView.SelectedItem == null)\r
+ {\r
+ return;\r
+ }\r
MusicAlbum currentAlbum = (MusicAlbum)collectionView.SelectedItem;\r
SubContentViewAddEventArgs albumDetailViewArgs = new SubContentViewAddEventArgs(SubContentViewType.AlbumDetails, currentAlbum.AlbumName, currentAlbum);\r
OnSubViewAdd(albumDetailViewArgs);\r
- Tizen.Log.Error(AppConstants.LogTag, "OnAlbumSelection Exit <==");\r
+ // this is to clear the selected item\r
+ collectionView.SelectedItem = null;\r
}\r
\r
private void OnDeleteClick(object sender, ClickedEventArgs e)\r
Height = height;
WidthSpecification = Width;
HeightSpecification = Height;
-
+ Size2D = new Size2D(Width, Height);
// to show the rounded rect of the bg
BackgroundColor = Color.Transparent;
{
ImageView icon = new ImageView()
{
- WidthSpecification = IconSize,
- HeightSpecification = IconSize,
+ Size2D = new Size2D(IconSize, IconSize),
IsCreateByXaml = true,
Position2D = new Position2D(x, (Height / 2) - (IconSize / 2)),
};
{
View itemSeperator = new View()
{
- WidthSpecification = (Width - (2 * LeftPadding)),
- HeightSpecification = SeperatorHeight,
+ Size2D = new Size2D((Width - (2 * LeftPadding)), SeperatorHeight),
ExcludeLayouting = true,
Position2D = new Position2D(x, Height - SeperatorHeight),
BackgroundColor = UIColors.ItemSeperator,
{
TextLabel titleLabel = new TextLabel()
{
- WidthSpecification = (Width - (2 * LeftPadding) - IconSize - LayoutPadding),
- HeightSpecification = 40,
+ Size2D = new Size2D((Width - (2 * LeftPadding) - IconSize - LayoutPadding), 40),
TextColor = UIColors.HEX001447,
PixelSize = 32,
FontFamily = "BreezeSans",
Height = height;
WidthSpecification = Width;
HeightSpecification = Height;
-
+ Size2D = new Size2D(Width, Height);
// to show the rounded rect of the bg
BackgroundColor = Color.Transparent;
{
View itemSeperator = new View()
{
- WidthSpecification = (Width - (2 * LeftPadding)),
- HeightSpecification = SeperatorHeight,
+ Size2D = new Size2D((Width - (2 * LeftPadding)), SeperatorHeight),
ExcludeLayouting = true,
Position2D = new Position2D(x, Height - SeperatorHeight),
BackgroundColor = UIColors.ItemSeperator,
private TextLabel CreateTitleLabel()
{
- TextLabel titleLabel = new TextLabel("ItemLabel")
+ TextLabel titleLabel = new TextLabel()
{
- WidthSpecification = 1272,
- HeightSpecification = 40,
+ StyleName = "ItemLabel",
+ ThemeChangeSensitive = true,
+ Size2D = new Size2D(1272, 40),
PixelSize = 32,
FontFamily = "BreezeSans",
HorizontalAlignment = HorizontalAlignment.Begin,
private TextLabel CreateExtraLabel()
{
- TextLabel extraLabel = new TextLabel("ItemLabel")
+ TextLabel extraLabel = new TextLabel()
{
- WidthSpecification = 360,
- HeightSpecification = 36,
+ StyleName = "ItemLabel",
+ ThemeChangeSensitive = true,
+ Size2D = new Size2D(360, 36),
PixelSize = 28,
FontFamily = "BreezeSans",
VerticalAlignment = VerticalAlignment.Center,
private void OnTrackSelection(object sender, SelectionChangedEventArgs e)
{
+ if (collectionView.SelectedItem == null)
+ {
+ return;
+ }
viewModel.PlayCurrent(collectionView.SelectedItem);
+ collectionView.SelectedItem = null;
}
private void UpdateCollectionView()
collectionView.SelectionMode = ItemSelectionMode.Single;
collectionView.SelectionChanged += OnArtistSelection;
- artistCountLabel = new TextLabel("LabelText")
+ artistCountLabel = new TextLabel()
{
+ StyleName = "LabelText",
ThemeChangeSensitive = true,
PixelSize = 28,
Text = "ARTIST COUNT",
private void OnArtistSelection(object sender, SelectionChangedEventArgs e)
{
- Tizen.Log.Error(AppConstants.LogTag, "Artist Selection Started");
+ if(collectionView.SelectedItem == null)
+ {
+ return;
+ }
Artist currentArtist = (Artist)collectionView.SelectedItem;
SubContentViewAddEventArgs artistDetailViewArgs = new SubContentViewAddEventArgs(SubContentViewType.ArtistDetails, currentArtist.ArtistName, currentArtist);
OnSubViewAdd(artistDetailViewArgs);
- Tizen.Log.Error(AppConstants.LogTag, "Artist Selection Ended");
+ // this is to clear the selected item
+ collectionView.SelectedItem = null;
}
private void OnDeleteClick(object sender, ClickedEventArgs e)
base.Add(subContentViewContainer);\r
subContentViewContainer.Hide();\r
subcontentView = null;\r
+ IsSubViewAdded = false;\r
}\r
+ public bool IsSubViewAdded { get; private set; }\r
\r
public void AddSubContentView(BaseSubContentView baseSubContentView)\r
{\r
subContentViewContainer.Add(baseSubContentView);\r
subcontentView = baseSubContentView;\r
subcontentView.SubContentOperationViewAdd += OnSubContentOperationViewAdd;\r
+ IsSubViewAdded = true;\r
}\r
\r
public void RemoveSubContentView()\r
subcontentView.SubContentOperationViewAdd -= OnSubContentOperationViewAdd;\r
subcontentView.DeleteSubView();\r
subcontentView = null;\r
+ IsSubViewAdded = false;\r
}\r
\r
public virtual void ShowView()\r
UpdateContentMoreButtonItems(moreMenu);\r
}\r
\r
+ public string GetSubContentTitle()\r
+ {\r
+ if(IsSubViewAdded)\r
+ {\r
+ return subcontentView.GetTitleText();\r
+ }\r
+ return string.Empty;\r
+ }\r
+\r
protected virtual void UpdateContentMoreButtonItems(Menu moreMenu)\r
{\r
\r
public BaseSubContentView():base()
{
- Tizen.Log.Error(AppConstants.LogTag, "BaseSubContentView Enter ==>");
WidthResizePolicy = ResizePolicyType.FillToParent;
HeightResizePolicy = ResizePolicyType.FillToParent;
StyleName = "AppBackground";
};
listContainer.Add(topView);
- countLabel = new TextLabel("LabelText")
+ countLabel = new TextLabel()
{
+ StyleName = "LabelText",
ThemeChangeSensitive = true,
PixelSize = 28,
- Text = "TRACK COUNT",
HorizontalAlignment = HorizontalAlignment.Begin,
VerticalAlignment = VerticalAlignment.Center,
FontFamily = "BreezeSans",
SelectionMode = ItemSelectionMode.Single,
};
listContainer.Add(collectionView);
- Tizen.Log.Error(AppConstants.LogTag, "BaseSubContentView Exit <==");
+ }
+
+ public virtual string GetTitleText()
+ {
+ if(countLabel)
+ {
+ return countLabel.Text;
+ }
+ return string.Empty;
}
public virtual void UpdateSubContentMoreButtonItems(Menu moreMenu)
base.Add(topView);\r
FlexLayout.SetFlexGrow(topView, 0);\r
FlexLayout.SetFlexShrink(topView, 0);\r
- titleLabel = new TextLabel("PageLabel")\r
+ titleLabel = new TextLabel()\r
{\r
+ StyleName = "PageLabel",\r
ThemeChangeSensitive = true,\r
Text = "Music",\r
PixelSize = 40,\r
RelativeLayout.SetLeftRelativeOffset(titleLabel, 0.0f);\r
}\r
}\r
- Tizen.Log.Error(AppConstants.LogTag, "BackButton Exit <==");\r
}\r
}\r
\r
Tizen.Log.Error(AppConstants.LogTag, "ContentView is already added, remove it first");\r
return;\r
}\r
- BackButton = false;\r
- Title = "Music";\r
+ if (view.IsSubViewAdded)\r
+ {\r
+ BackButton = true;\r
+ Title = view.GetSubContentTitle();\r
+ }\r
+ else\r
+ {\r
+ BackButton = false;\r
+ Title = "Music";\r
+ }\r
contentView.Add(view);\r
baseContentView = view;\r
}\r
}\r
if (type == DisposeTypes.Explicit)\r
{\r
- List<View> children = topView?.Children;\r
- foreach (View child in children)\r
+ if (topView != null)\r
{\r
- topView.Remove(child);\r
- child?.Dispose();\r
+ List<View> children = topView.Children;\r
+ foreach (View child in children)\r
+ {\r
+ topView.Remove(child);\r
+ child?.Dispose();\r
+ }\r
+ base.Remove(topView);\r
+ topView.Dispose();\r
+ topView = null;\r
}\r
- base.Remove(topView);\r
- topView?.Dispose();\r
- topView = null;\r
\r
// Do not delete the children of contentview as they are not owned by BaseView\r
base.Remove(contentView);\r
\r
private void OnMoreButtonClicked(object sender, ClickedEventArgs e)\r
{\r
- Menu moreMenu = CreateMenu();\r
if(baseContentView != null)\r
{\r
+ Menu moreMenu = CreateMenu();\r
baseContentView.UpdateButtonMoreItems(moreMenu);\r
moreMenu.Post();\r
}\r
- else\r
- {\r
- moreMenu.Dismiss();\r
- }\r
}\r
}\r
}
\ No newline at end of file
Height = height;\r
WidthSpecification = Width;\r
HeightSpecification = Height;\r
-\r
+ Size2D = new Size2D(Width, Height);\r
// to show the rounded rect of the bg\r
BackgroundColor = Color.Transparent;\r
\r
icon = new ImageView()\r
{\r
- WidthSpecification = IconSize,\r
- HeightSpecification = IconSize,\r
+ Size2D = new Size2D(IconSize, IconSize),\r
IsCreateByXaml = true,\r
Position2D = new Position2D(x, ((Height / 2) - (IconSize / 2))),\r
};\r
\r
itemSeperator = new View()\r
{\r
- WidthSpecification = (Width - (2 * LeftPadding)),\r
- HeightSpecification = SeperatorHeight,\r
+ Size2D = new Size2D((Width - (2 * LeftPadding)), SeperatorHeight),\r
ExcludeLayouting = true,\r
Position2D = new Position2D(x, Height - SeperatorHeight),\r
BackgroundColor = UIColors.ItemSeperator,\r
};\r
base.Add(itemSeperator);\r
\r
- titleLabel = new TextLabel("ItemLabel")\r
+ titleLabel = new TextLabel()\r
{\r
+ StyleName = "ItemLabel",\r
ThemeChangeSensitive = true,\r
- WidthSpecification = (Width - (2 * LeftPadding) - IconSize - LayoutPadding),\r
- HeightSpecification = 40,\r
+ Size2D = new Size2D((Width - (2 * LeftPadding) - IconSize - LayoutPadding), 40),\r
PixelSize = 32,\r
FontFamily = "BreezeSans",\r
VerticalAlignment = VerticalAlignment.Center,\r
titleLabel.FontStyle = UIFontStyles.NormalLight;\r
base.Add(titleLabel);\r
\r
- subtitleLabel = new TextLabel("ItemLabel")\r
+ subtitleLabel = new TextLabel()\r
{\r
+ StyleName = "ItemLabel",\r
ThemeChangeSensitive = true,\r
- WidthSpecification = (Width - (2 * LeftPadding) - IconSize - LayoutPadding),\r
- HeightSpecification = 36,\r
+ Size2D = new Size2D((Width - (2 * LeftPadding) - IconSize - LayoutPadding), 36),\r
PixelSize = 28,\r
FontFamily = "BreezeSans",\r
VerticalAlignment = VerticalAlignment.Center,\r
private void AddTitleLabel()
{
- titleLabel = new TextLabel("LabelText")
+ titleLabel = new TextLabel()
{
+ StyleName = "LabelText",
ThemeChangeSensitive = true,
Size2D = new Size2D(ControlViewWidth, TitleLabelHeight),
Position2D = new Position2D(0, 0),
private void AddArtistLabel()
{
- artistLabel = new TextLabel("LabelText")
+ artistLabel = new TextLabel()
{
+ StyleName = "LabelText",
ThemeChangeSensitive = true,
Size2D = new Size2D(ControlViewWidth, ArtistLabelHeight),
Position2D = new Position2D(0, 62),
private void AddCurrentTimeLabel(View sliderView)
{
- currentTime = new TextLabel("LabelText")
+ currentTime = new TextLabel()
{
+ StyleName = "LabelText",
ThemeChangeSensitive = true,
Size2D = new Size2D(400, 32),
Position2D = new Position2D(0, 48),
private void AddTotalTimeLabel(View sliderView)
{
- totalTime = new TextLabel("LabelText")
+ totalTime = new TextLabel()
{
+ StyleName = "LabelText",
ThemeChangeSensitive = true,
Size2D = new Size2D(400, 32),
Position2D = new Position2D(1792 - 400, 48),
private void OnTrackSelection(object sender, SelectionChangedEventArgs e)
{
+ if(collectionView.SelectedItem == null)
+ {
+ return;
+ }
viewModel.PlayCurrent(collectionView.SelectedItem);
+ collectionView.SelectedItem = null;
}
private void OnDeleteClick(object sender, ClickedEventArgs e)
});
collectionView.SelectionChanged += OnPlaylistSelectionChange;
- playlistCountLabel = new TextLabel("LabelText")
+ playlistCountLabel = new TextLabel()
{
+ StyleName = "LabelText",
ThemeChangeSensitive = true,
PixelSize = 28,
Text = "Playlist COUNT",
private void OnPlaylistSelectionChange(object sender, SelectionChangedEventArgs e)
{
+ if(collectionView.SelectedItem == null)
+ {
+ return;
+ }
PlaylistModel playlistModel = (PlaylistModel)collectionView.SelectedItem;
SubContentViewAddEventArgs playlistDetailViewArgs = new SubContentViewAddEventArgs(SubContentViewType.PlaylistDetails, playlistModel.PlaylistName, playlistModel.PlaylistId);
OnSubViewAdd(playlistDetailViewArgs);
+ // this is clear the selected item
+ collectionView.SelectedItem = null;
}
private void CreatePlaylistPopup()
{
- TextLabel titleLabel = new TextLabel("LabelText")
+ TextLabel titleLabel = new TextLabel()
{
+ StyleName = "LabelText",
ThemeChangeSensitive = true,
PixelSize = 40,
FontFamily = "BreezeSans",
BackgroundColor = Color.Transparent,
};
- TextLabel contentLabel = new TextLabel("LabelText")
+ TextLabel contentLabel = new TextLabel()
{
+ StyleName = "LabelText",
ThemeChangeSensitive = true,
PixelSize = 32,
FontFamily = "BreezeSans",
collectionView.SelectionMode = ItemSelectionMode.Single;\r
collectionView.SelectionChanged += OnTrackSelection;\r
\r
- trackCountLabel = new TextLabel("LabelText")\r
+ trackCountLabel = new TextLabel()\r
{\r
+ StyleName = "LabelText",\r
ThemeChangeSensitive = true,\r
PixelSize = 28,\r
Text = "TRACK COUNT",\r
\r
private void OnTrackSelection(object sender, SelectionChangedEventArgs e)\r
{\r
+ if(collectionView.SelectedItem == null)\r
+ {\r
+ return;\r
+ }\r
viewModel.OnTrackSelected(collectionView.SelectedItem);\r
+ collectionView.SelectedItem = null;\r
}\r
\r
private void OnDeleteClick(object sender, ClickedEventArgs e)\r