Finishing the theme rework and updating apis.

This commit is contained in:
Anonymus Raccoon
2019-06-22 20:12:48 +02:00
parent 4d1d6234b7
commit 7c22c64365
13 changed files with 70 additions and 71 deletions

View File

@@ -50,7 +50,7 @@ namespace Opus
public class MainActivity : AppCompatActivity, GoogleApiClient.IOnConnectionFailedListener, IResultCallback, IMenuItemOnActionExpandListener, View.IOnFocusChangeListener, ISessionManagerListener
{
public static MainActivity instance;
public new static int Theme = 1;
//public new static int Theme = 1;
public static int dialogTheme;
public bool NoToolbarMenu = false;
@@ -80,7 +80,7 @@ namespace Opus
{
base.OnCreate(savedInstanceState);
SwitchTheme(GetThemeID(this));
LoadTheme(this);
SetContentView(Resource.Layout.Main);
instance = this;
@@ -247,37 +247,23 @@ namespace Opus
return pref.GetInt("theme", 0);
}
public static void SetTheme(Context context)
public static void LoadTheme(Context context)
{
int themeID;
int themeRes;
switch (GetThemeID(context))
{
case 0:
default:
themeID = Resource.Style.Theme;
themeRes = Resource.Style.Theme;
dialogTheme = Resource.Style.AppCompatAlertDialogStyle;
break;
case 1:
themeID = Resource.Style.DarkTheme;
themeRes = Resource.Style.DarkTheme;
dialogTheme = Resource.Style.AppCompatDarkAlertDialogStyle;
break;
}
context.SetTheme(themeID);
context.SetTheme(themeRes);
}
public void SwitchTheme(int themeID)
{
Theme = themeID;
if (themeID == 0)
{
dialogTheme = Resource.Style.AppCompatAlertDialogStyle;
SetTheme(Resource.Style.Theme);
}
else
{
SetTheme(Resource.Style.DarkTheme);
dialogTheme = Resource.Style.AppCompatDarkAlertDialogStyle;
}
}
//UI PART
#region Toolbar menu (right items)

View File

@@ -3,6 +3,7 @@ using Android.Content.Res;
using Android.Graphics;
using Android.Support.V7.Widget;
using Android.Text;
using Android.Util;
using Android.Views;
using Android.Widget;
using Opus.Api.Services;
@@ -146,10 +147,14 @@ namespace Opus.Adapter
{
holder.Owner.Text = playlist.Owner;
holder.Owner.SetBackgroundColor(Color.Transparent);
if (MainActivity.Theme == 1)
holder.Owner.SetTextColor(Color.White);
Color color;
TypedValue value = new TypedValue();
if (MainActivity.instance.Theme.ResolveAttribute(Resource.Styleable.TextAppearance_android_textColor, value, true))
color = Color.ParseColor("#" + Java.Lang.Integer.ToHexString(value.Data));
else
holder.Owner.SetTextColor(Color.Black);
color = Color.Black;
holder.Owner.SetTextColor(color);
}
if (playlist.HasWritePermission)

View File

@@ -22,7 +22,7 @@ namespace Opus.Fragments
{
base.OnCreate(savedInstanceState);
MainActivity.SetTheme(this);
MainActivity.LoadTheme(this);
instance = this;
SetContentView(Resource.Layout.DownloadQueue);

View File

@@ -45,7 +45,7 @@ namespace Opus.Fragments
{
base.OnCreate(savedInstanceState);
MainActivity.SetTheme(this);
MainActivity.LoadTheme(this);
SetContentView(Resource.Layout.EditMetaData);
Window.SetStatusBarColor(Color.Argb(70, 00, 00, 00));

View File

@@ -34,7 +34,7 @@ namespace Opus.Fragments
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
MainActivity.SetTheme(this);
MainActivity.LoadTheme(this);
SetContentView(Resource.Layout.PreferenceRoot);
toolbar = FindViewById<Toolbar>(Resource.Id.toolbar);
SetSupportActionBar(toolbar);
@@ -317,7 +317,7 @@ namespace Opus.Fragments
Preference prefButton = FindPreference("theme");
prefButton.Summary = args.Which == 0 ? Resources.GetString(Resource.String.white_theme) : Resources.GetString(Resource.String.dark_theme);
MainActivity.instance.SwitchTheme(args.Which);
MainActivity.LoadTheme(MainActivity.instance);
MainActivity.instance.Recreate();
Activity.Recreate();
});

View File

@@ -35,7 +35,7 @@ namespace Opus.Fragments
instance = this;
base.OnCreate(savedInstanceState);
MainActivity.SetTheme(this);
MainActivity.LoadTheme(this);
SetContentView(Resource.Layout.SearchLayout);
SetSupportActionBar(FindViewById<Toolbar>(Resource.Id.toolbar));

View File

@@ -9,6 +9,7 @@ using Android.Support.V7.Preferences;
using Android.Util;
using Android.Views;
using Android.Widget;
using Java.Lang;
//using Google.Apis.YouTube.v3;
using Opus;
//using Opus.Api;
@@ -50,10 +51,15 @@ public class AccountPreference : Preference, IResultCallback
log.Text = Preferences.instance.Resources.GetString(Resource.String.log_in);
log.Click += logIn;
if (MainActivity.Theme == 1)
view.FindViewById<ImageView>(Android.Resource.Id.Icon).SetColorFilter(Color.White);
Color color;
TypedValue value = new TypedValue();
if (Context.Theme.ResolveAttribute(Resource.Attribute.accountIconColor, value, true))
color = Color.ParseColor("#" + Integer.ToHexString(value.Data));
else
view.FindViewById<ImageView>(Android.Resource.Id.Icon).SetColorFilter(Color.Gray);
color = Color.Black;
view.FindViewById<ImageView>(Android.Resource.Id.Icon).SetColorFilter(color);
}
else
{
@@ -137,10 +143,6 @@ public class AccountPreference : Preference, IResultCallback
log.Text = Preferences.instance.Resources.GetString(Resource.String.log_in);
Summary = "";
Picasso.With(Android.App.Application.Context).Load(Resource.Drawable.account).Into(view.FindViewById<ImageView>(Android.Resource.Id.Icon));
if (MainActivity.Theme == 1)
view.FindViewById<ImageView>(Android.Resource.Id.Icon).SetColorFilter(Color.White);
else
view.FindViewById<ImageView>(Android.Resource.Id.Icon).SetColorFilter(Color.Gray);
log.Click -= logOut;
MainActivity.instance.InvalidateOptionsMenu();
}

