making small player

This commit is contained in:
Gboy9155
2017-10-25 00:13:09 +02:00
parent 2ca8cd31b4
commit 2aa8904191
10 changed files with 332 additions and 308 deletions

View File

@@ -39,6 +39,7 @@
<EnableLLVM>false</EnableLLVM>
<BundleAssemblies>false</BundleAssemblies>
<Debugger>Xamarin</Debugger>
<AndroidSupportedAbis />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugSymbols>True</DebugSymbols>
@@ -148,7 +149,6 @@
<Compile Include="MainApplication.cs" />
<Compile Include="Resources\Fragments\DownloadFragment.cs" />
<Compile Include="Resources\Fragments\EmptyFragment.cs" />
<Compile Include="Resources\Fragments\playerControl.cs" />
<Compile Include="Resources\Portable Class\Adapter.cs" />
<Compile Include="Resources\Portable Class\Browse.cs" />
<Compile Include="Resources\Portable Class\Downloader.cs" />
@@ -162,6 +162,7 @@
<Compile Include="Resources\Portable Class\PlaylistTracks.cs" />
<Compile Include="Resources\Portable Class\Preferences.cs" />
<Compile Include="Resources\Portable Class\Queue.cs" />
<Compile Include="Resources\Portable Class\SleepManager.cs" />
<Compile Include="Resources\Portable Class\TwoLineAdapter.cs" />
<Compile Include="Resources\Portable Class\ViewPagerAdapter.cs" />
<Compile Include="Resources\Portable Class\YTitemToSong.cs" />
@@ -298,11 +299,6 @@
<SubType>Designer</SubType>
</AndroidResource>
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\layout\playerControl.xml">
<SubType>Designer</SubType>
</AndroidResource>
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\layout\playerInfo.xml" />
</ItemGroup>
@@ -350,6 +346,11 @@
<ItemGroup>
<AndroidResource Include="Resources\drawable\ic_playlist_add_white_24dp.png" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\layout\SmallPlayer.xml">
<SubType>Designer</SubType>
</AndroidResource>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>

View File

@@ -1,25 +0,0 @@
using Android.OS;
using Android.Views;
using Android.Support.V4.App;
namespace MusicApp.Resources.Fragments
{
public class playerControl : Fragment
{
public override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
}
public static Fragment NewInstance()
{
return new playerControl { Arguments = new Bundle() };
}
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
var useless = base.OnCreateView(inflater, container, savedInstanceState);
return inflater.Inflate(Resource.Layout.playerControl, null);
}
}
}

View File

