mirror of
https://github.com/zoriya/Opus.git
synced 2025-12-06 06:26:15 +00:00
making small player
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
18
MusicApp/Resources/Portable Class/SleepManager.cs
Normal file
18
MusicApp/Resources/Portable Class/SleepManager.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
310
MusicApp/Resources/Resource.Designer.cs
generated
310
MusicApp/Resources/Resource.Designer.cs
generated
@@ -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;
|
||||
|
||||
@@ -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" />
|
||||
|
||||
57
MusicApp/Resources/layout/SmallPlayer.xml
Normal file
57
MusicApp/Resources/layout/SmallPlayer.xml
Normal 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 >
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user