View File

@@ -96,20 +96,20 @@
<Reference Include="ExoPlayer.UI, Version=2.8.8.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Xam.Plugins.Android.ExoPlayer.UI.2.8.8\lib\monoandroid81\ExoPlayer.UI.dll</HintPath>
</Reference>
<Reference Include="Google.Apis, Version=1.40.0.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<HintPath>..\packages\Google.Apis.1.40.0\lib\netstandard2.0\Google.Apis.dll</HintPath>
<Reference Include="Google.Apis, Version=1.40.2.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<HintPath>..\packages\Google.Apis.1.40.2\lib\netstandard2.0\Google.Apis.dll</HintPath>
</Reference>
<Reference Include="Google.Apis.Auth, Version=1.40.0.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<HintPath>..\packages\Google.Apis.Auth.1.40.0\lib\netstandard2.0\Google.Apis.Auth.dll</HintPath>
<Reference Include="Google.Apis.Auth, Version=1.40.2.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<HintPath>..\packages\Google.Apis.Auth.1.40.2\lib\netstandard2.0\Google.Apis.Auth.dll</HintPath>
</Reference>
<Reference Include="Google.Apis.Auth.PlatformServices, Version=1.40.0.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<HintPath>..\packages\Google.Apis.Auth.1.40.0\lib\netstandard2.0\Google.Apis.Auth.PlatformServices.dll</HintPath>
<Reference Include="Google.Apis.Auth.PlatformServices, Version=1.40.2.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<HintPath>..\packages\Google.Apis.Auth.1.40.2\lib\netstandard2.0\Google.Apis.Auth.PlatformServices.dll</HintPath>
</Reference>
<Reference Include="Google.Apis.Core, Version=1.40.0.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<HintPath>..\packages\Google.Apis.Core.1.40.0\lib\netstandard2.0\Google.Apis.Core.dll</HintPath>
<Reference Include="Google.Apis.Core, Version=1.40.2.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<HintPath>..\packages\Google.Apis.Core.1.40.2\lib\netstandard2.0\Google.Apis.Core.dll</HintPath>
</Reference>
<Reference Include="Google.Apis.YouTube.v3, Version=1.40.0.1593, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<HintPath>..\packages\Google.Apis.YouTube.v3.1.40.0.1593\lib\netstandard2.0\Google.Apis.YouTube.v3.dll</HintPath>
<Reference Include="Google.Apis.YouTube.v3, Version=1.40.2.1593, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<HintPath>..\packages\Google.Apis.YouTube.v3.1.40.2.1593\lib\netstandard2.0\Google.Apis.YouTube.v3.dll</HintPath>
</Reference>
<Reference Include="Java.Interop" />
<Reference Include="Microsoft.CSharp" />
@@ -134,20 +134,20 @@
<Reference Include="SQLite-net, Version=1.5.231.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\sqlite-net-pcl.1.5.231\lib\netstandard1.1\SQLite-net.dll</HintPath>
</Reference>
<Reference Include="SQLitePCLRaw.batteries_green, Version=1.1.13.388, Culture=neutral, PublicKeyToken=a84b7dcfb1391f7f, processorArchitecture=MSIL">
<HintPath>..\packages\SQLitePCLRaw.bundle_green.1.1.13\lib\MonoAndroid\SQLitePCLRaw.batteries_green.dll</HintPath>
<Reference Include="SQLitePCLRaw.batteries_green, Version=1.1.14.520, Culture=neutral, PublicKeyToken=a84b7dcfb1391f7f, processorArchitecture=MSIL">
<HintPath>..\packages\SQLitePCLRaw.bundle_green.1.1.14\lib\MonoAndroid\SQLitePCLRaw.batteries_green.dll</HintPath>
</Reference>
<Reference Include="SQLitePCLRaw.batteries_v2, Version=1.1.13.388, Culture=neutral, PublicKeyToken=8226ea5df37bcae9, processorArchitecture=MSIL">
<HintPath>..\packages\SQLitePCLRaw.bundle_green.1.1.13\lib\MonoAndroid\SQLitePCLRaw.batteries_v2.dll</HintPath>
<Reference Include="SQLitePCLRaw.batteries_v2, Version=1.1.14.520, Culture=neutral, PublicKeyToken=8226ea5df37bcae9, processorArchitecture=MSIL">
<HintPath>..\packages\SQLitePCLRaw.bundle_green.1.1.14\lib\MonoAndroid\SQLitePCLRaw.batteries_v2.dll</HintPath>
</Reference>
<Reference Include="SQLitePCLRaw.core, Version=1.1.13.388, Culture=neutral, PublicKeyToken=1488e028ca7ab535, processorArchitecture=MSIL">
<HintPath>..\packages\SQLitePCLRaw.core.1.1.13\lib\MonoAndroid\SQLitePCLRaw.core.dll</HintPath>
<Reference Include="SQLitePCLRaw.core, Version=1.1.14.520, Culture=neutral, PublicKeyToken=1488e028ca7ab535, processorArchitecture=MSIL">
<HintPath>..\packages\SQLitePCLRaw.core.1.1.14\lib\MonoAndroid\SQLitePCLRaw.core.dll</HintPath>
</Reference>
<Reference Include="SQLitePCLRaw.lib.e_sqlite3, Version=1.1.13.388, Culture=neutral, PublicKeyToken=e4ad490600e2234c, processorArchitecture=MSIL">
<HintPath>..\packages\SQLitePCLRaw.lib.e_sqlite3.android.1.1.13\lib\MonoAndroid\SQLitePCLRaw.lib.e_sqlite3.dll</HintPath>
<Reference Include="SQLitePCLRaw.lib.e_sqlite3, Version=1.1.14.520, Culture=neutral, PublicKeyToken=e4ad490600e2234c, processorArchitecture=MSIL">
<HintPath>..\packages\SQLitePCLRaw.lib.e_sqlite3.android.1.1.14\lib\MonoAndroid\SQLitePCLRaw.lib.e_sqlite3.dll</HintPath>
</Reference>
<Reference Include="SQLitePCLRaw.provider.e_sqlite3, Version=1.1.13.388, Culture=neutral, PublicKeyToken=9c301db686d0bd12, processorArchitecture=MSIL">
<HintPath>..\packages\SQLitePCLRaw.provider.e_sqlite3.android.1.1.13\lib\MonoAndroid\SQLitePCLRaw.provider.e_sqlite3.dll</HintPath>
<Reference Include="SQLitePCLRaw.provider.e_sqlite3, Version=1.1.14.520, Culture=neutral, PublicKeyToken=9c301db686d0bd12, processorArchitecture=MSIL">
<HintPath>..\packages\SQLitePCLRaw.provider.e_sqlite3.android.1.1.14\lib\MonoAndroid\SQLitePCLRaw.provider.e_sqlite3.dll</HintPath>
</Reference>
<Reference Include="Square.OkHttp, Version=2.7.5.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Square.OkHttp.2.7.5.0\lib\MonoAndroid\Square.OkHttp.dll</HintPath>
@@ -319,8 +319,8 @@
<Reference Include="Xamarin.GooglePlayServices.Tasks, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Xamarin.GooglePlayServices.Tasks.70.1501.0-preview2\lib\MonoAndroid80\Xamarin.GooglePlayServices.Tasks.dll</HintPath>
</Reference>
<Reference Include="YoutubeExplode, Version=4.7.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\YoutubeExplode.4.7.1\lib\netstandard2.0\YoutubeExplode.dll</HintPath>
<Reference Include="YoutubeExplode, Version=4.7.3.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\YoutubeExplode.4.7.3\lib\netstandard2.0\YoutubeExplode.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>