@@ -32,7 +32,7 @@ namespace MusicApp.Resources.Portable_Class
public static string title;
private Notification notification;
private int notificationID = 1000;
private const int notificationID = 1000;
public override IBinder OnBind(Intent intent)
@@ -84,7 +84,7 @@ namespace MusicApp.Resources.Portable_Class
break;
case "Stop":
if (player.IsPlaying)
Pause();
Stop();
break;
case "YTPlay":
string[] song = intent.GetStringArrayListExtra("song").ToArray();
@@ -435,7 +435,10 @@ namespace MusicApp.Resources.Portable_Class
player.Pause();
StopForeground(false);
if(Player.instance != null)
RelativeLayout smallPlayer = MainActivity.instance.FindViewById<RelativeLayout>(Resource.Id.smallPlayer);
smallPlayer.FindViewById<ImageButton>(Resource.Id.spPlay).SetImageResource(Resource.Drawable.ic_play_arrow_black_24dp);
if (Player.instance != null)
{
Player.instance.playerView.FindViewById<ImageButton>(Resource.Id.playButton).SetImageResource(Resource.Drawable.ic_play_arrow_black_24dp);
}
@@ -455,6 +458,9 @@ namespace MusicApp.Resources.Portable_Class
player.Start();
StartForeground(notificationID, notification);
RelativeLayout smallPlayer = MainActivity.instance.FindViewById<RelativeLayout>(Resource.Id.smallPlayer);
smallPlayer.FindViewById<ImageButton>(Resource.Id.spPlay).SetImageResource(Resource.Drawable.ic_pause_black_24dp);
if (Player.instance != null)
{
Player.instance.playerView.FindViewById<ImageButton>(Resource.Id.playButton).SetImageResource(Resource.Drawable.ic_pause_black_24dp);

View File

@@ -3,13 +3,15 @@ using Android.OS;
using Android.Views;
using Android.Widget;
using MusicApp.Resources.values;
using Android.Support.V4.App;
using System;
using Square.Picasso;
using Android.Support.Design.Widget;
using System.Threading.Tasks;
using System.Threading;
using Android.Support.V7.App;
using Android.Support.V4.App;
using Java.Util;
using AlarmManager = Android.App.AlarmManager;
using PendingIntent = Android.App.PendingIntent;
namespace MusicApp.Resources.Portable_Class
{
@@ -17,11 +19,11 @@ namespace MusicApp.Resources.Portable_Class
{
public static Player instance;
public View playerView;
public const int notificationID = 1001;
private Handler handler = new Handler();
private SeekBar bar;
private ImageView imgView;
private CancellationTokenSource cancelToken;
private int[] timers = new int[] { 0, 1, 10, 30, 60, 120 };
private string[] items = new string[] { "Off", "1 minute", "10 minutes", "30 minutes", "1 hour", "2 hours" };
private int checkedItem = 0;
@@ -123,7 +125,10 @@ namespace MusicApp.Resources.Portable_Class
private void UpdateSeekBar()
{
if (!MusicPlayer.isRunning)
{
handler.RemoveCallbacks(UpdateSeekBar);
return;
}
bar.Progress = MusicPlayer.CurrentPosition;
@@ -158,7 +163,7 @@ namespace MusicApp.Resources.Portable_Class
private void SleepButton_Click(object sender, EventArgs e)
{
AlertDialog.Builder builder = new AlertDialog.Builder(Activity, Resource.Style.AppCompatAlertDialogStyle);
Android.Support.V7.App.AlertDialog.Builder builder = new Android.Support.V7.App.AlertDialog.Builder(Activity, Resource.Style.AppCompatAlertDialogStyle);
builder.SetTitle("Sleep in :");
builder.SetSingleChoiceItems(items, checkedItem, ((senders, eventargs) => { checkedItem = eventargs.Which; }));
builder.SetPositiveButton("Ok", ((senders, args) => { Sleep(timers[checkedItem]); }));
@@ -166,30 +171,32 @@ namespace MusicApp.Resources.Portable_Class
builder.Show();
}
async void Sleep(int time)
#pragma warning disable CS0618
void Sleep(int time)
{
cancelToken?.Cancel();
Date date = new Date(Java.Lang.JavaSystem.CurrentTimeMillis());
date.Minutes += time;
if (time == 0)
return;
Context.RegisterReceiver(new SleepManager(), new IntentFilter("SleepManager"));
using (cancelToken = new CancellationTokenSource())
{
try
{
await Task.Run(() =>
{
Thread.Sleep(time * 60 * 1000);
Intent intent = new Intent(Android.App.Application.Context, typeof(MusicPlayer));
intent.SetAction("Stop");
Activity.StartService(intent);
});
}
catch (TaskCanceledException)
{
Console.WriteLine("Sleep Timer Canceled");
}
}
Intent intent = new Intent("SleepManager");
PendingIntent pendingIntent = PendingIntent.GetBroadcast(Android.App.Application.Context, 0, intent, Android.App.PendingIntentFlags.CancelCurrent);
AlarmManager alarms = (AlarmManager)Context.GetSystemService(Context.AlarmService);
alarms.Set(Android.App.AlarmType.RtcWakeup, date.Time, pendingIntent);
NotificationCompat.Builder builder = new NotificationCompat.Builder(Android.App.Application.Context)
.SetVisibility(NotificationCompat.VisibilityPublic)
.SetSmallIcon(Resource.Drawable.MusicIcon)
.SetContentTitle("Music will stop in:")
.SetContentText(time + " minutes")
.SetOngoing(true);
Android.App.Notification notification = builder.Build();
Android.App.NotificationManager notificationManager = (Android.App.NotificationManager)Context.GetSystemService(Context.NotificationService);
notificationManager.Notify(notificationID, notification);
}
#pragma warning restore CS0618
}
}

View File

@@ -4,21 +4,12 @@ using Android.Views;
using Android.Widget;
using MusicApp.Resources.values;
using Android.Support.V4.App;
using System;
using Square.Picasso;
using Android.Graphics;
using Android.Support.Design.Widget;
using MusicApp.Resources.Fragments;
using Android.Transitions;
using Android.Animation;
using Android.App.Job;
using System.Threading.Tasks;
using System.Threading;
using Android.Support.V7.App;
using System;
namespace MusicApp.Resources.Portable_Class
{
public class Queue: ListFragment/*, ViewTreeObserver.IOnPreDrawListener*/
public class Queue: ListFragment
{
public static Queue instance;
public Adapter adapter;
@@ -26,28 +17,6 @@ namespace MusicApp.Resources.Portable_Class
private View view;
private bool isEmpty = false;
//private float yFraction = 0;
//public void SetYFraction(float fraction)
//{
// yFraction = fraction;
// float translationY = View.Height * fraction;
// View.TranslationY = translationY;
//}
//public bool OnPreDraw()
//{
// if(View.Height == 0)
// SetYFraction(yFraction);
// return true;
//}
//public float GetYFraction()
//{
// return yFraction;
//}
public override void OnActivityCreated(Bundle savedInstanceState)
{
@@ -57,10 +26,53 @@ namespace MusicApp.Resources.Portable_Class
ListView.EmptyView = emptyView;
PopulateView();
if (MusicPlayer.isRunning)
{
Song current = MusicPlayer.queue[MusicPlayer.CurrentID()];
RelativeLayout smallPlayer = Activity.FindViewById<RelativeLayout>(Resource.Id.smallPlayer);
smallPlayer.Visibility = ViewStates.Visible;
smallPlayer.FindViewById<TextView>(Resource.Id.spTitle).Text = current.GetName();
smallPlayer.FindViewById<TextView>(Resource.Id.spArtist).Text = current.GetArtist();
ImageView art = smallPlayer.FindViewById<ImageView>(Resource.Id.spArt);
var songCover = Android.Net.Uri.Parse("content://media/external/audio/albumart");
var songAlbumArtUri = ContentUris.WithAppendedId(songCover, current.GetAlbumArt());
Picasso.With(Android.App.Application.Context).Load(songAlbumArtUri).Placeholder(Resource.Drawable.MusicIcon).Into(art);
smallPlayer.FindViewById<ImageButton>(Resource.Id.spLast).Click += Last_Click;
smallPlayer.FindViewById<ImageButton>(Resource.Id.spPlay).Click += Play_Click;
smallPlayer.FindViewById<ImageButton>(Resource.Id.spNext).Click += Next_Click;
}
}
private void Last_Click(object sender, EventArgs e)
{
Intent intent = new Intent(Android.App.Application.Context, typeof(MusicPlayer));
intent.SetAction("Previus");
Activity.StartService(intent);
}
private void Play_Click(object sender, EventArgs e)
{
Intent intent = new Intent(Android.App.Application.Context, typeof(MusicPlayer));
intent.SetAction("Pause");
Activity.StartService(intent);
}
private void Next_Click(object sender, EventArgs e)
{
Intent intent = new Intent(Android.App.Application.Context, typeof(MusicPlayer));
intent.SetAction("Next");
Activity.StartService(intent);
}
public override void OnDestroy()
{
RelativeLayout smallPlayer = Activity.FindViewById<RelativeLayout>(Resource.Id.smallPlayer);
smallPlayer.Visibility = ViewStates.Gone;
if (isEmpty)
{
ViewGroup rootView = Activity.FindViewById<ViewGroup>(Android.Resource.Id.Content);

View File

@@ -0,0 +1,18 @@
using Android.App;
using Android.Content;
namespace MusicApp.Resources.Portable_Class
{
public class SleepManager : BroadcastReceiver
{
public override void OnReceive(Context context, Intent intent)
{
Intent musicIntent = new Intent(Application.Context, typeof(MusicPlayer));
musicIntent.SetAction("Stop");
MainActivity.instance.StartService(musicIntent);
NotificationManager notificationManager = (NotificationManager)context.GetSystemService(Context.NotificationService);
notificationManager.Cancel(Player.notificationID);
}
}
}

View File

@@ -2401,8 +2401,8 @@ namespace MusicApp
public partial class Id
{
// aapt resource value: 0x7f070091
public const int action0 = 2131165329;
// aapt resource value: 0x7f070092
public const int action0 = 2131165330;
// aapt resource value: 0x7f070064
public const int action_bar = 2131165284;
@@ -2425,17 +2425,17 @@ namespace MusicApp
// aapt resource value: 0x7f070041
public const int action_bar_title = 2131165249;
// aapt resource value: 0x7f07008e
public const int action_container = 2131165326;
// aapt resource value: 0x7f07008f
public const int action_container = 2131165327;
// aapt resource value: 0x7f070065
public const int action_context_bar = 2131165285;
// aapt resource value: 0x7f070095
public const int action_divider = 2131165333;
// aapt resource value: 0x7f070096
public const int action_divider = 2131165334;
// aapt resource value: 0x7f07008f
public const int action_image = 2131165327;
// aapt resource value: 0x7f070090
public const int action_image = 2131165328;
// aapt resource value: 0x7f070003
public const int action_menu_divider = 2131165187;
@@ -2452,11 +2452,11 @@ namespace MusicApp
// aapt resource value: 0x7f070043
public const int action_mode_close_button = 2131165251;
// aapt resource value: 0x7f070090
public const int action_text = 2131165328;
// aapt resource value: 0x7f070091
public const int action_text = 2131165329;
// aapt resource value: 0x7f07009e
public const int actions = 2131165342;
// aapt resource value: 0x7f07009f
public const int actions = 2131165343;
// aapt resource value: 0x7f070044
public const int activity_chooser_view_content = 2131165252;
@@ -2464,8 +2464,8 @@ namespace MusicApp
// aapt resource value: 0x7f07001e
public const int add = 2131165214;
// aapt resource value: 0x7f0700c0
public const int albumArt = 2131165376;
// aapt resource value: 0x7f0700c2
public const int albumArt = 2131165378;
// aapt resource value: 0x7f070058
public const int alertTitle = 2131165272;
@@ -2476,8 +2476,8 @@ namespace MusicApp
// aapt resource value: 0x7f070023
public const int always = 2131165219;
// aapt resource value: 0x7f0700c1
public const int artist = 2131165377;
// aapt resource value: 0x7f0700c3
public const int artist = 2131165379;
// aapt resource value: 0x7f07002f
public const int auto = 2131165231;
@@ -2488,11 +2488,11 @@ namespace MusicApp
// aapt resource value: 0x7f070028
public const int bottom = 2131165224;
// aapt resource value: 0x7f07008c
public const int bottomView = 2131165324;
// aapt resource value: 0x7f07008d
public const int bottomView = 2131165325;
// aapt resource value: 0x7f0700c6
public const int browseLayout = 2131165382;
// aapt resource value: 0x7f0700c8
public const int browseLayout = 2131165384;
// aapt resource value: 0x7f070073
public const int browseList = 2131165299;
@@ -2500,8 +2500,8 @@ namespace MusicApp
// aapt resource value: 0x7f07004b
public const int buttonPanel = 2131165259;
// aapt resource value: 0x7f070092
public const int cancel_action = 2131165330;
// aapt resource value: 0x7f070093
public const int cancel_action = 2131165331;
// aapt resource value: 0x7f070030
public const int center = 2131165232;
@@ -2515,8 +2515,8 @@ namespace MusicApp
// aapt resource value: 0x7f07005b
public const int checkbox = 2131165275;
// aapt resource value: 0x7f07009a
public const int chronometer = 2131165338;
// aapt resource value: 0x7f07009b
public const int chronometer = 2131165339;
// aapt resource value: 0x7f070039
public const int clip_horizontal = 2131165241;
@@ -2533,20 +2533,8 @@ namespace MusicApp
// aapt resource value: 0x7f07004e
public const int contentPanel = 2131165262;
// aapt resource value: 0x7f07008b
public const int contentView = 2131165323;
// aapt resource value: 0x7f0700b5
public const int controllerLast = 2131165365;
// aapt resource value: 0x7f0700b7
public const int controllerNext = 2131165367;
// aapt resource value: 0x7f0700b6
public const int controllerPlay = 2131165366;
// aapt resource value: 0x7f0700b8
public const int controllerTitle = 2131165368;
// aapt resource value: 0x7f07008c
public const int contentView = 2131165324;
// aapt resource value: 0x7f070078
public const int coordinator = 2131165304;
@@ -2581,11 +2569,11 @@ namespace MusicApp
// aapt resource value: 0x7f070012
public const int disableHome = 2131165202;
// aapt resource value: 0x7f0700b3
public const int downFAB = 2131165363;
// aapt resource value: 0x7f0700b4
public const int downFAB = 2131165364;
// aapt resource value: 0x7f0700c7
public const int downloadLayout = 2131165383;
// aapt resource value: 0x7f0700c9
public const int downloadLayout = 2131165385;
// aapt resource value: 0x7f070066
public const int edit_query = 2131165286;
@@ -2593,8 +2581,8 @@ namespace MusicApp
// aapt resource value: 0x7f070021
public const int end = 2131165217;
// aapt resource value: 0x7f0700a4
public const int end_padder = 2131165348;
// aapt resource value: 0x7f0700a5
public const int end_padder = 2131165349;
// aapt resource value: 0x7f07002a
public const int enterAlways = 2131165226;
@@ -2644,11 +2632,11 @@ namespace MusicApp
// aapt resource value: 0x7f070049
public const int icon = 2131165257;
// aapt resource value: 0x7f0700b9
public const int icon_frame = 2131165369;
// aapt resource value: 0x7f0700b5
public const int icon_frame = 2131165365;
// aapt resource value: 0x7f07009f
public const int icon_group = 2131165343;
// aapt resource value: 0x7f0700a0
public const int icon_group = 2131165344;
// aapt resource value: 0x7f070025
public const int ifRoom = 2131165221;
@@ -2656,11 +2644,11 @@ namespace MusicApp
// aapt resource value: 0x7f070046
public const int image = 2131165254;
// aapt resource value: 0x7f07009b
public const int info = 2131165339;
// aapt resource value: 0x7f07009c
public const int info = 2131165340;
// aapt resource value: 0x7f0700ab
public const int infoPanel = 2131165355;
// aapt resource value: 0x7f0700ac
public const int infoPanel = 2131165356;
// aapt resource value: 0x7f070000
public const int item_touch_helper_previous_elevation = 2131165184;
@@ -2668,23 +2656,23 @@ namespace MusicApp
// aapt resource value: 0x7f070076
public const int largeLabel = 2131165302;
// aapt resource value: 0x7f0700a6
public const int lastButton = 2131165350;
// aapt resource value: 0x7f0700a7
public const int lastButton = 2131165351;
// aapt resource value: 0x7f070034
public const int left = 2131165236;
// aapt resource value: 0x7f0700a0
public const int line1 = 2131165344;
// aapt resource value: 0x7f0700a1
public const int line1 = 2131165345;
// aapt resource value: 0x7f0700c2
public const int line2 = 2131165378;
// aapt resource value: 0x7f0700c4
public const int line2 = 2131165380;
// aapt resource value: 0x7f0700a2
public const int line3 = 2131165346;
// aapt resource value: 0x7f0700a3
public const int line3 = 2131165347;
// aapt resource value: 0x7f0700bb
public const int list = 2131165371;
// aapt resource value: 0x7f0700b7
public const int list = 2131165367;
// aapt resource value: 0x7f07000f
public const int listMode = 2131165199;
@@ -2692,11 +2680,11 @@ namespace MusicApp
// aapt resource value: 0x7f070048
public const int list_item = 2131165256;
// aapt resource value: 0x7f0700c4
public const int masked = 2131165380;
// aapt resource value: 0x7f0700c6
public const int masked = 2131165382;
// aapt resource value: 0x7f070094
public const int media_actions = 2131165332;
// aapt resource value: 0x7f070095
public const int media_actions = 2131165333;
// aapt resource value: 0x7f070022
public const int middle = 2131165218;
@@ -2707,8 +2695,8 @@ namespace MusicApp
// aapt resource value: 0x7f070019
public const int multiply = 2131165209;
// aapt resource value: 0x7f0700c5
public const int musicLayout = 2131165381;
// aapt resource value: 0x7f0700c7
public const int musicLayout = 2131165383;
// aapt resource value: 0x7f07007d
public const int navigation_header_container = 2131165309;
@@ -2716,23 +2704,23 @@ namespace MusicApp
// aapt resource value: 0x7f070026
public const int never = 2131165222;
// aapt resource value: 0x7f0700b0
public const int nextArt = 2131165360;
// aapt resource value: 0x7f0700b2
public const int nextArtist = 2131165362;
// aapt resource value: 0x7f0700a9
public const int nextButton = 2131165353;
// aapt resource value: 0x7f0700af
public const int nextArt = 2131165359;
public const int nextSong = 2131165359;
// aapt resource value: 0x7f0700b1
public const int nextArtist = 2131165361;
public const int nextTitle = 2131165361;
// aapt resource value: 0x7f0700a8
public const int nextButton = 2131165352;
// aapt resource value: 0x7f0700ae
public const int nextSong = 2131165358;
// aapt resource value: 0x7f0700b0
public const int nextTitle = 2131165360;
// aapt resource value: 0x7f07008d
public const int noPlaylist = 2131165325;
// aapt resource value: 0x7f07008e
public const int noPlaylist = 2131165326;
// aapt resource value: 0x7f070014
public const int none = 2131165204;
@@ -2740,17 +2728,17 @@ namespace MusicApp
// aapt resource value: 0x7f070010
public const int normal = 2131165200;
// aapt resource value: 0x7f07009d
public const int notification_background = 2131165341;
// aapt resource value: 0x7f07009e
public const int notification_background = 2131165342;
// aapt resource value: 0x7f070098
public const int notification_main_column = 2131165336;
// aapt resource value: 0x7f070097
public const int notification_main_column = 2131165335;
public const int notification_main_column_container = 2131165335;
// aapt resource value: 0x7f070096
public const int notification_main_column_container = 2131165334;
// aapt resource value: 0x7f07008a
public const int pager = 2131165322;
// aapt resource value: 0x7f07008b
public const int pager = 2131165323;
// aapt resource value: 0x7f070037
public const int parallax = 2131165239;
@@ -2761,29 +2749,26 @@ namespace MusicApp
// aapt resource value: 0x7f070038
public const int pin = 2131165240;
// aapt resource value: 0x7f0700a7
public const int playButton = 2131165351;
// aapt resource value: 0x7f0700a8
public const int playButton = 2131165352;
// aapt resource value: 0x7f0700a5
public const int playerAlbum = 2131165349;
// aapt resource value: 0x7f0700a6
public const int playerAlbum = 2131165350;
// aapt resource value: 0x7f0700ad
public const int playerArtist = 2131165357;
// aapt resource value: 0x7f0700ae
public const int playerArtist = 2131165358;
// aapt resource value: 0x7f0700b4
public const int playerControl = 2131165364;
// aapt resource value: 0x7f0700ab
public const int playerPlaylistAdd = 2131165355;
// aapt resource value: 0x7f0700aa
public const int playerPlaylistAdd = 2131165354;
public const int playerSleep = 2131165354;
// aapt resource value: 0x7f0700a9
public const int playerSleep = 2131165353;
// aapt resource value: 0x7f0700ad
public const int playerTitle = 2131165357;
// aapt resource value: 0x7f0700ac
public const int playerTitle = 2131165356;
// aapt resource value: 0x7f0700c8
public const int playlistLayout = 2131165384;
// aapt resource value: 0x7f0700ca
public const int playlistLayout = 2131165386;
// aapt resource value: 0x7f070074
public const int playlistName = 2131165300;
@@ -2800,11 +2785,11 @@ namespace MusicApp
// aapt resource value: 0x7f070035
public const int right = 2131165237;
// aapt resource value: 0x7f07009c
public const int right_icon = 2131165340;
// aapt resource value: 0x7f07009d
public const int right_icon = 2131165341;
// aapt resource value: 0x7f070098
public const int right_side = 2131165336;
// aapt resource value: 0x7f070099
public const int right_side = 2131165337;
// aapt resource value: 0x7f07001a
public const int screen = 2131165210;
@@ -2824,8 +2809,8 @@ namespace MusicApp
// aapt resource value: 0x7f070040
public const int scrollable = 2131165248;
// aapt resource value: 0x7f0700bf
public const int search = 2131165375;
// aapt resource value: 0x7f0700bb
public const int search = 2131165371;
// aapt resource value: 0x7f070068
public const int search_badge = 2131165288;
@@ -2857,17 +2842,17 @@ namespace MusicApp
// aapt resource value: 0x7f070071
public const int search_voice_btn = 2131165297;
// aapt resource value: 0x7f0700bc
public const int seekbar = 2131165372;
// aapt resource value: 0x7f0700b8
public const int seekbar = 2131165368;
// aapt resource value: 0x7f0700bd
public const int seekbar_value = 2131165373;
// aapt resource value: 0x7f0700b9
public const int seekbar_value = 2131165369;
// aapt resource value: 0x7f070072
public const int select_dialog_listview = 2131165298;
// aapt resource value: 0x7f0700c9
public const int settings = 2131165385;
// aapt resource value: 0x7f0700cb
public const int settings = 2131165387;
// aapt resource value: 0x7f07005c
public const int shortcut = 2131165276;
@@ -2884,6 +2869,9 @@ namespace MusicApp
// aapt resource value: 0x7f070075
public const int smallLabel = 2131165301;
// aapt resource value: 0x7f07008a
public const int smallPlayer = 2131165322;
// aapt resource value: 0x7f07007c
public const int snackbar_action = 2131165308;
@@ -2893,14 +2881,32 @@ namespace MusicApp
// aapt resource value: 0x7f07002e
public const int snap = 2131165230;
// aapt resource value: 0x7f0700b2
public const int songTimer = 2131165362;
// aapt resource value: 0x7f0700b3
public const int songTimer = 2131165363;
// aapt resource value: 0x7f0700bc
public const int spArt = 2131165372;
// aapt resource value: 0x7f0700be
public const int spArtist = 2131165374;
// aapt resource value: 0x7f0700bf
public const int spLast = 2131165375;
// aapt resource value: 0x7f0700c1
public const int spNext = 2131165377;
// aapt resource value: 0x7f0700c0
public const int spPlay = 2131165376;
// aapt resource value: 0x7f0700bd
public const int spTitle = 2131165373;
// aapt resource value: 0x7f07004c
public const int spacer = 2131165260;
// aapt resource value: 0x7f0700ba
public const int spinner = 2131165370;
// aapt resource value: 0x7f0700b6
public const int spinner = 2131165366;
// aapt resource value: 0x7f070008
public const int split_action_bar = 2131165192;
@@ -2917,8 +2923,8 @@ namespace MusicApp
// aapt resource value: 0x7f070036
public const int start = 2131165238;
// aapt resource value: 0x7f070093
public const int status_bar_latest_event_content = 2131165331;
// aapt resource value: 0x7f070094
public const int status_bar_latest_event_content = 2131165332;
// aapt resource value: 0x7f07005e
public const int submenuarrow = 2131165278;
@@ -2926,8 +2932,8 @@ namespace MusicApp
// aapt resource value: 0x7f07006f
public const int submit_area = 2131165295;
// aapt resource value: 0x7f0700be
public const int switchWidget = 2131165374;
// aapt resource value: 0x7f0700ba
public const int switchWidget = 2131165370;
// aapt resource value: 0x7f070011
public const int tabMode = 2131165201;
@@ -2935,14 +2941,14 @@ namespace MusicApp
// aapt resource value: 0x7f070089
public const int tabs = 2131165321;
// aapt resource value: 0x7f0700a3
public const int text = 2131165347;
// aapt resource value: 0x7f0700a4
public const int text = 2131165348;
// aapt resource value: 0x7f070083
public const int text1 = 2131165315;
// aapt resource value: 0x7f0700a1
public const int text2 = 2131165345;
// aapt resource value: 0x7f0700a2
public const int text2 = 2131165346;
// aapt resource value: 0x7f070052
public const int textSpacerNoButtons = 2131165266;
@@ -2959,8 +2965,8 @@ namespace MusicApp
// aapt resource value: 0x7f07000d
public const int textinput_error = 2131165197;
// aapt resource value: 0x7f070099
public const int time = 2131165337;
// aapt resource value: 0x7f07009a
public const int time = 2131165338;
// aapt resource value: 0x7f07004a
public const int title = 2131165258;
@@ -2998,8 +3004,8 @@ namespace MusicApp
// aapt resource value: 0x7f07000e
public const int view_offset_helper = 2131165198;
// aapt resource value: 0x7f0700c3
public const int visible = 2131165379;
// aapt resource value: 0x7f0700c5
public const int visible = 2131165381;
// aapt resource value: 0x7f070027
public const int withText = 2131165223;
@@ -3259,61 +3265,61 @@ namespace MusicApp
public const int player = 2130903105;
// aapt resource value: 0x7f030042
public const int playerControl = 2130903106;
public const int playerInfo = 2130903106;
// aapt resource value: 0x7f030043
public const int playerInfo = 2130903107;
public const int PlaylistList = 2130903107;
// aapt resource value: 0x7f030044
public const int PlaylistList = 2130903108;
public const int preference = 2130903108;
// aapt resource value: 0x7f030045
public const int preference = 2130903109;
public const int preference_category = 2130903109;
// aapt resource value: 0x7f030046
public const int preference_category = 2130903110;
public const int preference_dialog_edittext = 2130903110;
// aapt resource value: 0x7f030047
public const int preference_dialog_edittext = 2130903111;
public const int preference_dropdown = 2130903111;
// aapt resource value: 0x7f030048
public const int preference_dropdown = 2130903112;
public const int preference_information = 2130903112;
// aapt resource value: 0x7f030049
public const int preference_information = 2130903113;
public const int preference_list_fragment = 2130903113;
// aapt resource value: 0x7f03004a
public const int preference_list_fragment = 2130903114;
public const int preference_recyclerview = 2130903114;
// aapt resource value: 0x7f03004b
public const int preference_recyclerview = 2130903115;
public const int preference_widget_checkbox = 2130903115;
// aapt resource value: 0x7f03004c
public const int preference_widget_checkbox = 2130903116;
public const int preference_widget_seekbar = 2130903116;
// aapt resource value: 0x7f03004d
public const int preference_widget_seekbar = 2130903117;
public const int preference_widget_switch_compat = 2130903117;
// aapt resource value: 0x7f03004e
public const int preference_widget_switch_compat = 2130903118;
public const int Preferences = 2130903118;
// aapt resource value: 0x7f03004f
public const int Preferences = 2130903119;
public const int PreferenceToolbar = 2130903119;
// aapt resource value: 0x7f030050
public const int PreferenceToolbar = 2130903120;
public const int search_layout = 2130903120;
// aapt resource value: 0x7f030051
public const int search_layout = 2130903121;
public const int select_dialog_item_material = 2130903121;
// aapt resource value: 0x7f030052
public const int select_dialog_item_material = 2130903122;
public const int select_dialog_multichoice_material = 2130903122;
// aapt resource value: 0x7f030053
public const int select_dialog_multichoice_material = 2130903123;
public const int select_dialog_singlechoice_material = 2130903123;
// aapt resource value: 0x7f030054
public const int select_dialog_singlechoice_material = 2130903124;
public const int SmallPlayer = 2130903124;
// aapt resource value: 0x7f030055
public const int SongList = 2130903125;

View File

@@ -26,7 +26,11 @@
app:tabGravity="fill"
app:tabMode="fixed" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
<include
layout="@layout/SmallPlayer"
android:id="@+id/smallPlayer"
android:visibility="gone"/>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

View File

@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/smallPlayer"
android:elevation="12dp" >
<ImageView
android:id="@+id/spArt"
android:layout_width="120dp"
android:layout_height="120dp"
android:src="@drawable/MusicIcon"
android:layout_alignParentLeft="true" />
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="140dp">
<TextView
android:id="@+id/spTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#000"
android:textSize="24dip"
android:textStyle="bold" />
<TextView
android:id="@+id/spArtist"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18dip"
android:textColor="#000" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageButton
android:id="@+id/spLast"
android:background="@null"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@drawable/ic_skip_previous_black_24dp"/>
<ImageButton
android:id="@+id/spPlay"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginLeft="10dp"
android:background="@null"
android:layout_marginRight="10dp"
android:src="@drawable/ic_pause_black_24dp"/>
<ImageButton
android:id="@+id/spNext"
android:layout_width="60dp"
android:layout_height="60dp"
android:background="@null"
android:src="@drawable/ic_skip_next_black_24dp"/>
</LinearLayout>
</LinearLayout>
</RelativeLayout >

View File

@@ -1,62 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/playerControl" >
<LinearLayout
android:paddingBottom="20dp"
android:paddingTop="15dp"
android:background="#4cb5ae"
android:gravity="center"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageButton
android:id="@+id/controllerLast"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#4cb5ae"
android:src="@drawable/ic_skip_previous_black_24dp"/>
<ImageButton
android:transitionName="playButton"
android:id="@+id/controllerPlay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="50dp"
android:layout_marginRight="50dp"
android:background="#4cb5ae"
android:src="@drawable/ic_play_arrow_black_24dp"/>
<ImageButton
android:id="@+id/controllerNext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#4cb5ae"
android:src="@drawable/ic_skip_next_black_24dp"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#2b5568">
<TextView
android:id="@+id/controllerTitle"
android:text="Title-Artist"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:scrollHorizontally="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit ="marquee_forever"
android:focusable="true"
android:focusableInTouchMode="true"
android:textSize="18sp"
android:textColor="#FFFFFF"
android:alpha=".92"
android:textStyle="bold"
android:paddingLeft="40dp"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"/>
</LinearLayout>
</LinearLayout>