1
0
mirror of https://github.com/XFox111/GUTSchedule.git synced 2026-04-22 06:58:01 +03:00

Replaced about dialog with about page

Updated Layout files names to match codestyle rules
This commit is contained in:
Michael Gordeev
2020-02-05 17:50:43 +03:00
parent a80910928e
commit d75c851280
11 changed files with 481 additions and 292 deletions
@@ -0,0 +1,87 @@
using Android.App;
using Android.Content;
using Android.Content.PM;
using Android.OS;
using Android.Support.V4.Text;
using Android.Support.V7.App;
using Android.Text.Method;
using Android.Widget;
using Newtonsoft.Json;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
namespace GUT.Schedule.Activities
{
[Activity(Label = "О приложениии")]
public class AboutActivity : AppCompatActivity
{
private readonly (string name, string handle, string link)[] contacts = new (string, string, string)[]
{
("Веб-сайт", "https://xfox111.net", "https://xfox111.net"),
("Twitter", "@xfox111", "https://twitter.com/xfox111"),
("ВКонтакте", "@xfox.mike", "https://vk.com/xfox.mike"),
("LinkedIn", "@xfox", "https://linkedin.com/in/xfox"),
("GitHub", "@xfox111", "https://github.com/xfox111"),
};
private readonly (string name, string link)[] links = new (string, string)[]
{
("Политика конфиденциальности", "https://xfox111.net/Projects/GUTSchedule/PrivacyPolicy.txt"),
("General Public License v3", "https://www.gnu.org/licenses/gpl-3.0"),
("Репозиторий GitHub", "https://github.com/xfox111/gutschedule"),
("НОЦ \"ТИОС\"", "http://tios.spbgut.ru/index.php"),
("СПбГУТ", "https://sut.ru"),
};
protected override async void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.About);
PackageInfo version = PackageManager.GetPackageInfo(PackageName, PackageInfoFlags.MatchAll);
FindViewById<TextView>(Resource.Id.version).Text = $"v{version.VersionName} (ci-id #{version.VersionCode})";
FindViewById<Button>(Resource.Id.feedback).Click += (s, e) =>
StartActivity(new Intent(Intent.ActionView, Android.Net.Uri.Parse("mailto:feedback@xfox111.net")));
FindViewById<TextView>(Resource.Id.contacts).SetText(
HtmlCompat.FromHtml(string.Join("<br />", contacts.Select(i => $"<span>{i.name}:</span> <a href=\"{i.link}\">{i.handle}</a>")), HtmlCompat.FromHtmlModeLegacy),
TextView.BufferType.Normal);
FindViewById<TextView>(Resource.Id.contacts).MovementMethod = LinkMovementMethod.Instance;
FindViewById<TextView>(Resource.Id.links).SetText(
HtmlCompat.FromHtml(string.Join("<br />", links.Select(i => $"<a href=\"{i.link}\">{i.name}</a>")), HtmlCompat.FromHtmlModeLegacy),
TextView.BufferType.Normal);
FindViewById<TextView>(Resource.Id.links).MovementMethod = LinkMovementMethod.Instance;
List<string> contributors = new List<string>();
try
{
using HttpClient client = new HttpClient();
using HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://api.github.com/repos/xfox111/gutschedule/contributors");
request.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0");
HttpResponseMessage response = await client.SendAsync(request);
string resposeContent = await response.Content.ReadAsStringAsync();
dynamic parsedResponse = JsonConvert.DeserializeObject(resposeContent);
foreach (var i in parsedResponse)
if (i.type == "User" && ((string)i.login).ToLower() != "xfox111")
contributors.Add((string)i.login);
}
finally
{
if (contributors.Count > 0)
{
FindViewById<TextView>(Resource.Id.contributors).SetText(
HtmlCompat.FromHtml(string.Join(", ", contributors.Select(i => $"<a href=\"https://github.com/{i}\">@{i}</a>")), HtmlCompat.FromHtmlModeLegacy),
TextView.BufferType.Normal);
FindViewById<TextView>(Resource.Id.contributors).MovementMethod = LinkMovementMethod.Instance;
FindViewById<TextView>(Resource.Id.contributorsTitle).Visibility = Android.Views.ViewStates.Visible;
FindViewById<TextView>(Resource.Id.contributors).Visibility = Android.Views.ViewStates.Visible;
}
}
}
}
}
@@ -7,7 +7,7 @@ using System.Collections.Generic;
using System.Net.Http; using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace GUT.Schedule namespace GUT.Schedule.Activities
{ {
/// <summary> /// <summary>
/// Shows status of schedule export process /// Shows status of schedule export process
@@ -20,7 +20,7 @@ namespace GUT.Schedule
protected override void OnCreate(Bundle savedInstanceState) protected override void OnCreate(Bundle savedInstanceState)
{ {
base.OnCreate(savedInstanceState); base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.export_progress); SetContentView(Resource.Layout.Export);
status = FindViewById<TextView>(Resource.Id.status); status = FindViewById<TextView>(Resource.Id.status);
@@ -16,7 +16,7 @@ using AngleSharp.Html.Dom;
using AngleSharp.Html.Parser; using AngleSharp.Html.Parser;
using GUT.Schedule.Models; using GUT.Schedule.Models;
namespace GUT.Schedule namespace GUT.Schedule.Activities
{ {
[Activity] [Activity]
public class MainActivity : AppCompatActivity public class MainActivity : AppCompatActivity
@@ -34,7 +34,7 @@ namespace GUT.Schedule
protected override void OnCreate(Bundle savedInstanceState) protected override void OnCreate(Bundle savedInstanceState)
{ {
base.OnCreate(savedInstanceState); base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.activity_main); SetContentView(Resource.Layout.Main);
PackageInfo version = PackageManager.GetPackageInfo(PackageName, PackageInfoFlags.MatchAll); PackageInfo version = PackageManager.GetPackageInfo(PackageName, PackageInfoFlags.MatchAll);
FindViewById<TextView>(Resource.Id.version).Text = $"v{version.VersionName} (ci-id #{version.VersionCode})"; FindViewById<TextView>(Resource.Id.version).Text = $"v{version.VersionName} (ci-id #{version.VersionCode})";
@@ -321,16 +321,7 @@ namespace GUT.Schedule
switch (item.ItemId) switch (item.ItemId)
{ {
case Resource.Id.about: case Resource.Id.about:
builder = new Android.Support.V7.App.AlertDialog.Builder(this); StartActivity(new Intent(this, typeof(AboutActivity)));
builder.SetMessage(HtmlCompat.FromHtml(new StreamReader(Assets.Open("About.html")).ReadToEnd(), HtmlCompat.FromHtmlModeLegacy))
.SetTitle("ГУТ.Расписание")
.SetPositiveButton("ОК", (IDialogInterfaceOnClickListener)null);
dialog = builder.Create();
dialog.Show();
// Making links clickable
dialog.FindViewById<TextView>(Android.Resource.Id.Message).MovementMethod = LinkMovementMethod.Instance;
return true; return true;
case Resource.Id.email: case Resource.Id.email:
StartActivity(new Intent(Intent.ActionView, Android.Net.Uri.Parse("mailto:feedback@xfox111.net"))); StartActivity(new Intent(Intent.ActionView, Android.Net.Uri.Parse("mailto:feedback@xfox111.net")));
@@ -12,7 +12,7 @@ using System;
using System.Linq; using System.Linq;
using System.Net.Http; using System.Net.Http;
namespace GUT.Schedule namespace GUT.Schedule.Activities
{ {
/// <summary> /// <summary>
/// Splash screen activity. Loads init data /// Splash screen activity. Loads init data
@@ -24,7 +24,7 @@ namespace GUT.Schedule
protected override void OnCreate(Bundle savedInstanceState) protected override void OnCreate(Bundle savedInstanceState)
{ {
SetContentView(Resource.Layout.splash_screen); SetContentView(Resource.Layout.SplashScreen);
base.OnCreate(savedInstanceState); base.OnCreate(savedInstanceState);
status = FindViewById<TextView>(Resource.Id.status); status = FindViewById<TextView>(Resource.Id.status);
@@ -1,21 +0,0 @@
<p>
Приложение для экспорта расписания студентов СПбГУТ в Google календарь
</p>
<p>
<b>Разработал:</b> Михаил Гордеев, ИКСС, ИКТ-907<br />
<b>Веб-сайт:</b> <a href="https://xfox111.net">https://xfox111.net/</a><br />
<b>Твиттер:</b> <a href="https://twitter.com/xfox111">@xfox111</a><br />
<b>ВКонтакте:</b> <a href="https://vk.com/xfox.Mike">@xfox.mike</a><br />
<b>LinkedIn:</b> <a href="https://linkedin.com/in/xfox">@xfox</a><br />
</p>
<p>
<b>Поддержать:</b> <a href="https://www.buymeacoffee.com/xfox111">By me a coffee</a>
</p>
<p>
©2020 Michael "XFox" Gordeev.<br />
ПО с <a href="https://github.com/xfox111/gutschedule">открытым исходным кодом</a><br />
Лицензия: <a href="https://www.gnu.org/licenses/gpl-3.0">General Public License v3</a><br />
</p>
+18 -6
View File
@@ -87,6 +87,7 @@
<Reference Include="System.Numerics.Vectors" /> <Reference Include="System.Numerics.Vectors" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Activities\AboutActivity.cs" />
<Compile Include="Calendar.cs" /> <Compile Include="Calendar.cs" />
<Compile Include="Models\Data.cs" /> <Compile Include="Models\Data.cs" />
<Compile Include="Fragments\DatePickerFragment.cs" /> <Compile Include="Fragments\DatePickerFragment.cs" />
@@ -105,7 +106,7 @@
<None Include="Properties\AndroidManifest.xml" /> <None Include="Properties\AndroidManifest.xml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<AndroidResource Include="Resources\layout\activity_main.xml"> <AndroidResource Include="Resources\layout\Main.xml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
</AndroidResource> </AndroidResource>
<AndroidResource Include="Resources\values\colors.xml" /> <AndroidResource Include="Resources\values\colors.xml" />
@@ -127,13 +128,16 @@
<AndroidResource Include="Resources\mipmap-xxxhdpi\ic_launcher_foreground.png" /> <AndroidResource Include="Resources\mipmap-xxxhdpi\ic_launcher_foreground.png" />
<AndroidResource Include="Resources\mipmap-xxxhdpi\ic_launcher_round.png" /> <AndroidResource Include="Resources\mipmap-xxxhdpi\ic_launcher_round.png" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<AndroidAsset Include="Assets\About.html" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="AngleSharp"> <PackageReference Include="AngleSharp">
<Version>0.13.0</Version> <Version>0.13.0</Version>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.CSharp">
<Version>4.7.0</Version>
</PackageReference>
<PackageReference Include="Newtonsoft.Json">
<Version>12.0.3</Version>
</PackageReference>
<PackageReference Include="System.Net.Http"> <PackageReference Include="System.Net.Http">
<Version>4.3.4</Version> <Version>4.3.4</Version>
</PackageReference> </PackageReference>
@@ -143,7 +147,7 @@
<PackageReference Include="Xamarin.Essentials" Version="1.3.1" /> <PackageReference Include="Xamarin.Essentials" Version="1.3.1" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<AndroidResource Include="Resources\layout\splash_screen.xml"> <AndroidResource Include="Resources\layout\SplashScreen.xml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
</AndroidResource> </AndroidResource>
</ItemGroup> </ItemGroup>
@@ -151,7 +155,7 @@
<AndroidResource Include="Resources\menu\menu_main.xml" /> <AndroidResource Include="Resources\menu\menu_main.xml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<AndroidResource Include="Resources\layout\export_progress.xml"> <AndroidResource Include="Resources\layout\Export.xml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
</AndroidResource> </AndroidResource>
</ItemGroup> </ItemGroup>
@@ -161,6 +165,14 @@
<ItemGroup> <ItemGroup>
<AndroidResource Include="Resources\values\styles.xml" /> <AndroidResource Include="Resources\values\styles.xml" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\layout\About.xml">
<SubType>Designer</SubType>
</AndroidResource>
</ItemGroup>
<ItemGroup>
<Folder Include="Assets\" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" /> <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.
+266 -248
View File
@@ -3353,496 +3353,511 @@ namespace GUT.Schedule
public const int collapseActionView = 2131230771; public const int collapseActionView = 2131230771;
// aapt resource value: 0x7F080034 // aapt resource value: 0x7F080034
public const int container = 2131230772; public const int contacts = 2131230772;
// aapt resource value: 0x7F080035 // aapt resource value: 0x7F080035
public const int content = 2131230773; public const int container = 2131230773;
// aapt resource value: 0x7F080036 // aapt resource value: 0x7F080036
public const int contentPanel = 2131230774; public const int content = 2131230774;
// aapt resource value: 0x7F080037 // aapt resource value: 0x7F080037
public const int coordinator = 2131230775; public const int contentPanel = 2131230775;
// aapt resource value: 0x7F080038 // aapt resource value: 0x7F080038
public const int course = 2131230776; public const int contributors = 2131230776;
// aapt resource value: 0x7F080039
public const int contributorsTitle = 2131230777;
// aapt resource value: 0x7F08003A
public const int coordinator = 2131230778;
// aapt resource value: 0x7F08003B
public const int course = 2131230779;
// aapt resource value: 0x7F080001 // aapt resource value: 0x7F080001
public const int CTRL = 2131230721; public const int CTRL = 2131230721;
// aapt resource value: 0x7F080039
public const int custom = 2131230777;
// aapt resource value: 0x7F08003A
public const int customPanel = 2131230778;
// aapt resource value: 0x7F08003B
public const int decor_content_parent = 2131230779;
// aapt resource value: 0x7F08003C // aapt resource value: 0x7F08003C
public const int default_activity_button = 2131230780; public const int custom = 2131230780;
// aapt resource value: 0x7F08003D // aapt resource value: 0x7F08003D
public const int design_bottom_sheet = 2131230781; public const int customPanel = 2131230781;
// aapt resource value: 0x7F08003E // aapt resource value: 0x7F08003E
public const int design_menu_item_action_area = 2131230782; public const int decor_content_parent = 2131230782;
// aapt resource value: 0x7F08003F // aapt resource value: 0x7F08003F
public const int design_menu_item_action_area_stub = 2131230783; public const int default_activity_button = 2131230783;
// aapt resource value: 0x7F080040 // aapt resource value: 0x7F080040
public const int design_menu_item_text = 2131230784; public const int design_bottom_sheet = 2131230784;
// aapt resource value: 0x7F080041 // aapt resource value: 0x7F080041
public const int design_navigation_view = 2131230785; public const int design_menu_item_action_area = 2131230785;
// aapt resource value: 0x7F080042 // aapt resource value: 0x7F080042
public const int disableHome = 2131230786; public const int design_menu_item_action_area_stub = 2131230786;
// aapt resource value: 0x7F080043 // aapt resource value: 0x7F080043
public const int edit_query = 2131230787; public const int design_menu_item_text = 2131230787;
// aapt resource value: 0x7F080044 // aapt resource value: 0x7F080044
public const int email = 2131230788; public const int design_navigation_view = 2131230788;
// aapt resource value: 0x7F080045 // aapt resource value: 0x7F080045
public const int end = 2131230789; public const int disableHome = 2131230789;
// aapt resource value: 0x7F080046 // aapt resource value: 0x7F080046
public const int enterAlways = 2131230790; public const int edit_query = 2131230790;
// aapt resource value: 0x7F080047 // aapt resource value: 0x7F080047
public const int enterAlwaysCollapsed = 2131230791; public const int email = 2131230791;
// aapt resource value: 0x7F080048 // aapt resource value: 0x7F080048
public const int error = 2131230792; public const int end = 2131230792;
// aapt resource value: 0x7F080049 // aapt resource value: 0x7F080049
public const int exitUntilCollapsed = 2131230793; public const int enterAlways = 2131230793;
// aapt resource value: 0x7F08004B
public const int expanded_menu = 2131230795;
// aapt resource value: 0x7F08004A // aapt resource value: 0x7F08004A
public const int expand_activities_button = 2131230794; public const int enterAlwaysCollapsed = 2131230794;
// aapt resource value: 0x7F08004B
public const int error = 2131230795;
// aapt resource value: 0x7F08004C // aapt resource value: 0x7F08004C
public const int export = 2131230796; public const int exitUntilCollapsed = 2131230796;
// aapt resource value: 0x7F08004D
public const int faculty = 2131230797;
// aapt resource value: 0x7F08004E // aapt resource value: 0x7F08004E
public const int fill = 2131230798; public const int expanded_menu = 2131230798;
// aapt resource value: 0x7F080051 // aapt resource value: 0x7F08004D
public const int filled = 2131230801; public const int expand_activities_button = 2131230797;
// aapt resource value: 0x7F08004F // aapt resource value: 0x7F08004F
public const int fill_horizontal = 2131230799; public const int export = 2131230799;
// aapt resource value: 0x7F080050 // aapt resource value: 0x7F080050
public const int fill_vertical = 2131230800; public const int faculty = 2131230800;
// aapt resource value: 0x7F080051
public const int feedback = 2131230801;
// aapt resource value: 0x7F080052 // aapt resource value: 0x7F080052
public const int @fixed = 2131230802; public const int fill = 2131230802;
// aapt resource value: 0x7F080053
public const int forDay = 2131230803;
// aapt resource value: 0x7F080057
public const int forever = 2131230807;
// aapt resource value: 0x7F080054
public const int forMonth = 2131230804;
// aapt resource value: 0x7F080055 // aapt resource value: 0x7F080055
public const int forSemester = 2131230805; public const int filled = 2131230805;
// aapt resource value: 0x7F080053
public const int fill_horizontal = 2131230803;
// aapt resource value: 0x7F080054
public const int fill_vertical = 2131230804;
// aapt resource value: 0x7F080056 // aapt resource value: 0x7F080056
public const int forWeek = 2131230806; public const int @fixed = 2131230806;
// aapt resource value: 0x7F080057
public const int forDay = 2131230807;
// aapt resource value: 0x7F08005B
public const int forever = 2131230811;
// aapt resource value: 0x7F080058
public const int forMonth = 2131230808;
// aapt resource value: 0x7F080059
public const int forSemester = 2131230809;
// aapt resource value: 0x7F08005A
public const int forWeek = 2131230810;
// aapt resource value: 0x7F080002 // aapt resource value: 0x7F080002
public const int FUNCTION = 2131230722; public const int FUNCTION = 2131230722;
// aapt resource value: 0x7F080058
public const int ghost_view = 2131230808;
// aapt resource value: 0x7F080059
public const int group = 2131230809;
// aapt resource value: 0x7F08005A
public const int groupTitle = 2131230810;
// aapt resource value: 0x7F08005B
public const int group_divider = 2131230811;
// aapt resource value: 0x7F08005C // aapt resource value: 0x7F08005C
public const int home = 2131230812; public const int ghost_view = 2131230812;
// aapt resource value: 0x7F08005D // aapt resource value: 0x7F08005D
public const int homeAsUp = 2131230813; public const int group = 2131230813;
// aapt resource value: 0x7F08005E // aapt resource value: 0x7F08005E
public const int icon = 2131230814; public const int groupTitle = 2131230814;
// aapt resource value: 0x7F08005F // aapt resource value: 0x7F08005F
public const int icon_group = 2131230815; public const int group_divider = 2131230815;
// aapt resource value: 0x7F080060 // aapt resource value: 0x7F080060
public const int ifRoom = 2131230816; public const int home = 2131230816;
// aapt resource value: 0x7F080061 // aapt resource value: 0x7F080061
public const int image = 2131230817; public const int homeAsUp = 2131230817;
// aapt resource value: 0x7F080062 // aapt resource value: 0x7F080062
public const int info = 2131230818; public const int icon = 2131230818;
// aapt resource value: 0x7F080063 // aapt resource value: 0x7F080063
public const int italic = 2131230819; public const int icon_group = 2131230819;
// aapt resource value: 0x7F080064 // aapt resource value: 0x7F080064
public const int item_touch_helper_previous_elevation = 2131230820; public const int ifRoom = 2131230820;
// aapt resource value: 0x7F080065 // aapt resource value: 0x7F080065
public const int labeled = 2131230821; public const int image = 2131230821;
// aapt resource value: 0x7F080066 // aapt resource value: 0x7F080066
public const int largeLabel = 2131230822; public const int info = 2131230822;
// aapt resource value: 0x7F080067 // aapt resource value: 0x7F080067
public const int left = 2131230823; public const int italic = 2131230823;
// aapt resource value: 0x7F080068 // aapt resource value: 0x7F080068
public const int line1 = 2131230824; public const int item_touch_helper_previous_elevation = 2131230824;
// aapt resource value: 0x7F080069 // aapt resource value: 0x7F080069
public const int line3 = 2131230825; public const int labeled = 2131230825;
// aapt resource value: 0x7F08006A // aapt resource value: 0x7F08006A
public const int listMode = 2131230826; public const int largeLabel = 2131230826;
// aapt resource value: 0x7F08006B // aapt resource value: 0x7F08006B
public const int list_item = 2131230827; public const int left = 2131230827;
// aapt resource value: 0x7F08006C // aapt resource value: 0x7F08006C
public const int masked = 2131230828; public const int line1 = 2131230828;
// aapt resource value: 0x7F08006D // aapt resource value: 0x7F08006D
public const int message = 2131230829; public const int line3 = 2131230829;
// aapt resource value: 0x7F08006E
public const int links = 2131230830;
// aapt resource value: 0x7F08006F
public const int listMode = 2131230831;
// aapt resource value: 0x7F080070
public const int list_item = 2131230832;
// aapt resource value: 0x7F080071
public const int masked = 2131230833;
// aapt resource value: 0x7F080072
public const int message = 2131230834;
// aapt resource value: 0x7F080003 // aapt resource value: 0x7F080003
public const int META = 2131230723; public const int META = 2131230723;
// aapt resource value: 0x7F08006E
public const int middle = 2131230830;
// aapt resource value: 0x7F08006F
public const int mini = 2131230831;
// aapt resource value: 0x7F080070
public const int mtrl_child_content_container = 2131230832;
// aapt resource value: 0x7F080071
public const int mtrl_internal_children_alpha_tag = 2131230833;
// aapt resource value: 0x7F080072
public const int multiply = 2131230834;
// aapt resource value: 0x7F080073 // aapt resource value: 0x7F080073
public const int navigation_header_container = 2131230835; public const int middle = 2131230835;
// aapt resource value: 0x7F080074 // aapt resource value: 0x7F080074
public const int never = 2131230836; public const int mini = 2131230836;
// aapt resource value: 0x7F080075 // aapt resource value: 0x7F080075
public const int none = 2131230837; public const int mtrl_child_content_container = 2131230837;
// aapt resource value: 0x7F080076 // aapt resource value: 0x7F080076
public const int normal = 2131230838; public const int mtrl_internal_children_alpha_tag = 2131230838;
// aapt resource value: 0x7F080077 // aapt resource value: 0x7F080077
public const int notification_background = 2131230839; public const int multiply = 2131230839;
// aapt resource value: 0x7F080078 // aapt resource value: 0x7F080078
public const int notification_main_column = 2131230840; public const int navigation_header_container = 2131230840;
// aapt resource value: 0x7F080079 // aapt resource value: 0x7F080079
public const int notification_main_column_container = 2131230841; public const int never = 2131230841;
// aapt resource value: 0x7F08007A // aapt resource value: 0x7F08007A
public const int outline = 2131230842; public const int none = 2131230842;
// aapt resource value: 0x7F08007B // aapt resource value: 0x7F08007B
public const int parallax = 2131230843; public const int normal = 2131230843;
// aapt resource value: 0x7F08007C // aapt resource value: 0x7F08007C
public const int parentPanel = 2131230844; public const int notification_background = 2131230844;
// aapt resource value: 0x7F08007D // aapt resource value: 0x7F08007D
public const int parent_matrix = 2131230845; public const int notification_main_column = 2131230845;
// aapt resource value: 0x7F08007E // aapt resource value: 0x7F08007E
public const int password = 2131230846; public const int notification_main_column_container = 2131230846;
// aapt resource value: 0x7F08007F // aapt resource value: 0x7F08007F
public const int pin = 2131230847; public const int outline = 2131230847;
// aapt resource value: 0x7F080080 // aapt resource value: 0x7F080080
public const int professorParams = 2131230848; public const int parallax = 2131230848;
// aapt resource value: 0x7F080081 // aapt resource value: 0x7F080081
public const int progress_circular = 2131230849; public const int parentPanel = 2131230849;
// aapt resource value: 0x7F080082 // aapt resource value: 0x7F080082
public const int progress_horizontal = 2131230850; public const int parent_matrix = 2131230850;
// aapt resource value: 0x7F080083 // aapt resource value: 0x7F080083
public const int radio = 2131230851; public const int password = 2131230851;
// aapt resource value: 0x7F080084 // aapt resource value: 0x7F080084
public const int reminder = 2131230852; public const int pin = 2131230852;
// aapt resource value: 0x7F080085 // aapt resource value: 0x7F080085
public const int right = 2131230853; public const int professorParams = 2131230853;
// aapt resource value: 0x7F080086 // aapt resource value: 0x7F080086
public const int right_icon = 2131230854; public const int progress_circular = 2131230854;
// aapt resource value: 0x7F080087 // aapt resource value: 0x7F080087
public const int right_side = 2131230855; public const int progress_horizontal = 2131230855;
// aapt resource value: 0x7F080088 // aapt resource value: 0x7F080088
public const int save_image_matrix = 2131230856; public const int radio = 2131230856;
// aapt resource value: 0x7F080089 // aapt resource value: 0x7F080089
public const int save_non_transition_alpha = 2131230857; public const int reminder = 2131230857;
// aapt resource value: 0x7F08008A // aapt resource value: 0x7F08008A
public const int save_scale_type = 2131230858; public const int right = 2131230858;
// aapt resource value: 0x7F08008B // aapt resource value: 0x7F08008B
public const int screen = 2131230859; public const int right_icon = 2131230859;
// aapt resource value: 0x7F08008C // aapt resource value: 0x7F08008C
public const int scroll = 2131230860; public const int right_side = 2131230860;
// aapt resource value: 0x7F080090
public const int scrollable = 2131230864;
// aapt resource value: 0x7F08008D // aapt resource value: 0x7F08008D
public const int scrollIndicatorDown = 2131230861; public const int save_image_matrix = 2131230861;
// aapt resource value: 0x7F08008E // aapt resource value: 0x7F08008E
public const int scrollIndicatorUp = 2131230862; public const int save_non_transition_alpha = 2131230862;
// aapt resource value: 0x7F08008F // aapt resource value: 0x7F08008F
public const int scrollView = 2131230863; public const int save_scale_type = 2131230863;
// aapt resource value: 0x7F080090
public const int screen = 2131230864;
// aapt resource value: 0x7F080091 // aapt resource value: 0x7F080091
public const int search_badge = 2131230865; public const int scroll = 2131230865;
// aapt resource value: 0x7F080092
public const int search_bar = 2131230866;
// aapt resource value: 0x7F080093
public const int search_button = 2131230867;
// aapt resource value: 0x7F080094
public const int search_close_btn = 2131230868;
// aapt resource value: 0x7F080095 // aapt resource value: 0x7F080095
public const int search_edit_frame = 2131230869; public const int scrollable = 2131230869;
// aapt resource value: 0x7F080092
public const int scrollIndicatorDown = 2131230866;
// aapt resource value: 0x7F080093
public const int scrollIndicatorUp = 2131230867;
// aapt resource value: 0x7F080094
public const int scrollView = 2131230868;
// aapt resource value: 0x7F080096 // aapt resource value: 0x7F080096
public const int search_go_btn = 2131230870; public const int search_badge = 2131230870;
// aapt resource value: 0x7F080097 // aapt resource value: 0x7F080097
public const int search_mag_icon = 2131230871; public const int search_bar = 2131230871;
// aapt resource value: 0x7F080098 // aapt resource value: 0x7F080098
public const int search_plate = 2131230872; public const int search_button = 2131230872;
// aapt resource value: 0x7F080099 // aapt resource value: 0x7F080099
public const int search_src_text = 2131230873; public const int search_close_btn = 2131230873;
// aapt resource value: 0x7F08009A // aapt resource value: 0x7F08009A
public const int search_voice_btn = 2131230874; public const int search_edit_frame = 2131230874;
// aapt resource value: 0x7F08009C
public const int selected = 2131230876;
// aapt resource value: 0x7F08009B // aapt resource value: 0x7F08009B
public const int select_dialog_listview = 2131230875; public const int search_go_btn = 2131230875;
// aapt resource value: 0x7F08009C
public const int search_mag_icon = 2131230876;
// aapt resource value: 0x7F08009D
public const int search_plate = 2131230877;
// aapt resource value: 0x7F08009E
public const int search_src_text = 2131230878;
// aapt resource value: 0x7F08009F
public const int search_voice_btn = 2131230879;
// aapt resource value: 0x7F0800A1
public const int selected = 2131230881;
// aapt resource value: 0x7F0800A0
public const int select_dialog_listview = 2131230880;
// aapt resource value: 0x7F080004 // aapt resource value: 0x7F080004
public const int SHIFT = 2131230724; public const int SHIFT = 2131230724;
// aapt resource value: 0x7F08009D
public const int shortcut = 2131230877;
// aapt resource value: 0x7F08009E
public const int showCustom = 2131230878;
// aapt resource value: 0x7F08009F
public const int showHome = 2131230879;
// aapt resource value: 0x7F0800A0
public const int showTitle = 2131230880;
// aapt resource value: 0x7F0800A1
public const int smallLabel = 2131230881;
// aapt resource value: 0x7F0800A2 // aapt resource value: 0x7F0800A2
public const int snackbar_action = 2131230882; public const int shortcut = 2131230882;
// aapt resource value: 0x7F0800A3 // aapt resource value: 0x7F0800A3
public const int snackbar_text = 2131230883; public const int showCustom = 2131230883;
// aapt resource value: 0x7F0800A4 // aapt resource value: 0x7F0800A4
public const int snap = 2131230884; public const int showHome = 2131230884;
// aapt resource value: 0x7F0800A5 // aapt resource value: 0x7F0800A5
public const int snapMargins = 2131230885; public const int showTitle = 2131230885;
// aapt resource value: 0x7F0800A6 // aapt resource value: 0x7F0800A6
public const int spacer = 2131230886; public const int smallLabel = 2131230886;
// aapt resource value: 0x7F0800A7 // aapt resource value: 0x7F0800A7
public const int split_action_bar = 2131230887; public const int snackbar_action = 2131230887;
// aapt resource value: 0x7F0800A8 // aapt resource value: 0x7F0800A8
public const int src_atop = 2131230888; public const int snackbar_text = 2131230888;
// aapt resource value: 0x7F0800A9 // aapt resource value: 0x7F0800A9
public const int src_in = 2131230889; public const int snap = 2131230889;
// aapt resource value: 0x7F0800AA // aapt resource value: 0x7F0800AA
public const int src_over = 2131230890; public const int snapMargins = 2131230890;
// aapt resource value: 0x7F0800AB // aapt resource value: 0x7F0800AB
public const int start = 2131230891; public const int spacer = 2131230891;
// aapt resource value: 0x7F0800AC // aapt resource value: 0x7F0800AC
public const int status = 2131230892; public const int split_action_bar = 2131230892;
// aapt resource value: 0x7F0800AD // aapt resource value: 0x7F0800AD
public const int stretch = 2131230893; public const int src_atop = 2131230893;
// aapt resource value: 0x7F0800AE // aapt resource value: 0x7F0800AE
public const int studentParams = 2131230894; public const int src_in = 2131230894;
// aapt resource value: 0x7F0800AF // aapt resource value: 0x7F0800AF
public const int submenuarrow = 2131230895; public const int src_over = 2131230895;
// aapt resource value: 0x7F0800B0 // aapt resource value: 0x7F0800B0
public const int submit_area = 2131230896; public const int start = 2131230896;
// aapt resource value: 0x7F0800B1
public const int status = 2131230897;
// aapt resource value: 0x7F0800B2
public const int stretch = 2131230898;
// aapt resource value: 0x7F0800B3
public const int studentParams = 2131230899;
// aapt resource value: 0x7F0800B4
public const int submenuarrow = 2131230900;
// aapt resource value: 0x7F0800B5
public const int submit_area = 2131230901;
// aapt resource value: 0x7F080005 // aapt resource value: 0x7F080005
public const int SYM = 2131230725; public const int SYM = 2131230725;
// aapt resource value: 0x7F0800B1
public const int tabMode = 2131230897;
// aapt resource value: 0x7F0800B2
public const int tag_transition_group = 2131230898;
// aapt resource value: 0x7F0800B3
public const int tag_unhandled_key_event_manager = 2131230899;
// aapt resource value: 0x7F0800B4
public const int tag_unhandled_key_listeners = 2131230900;
// aapt resource value: 0x7F0800B5
public const int text = 2131230901;
// aapt resource value: 0x7F0800B6 // aapt resource value: 0x7F0800B6
public const int text2 = 2131230902; public const int tabMode = 2131230902;
// aapt resource value: 0x7F0800BB
public const int textinput_counter = 2131230907;
// aapt resource value: 0x7F0800BC
public const int textinput_error = 2131230908;
// aapt resource value: 0x7F0800BD
public const int textinput_helper_text = 2131230909;
// aapt resource value: 0x7F0800B7 // aapt resource value: 0x7F0800B7
public const int textSpacerNoButtons = 2131230903; public const int tag_transition_group = 2131230903;
// aapt resource value: 0x7F0800B8 // aapt resource value: 0x7F0800B8
public const int textSpacerNoTitle = 2131230904; public const int tag_unhandled_key_event_manager = 2131230904;
// aapt resource value: 0x7F0800B9 // aapt resource value: 0x7F0800B9
public const int textStart = 2131230905; public const int tag_unhandled_key_listeners = 2131230905;
// aapt resource value: 0x7F0800BA // aapt resource value: 0x7F0800BA
public const int text_input_password_toggle = 2131230906; public const int text = 2131230906;
// aapt resource value: 0x7F0800BE // aapt resource value: 0x7F0800BB
public const int time = 2131230910; public const int text2 = 2131230907;
// aapt resource value: 0x7F0800BF
public const int title = 2131230911;
// aapt resource value: 0x7F0800C0 // aapt resource value: 0x7F0800C0
public const int titleDividerNoCustom = 2131230912; public const int textinput_counter = 2131230912;
// aapt resource value: 0x7F0800C1 // aapt resource value: 0x7F0800C1
public const int title_template = 2131230913; public const int textinput_error = 2131230913;
// aapt resource value: 0x7F0800C2 // aapt resource value: 0x7F0800C2
public const int top = 2131230914; public const int textinput_helper_text = 2131230914;
// aapt resource value: 0x7F0800BC
public const int textSpacerNoButtons = 2131230908;
// aapt resource value: 0x7F0800BD
public const int textSpacerNoTitle = 2131230909;
// aapt resource value: 0x7F0800BE
public const int textStart = 2131230910;
// aapt resource value: 0x7F0800BF
public const int text_input_password_toggle = 2131230911;
// aapt resource value: 0x7F0800C3 // aapt resource value: 0x7F0800C3
public const int topPanel = 2131230915; public const int time = 2131230915;
// aapt resource value: 0x7F0800C4 // aapt resource value: 0x7F0800C4
public const int touch_outside = 2131230916; public const int title = 2131230916;
// aapt resource value: 0x7F0800C5 // aapt resource value: 0x7F0800C5
public const int transition_current_scene = 2131230917; public const int titleDividerNoCustom = 2131230917;
// aapt resource value: 0x7F0800C6 // aapt resource value: 0x7F0800C6
public const int transition_layout_save = 2131230918; public const int title_template = 2131230918;
// aapt resource value: 0x7F0800C7 // aapt resource value: 0x7F0800C7
public const int transition_position = 2131230919; public const int top = 2131230919;
// aapt resource value: 0x7F0800C8 // aapt resource value: 0x7F0800C8
public const int transition_scene_layoutid_cache = 2131230920; public const int topPanel = 2131230920;
// aapt resource value: 0x7F0800C9 // aapt resource value: 0x7F0800C9
public const int transition_transform = 2131230921; public const int touch_outside = 2131230921;
// aapt resource value: 0x7F0800CA // aapt resource value: 0x7F0800CA
public const int uniform = 2131230922; public const int transition_current_scene = 2131230922;
// aapt resource value: 0x7F0800CB // aapt resource value: 0x7F0800CB
public const int unlabeled = 2131230923; public const int transition_layout_save = 2131230923;
// aapt resource value: 0x7F0800CC // aapt resource value: 0x7F0800CC
public const int up = 2131230924; public const int transition_position = 2131230924;
// aapt resource value: 0x7F0800CD // aapt resource value: 0x7F0800CD
public const int useLogo = 2131230925; public const int transition_scene_layoutid_cache = 2131230925;
// aapt resource value: 0x7F0800CE // aapt resource value: 0x7F0800CE
public const int version = 2131230926; public const int transition_transform = 2131230926;
// aapt resource value: 0x7F0800CF // aapt resource value: 0x7F0800CF
public const int view_offset_helper = 2131230927; public const int uniform = 2131230927;
// aapt resource value: 0x7F0800D0 // aapt resource value: 0x7F0800D0
public const int visible = 2131230928; public const int unlabeled = 2131230928;
// aapt resource value: 0x7F0800D1 // aapt resource value: 0x7F0800D1
public const int withText = 2131230929; public const int up = 2131230929;
// aapt resource value: 0x7F0800D2 // aapt resource value: 0x7F0800D2
public const int wrap_content = 2131230930; public const int useLogo = 2131230930;
// aapt resource value: 0x7F0800D3
public const int version = 2131230931;
// aapt resource value: 0x7F0800D4
public const int view_offset_helper = 2131230932;
// aapt resource value: 0x7F0800D5
public const int visible = 2131230933;
// aapt resource value: 0x7F0800D6
public const int withText = 2131230934;
// aapt resource value: 0x7F0800D7
public const int wrap_content = 2131230935;
static Id() static Id()
{ {
@@ -4025,7 +4040,7 @@ namespace GUT.Schedule
public const int abc_tooltip = 2131427355; public const int abc_tooltip = 2131427355;
// aapt resource value: 0x7F0B001C // aapt resource value: 0x7F0B001C
public const int activity_main = 2131427356; public const int About = 2131427356;
// aapt resource value: 0x7F0B001D // aapt resource value: 0x7F0B001D
public const int browser_actions_context_menu_page = 2131427357; public const int browser_actions_context_menu_page = 2131427357;
@@ -4076,46 +4091,49 @@ namespace GUT.Schedule
public const int design_text_input_password_icon = 2131427372; public const int design_text_input_password_icon = 2131427372;
// aapt resource value: 0x7F0B002D // aapt resource value: 0x7F0B002D
public const int export_progress = 2131427373; public const int Export = 2131427373;
// aapt resource value: 0x7F0B002E // aapt resource value: 0x7F0B002E
public const int mtrl_layout_snackbar = 2131427374; public const int Main = 2131427374;
// aapt resource value: 0x7F0B002F // aapt resource value: 0x7F0B002F
public const int mtrl_layout_snackbar_include = 2131427375; public const int mtrl_layout_snackbar = 2131427375;
// aapt resource value: 0x7F0B0030 // aapt resource value: 0x7F0B0030
public const int notification_action = 2131427376; public const int mtrl_layout_snackbar_include = 2131427376;
// aapt resource value: 0x7F0B0031 // aapt resource value: 0x7F0B0031
public const int notification_action_tombstone = 2131427377; public const int notification_action = 2131427377;
// aapt resource value: 0x7F0B0032 // aapt resource value: 0x7F0B0032
public const int notification_template_custom_big = 2131427378; public const int notification_action_tombstone = 2131427378;
// aapt resource value: 0x7F0B0033 // aapt resource value: 0x7F0B0033
public const int notification_template_icon_group = 2131427379; public const int notification_template_custom_big = 2131427379;
// aapt resource value: 0x7F0B0034 // aapt resource value: 0x7F0B0034
public const int notification_template_part_chronometer = 2131427380; public const int notification_template_icon_group = 2131427380;
// aapt resource value: 0x7F0B0035 // aapt resource value: 0x7F0B0035
public const int notification_template_part_time = 2131427381; public const int notification_template_part_chronometer = 2131427381;
// aapt resource value: 0x7F0B0036 // aapt resource value: 0x7F0B0036
public const int select_dialog_item_material = 2131427382; public const int notification_template_part_time = 2131427382;
// aapt resource value: 0x7F0B0037 // aapt resource value: 0x7F0B0037
public const int select_dialog_multichoice_material = 2131427383; public const int select_dialog_item_material = 2131427383;
// aapt resource value: 0x7F0B0038 // aapt resource value: 0x7F0B0038
public const int select_dialog_singlechoice_material = 2131427384; public const int select_dialog_multichoice_material = 2131427384;
// aapt resource value: 0x7F0B0039 // aapt resource value: 0x7F0B0039
public const int splash_screen = 2131427385; public const int select_dialog_singlechoice_material = 2131427385;
// aapt resource value: 0x7F0B003A // aapt resource value: 0x7F0B003A
public const int support_simple_spinner_dropdown_item = 2131427386; public const int SplashScreen = 2131427386;
// aapt resource value: 0x7F0B003B
public const int support_simple_spinner_dropdown_item = 2131427387;
static Layout() static Layout()
{ {
@@ -0,0 +1,102 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:theme="@style/AppTheme.Light">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/TextAppearance.AppCompat.Headline"
android:text="ГУТ.Расписание"/>
<TextView
android:id="@+id/version"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="italic"
android:layout_marginTop="-5dp"
android:layout_marginBottom="10dp"
android:text="v$(Build.BuildNumber) (ci-id #$(Build.BuildId))"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Приложение для экспорта перподавательского и учебного расписаний Санкт-Петербургского Государственного Университета Телекоммуникаций им. проф. М.А. Бонч-Бруевича"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="Разработано Михаилом Гордеевым, ИКТ-907, ИКСС в Научно-образовательном центре &#x22;Технологии информационных образовательных систем&#x22;"/>
<TextView
android:id="@+id/contributorsTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
style="@style/TextAppearance.AppCompat.Subhead"
android:visibility="gone"
android:text="Свой вклад в разработку внесли"/>
<TextView
android:id="@+id/contributors"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
style="@style/TextAppearance.AppCompat.Subhead"
android:text="Особые благодарности"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Виталий Мошков, Анастасия Годунова"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
style="@style/TextAppearance.AppCompat.Subhead"
android:text="Контакты"/>
<TextView
android:id="@+id/contacts"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
style="@style/TextAppearance.AppCompat.Subhead"
android:text="Полезные ссылки"/>
<TextView
android:id="@+id/links"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="©2020 Michael &#x22;XFox&#x22; Gordeev"/>
<Button
android:id="@+id/feedback"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Оставить отзыв"/>
</LinearLayout>
</ScrollView>
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"