View File

@@ -162,6 +162,9 @@ namespace Opus
public partial class Attribute
{
// aapt resource value: 0x7f010280
public const int accountIconColor = 2130772608;
// aapt resource value: 0x7f0100d1
public const int actionBarDivider = 2130772177;

View File

@@ -3,4 +3,5 @@
<attr name="defaultColor" format="reference|color" />
<attr name="iconColor" format="reference|color" />
<attr name="backgroundAccent" format="reference|color" />
<attr name="accountIconColor" format="reference|color" />
</resources>

View File

@@ -62,6 +62,7 @@
<item name="defaultColor">#ffffff</item>
<item name="iconColor">#000</item>
<item name="backgroundAccent">#fafafa</item>
<item name="accountIconColor">#808080</item>
</style>
<style name="DarkPreferences" parent="PreferenceThemeOverlay">
@@ -77,6 +78,7 @@
<item name="defaultColor">#212121</item>
<item name="iconColor">#ffffff</item>
<item name="backgroundAccent">#424242</item>
<item name="accountIconColor">#ffffff</item>
</style>
<style name="PreferenceCategoryStyle" parent="@style/Preference.Category.Material">

View File

@@ -32,11 +32,11 @@
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SQLitePCLRaw.core" publicKeyToken="1488e028ca7ab535" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.1.13.388" newVersion="1.1.13.388" />
<bindingRedirect oldVersion="0.0.0.0-1.1.14.520" newVersion="1.1.14.520" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SQLitePCLRaw.batteries_v2" publicKeyToken="8226ea5df37bcae9" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.1.13.388" newVersion="1.1.13.388" />
<bindingRedirect oldVersion="0.0.0.0-1.1.14.520" newVersion="1.1.14.520" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="AngleSharp" publicKeyToken="e83494dcdc6d31ea" culture="neutral" />

View File

@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="AngleSharp" version="0.9.11" targetFramework="monoandroid90" />
<package id="Google.Apis" version="1.40.0" targetFramework="monoandroid90" />
<package id="Google.Apis.Auth" version="1.40.0" targetFramework="monoandroid90" />
<package id="Google.Apis.Core" version="1.40.0" targetFramework="monoandroid90" />
<package id="Google.Apis.YouTube.v3" version="1.40.0.1593" targetFramework="monoandroid90" />
<package id="Google.Apis" version="1.40.2" targetFramework="monoandroid90" />
<package id="Google.Apis.Auth" version="1.40.2" targetFramework="monoandroid90" />
<package id="Google.Apis.Core" version="1.40.2" targetFramework="monoandroid90" />
<package id="Google.Apis.YouTube.v3" version="1.40.2.1593" targetFramework="monoandroid90" />
<package id="Karamunting.Android.AnderWeb.DiscreteSeekBar" version="1.0.1.1" targetFramework="monoandroid81" />
<package id="Microsoft.CSharp" version="4.5.0" targetFramework="monoandroid81" />
<package id="Microsoft.NETCore.Platforms" version="2.2.1" targetFramework="monoandroid90" />
@@ -16,10 +16,10 @@
<package id="PInvoke.NCrypt" version="0.5.184" targetFramework="monoandroid90" />
<package id="PInvoke.Windows.Core" version="0.5.184" targetFramework="monoandroid90" />
<package id="sqlite-net-pcl" version="1.5.231" targetFramework="monoandroid81" />
<package id="SQLitePCLRaw.bundle_green" version="1.1.13" targetFramework="monoandroid90" />
<package id="SQLitePCLRaw.core" version="1.1.13" targetFramework="monoandroid90" />
<package id="SQLitePCLRaw.lib.e_sqlite3.android" version="1.1.13" targetFramework="monoandroid90" />
<package id="SQLitePCLRaw.provider.e_sqlite3.android" version="1.1.13" targetFramework="monoandroid90" />
<package id="SQLitePCLRaw.bundle_green" version="1.1.14" targetFramework="monoandroid90" />
<package id="SQLitePCLRaw.core" version="1.1.14" targetFramework="monoandroid90" />
<package id="SQLitePCLRaw.lib.e_sqlite3.android" version="1.1.14" targetFramework="monoandroid90" />
<package id="SQLitePCLRaw.provider.e_sqlite3.android" version="1.1.14" targetFramework="monoandroid90" />
<package id="Square.OkHttp" version="2.7.5.0" targetFramework="monoandroid81" />
<package id="Square.OkIO" version="1.13.0" targetFramework="monoandroid81" />
<package id="Square.Picasso" version="2.5.2.1" targetFramework="monoandroid81" />
@@ -125,5 +125,5 @@
<package id="Xamarin.GooglePlayServices.Cast.Framework" version="70.1501.0-preview2" targetFramework="monoandroid81" />
<package id="Xamarin.GooglePlayServices.Flags" version="70.1501.0-preview2" targetFramework="monoandroid81" />
<package id="Xamarin.GooglePlayServices.Tasks" version="70.1501.0-preview2" targetFramework="monoandroid81" />
<package id="YoutubeExplode" version="4.7.1" targetFramework="monoandroid90" />
<package id="YoutubeExplode" version="4.7.3" targetFramework="monoandroid90" />
</packages>