Skip to content
This repository has been archived by the owner on Feb 6, 2025. It is now read-only.

Commit

Permalink
Assembly v 2.1.2 (12.11.24)
Browse files Browse the repository at this point in the history
  • Loading branch information
adslbarxatov committed Nov 11, 2024
1 parent 987e550 commit d57f23e
Show file tree
Hide file tree
Showing 9 changed files with 62 additions and 198 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/Release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
# Константы, используемые далее по тексту
env:
PROJ: ${{ github.event.repository.name }}
TAG: '2.1'
TAG: '2.1.2'

steps:
# Проверка состава репозитория (без анализа, как может показаться)
Expand Down
Binary file modified .release/GrammarMustJoy.apk
Binary file not shown.
Binary file added .release/GrammarMustJoy.exe
Binary file not shown.
43 changes: 43 additions & 0 deletions .release/GrammarMustJoy_ru_ru.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<html charset='utf-8'>
<head>
<title>Проект Grammar must joy: общие сведения | GrammarMustJoy</title>
</head>

<body>

<h1 id="grammar-must-joy--">Проект Grammar must joy: общие сведения</h1>
<p>ƒ <i>RD AAOW FDL</i></p>

<p>Существует огромное количество групп и сообществ, коллекционирующих юмор во всех его формах. Но вряд ли многие
из них могут похвастаться грамотностью текстов и подписей. И речь не о случаях, когда именно её отсутствие есть
основа для шутки. Это может быть даже не их вина – при огромном количестве скриншотов вместо обычных постов
этого в принципе сложно добиться.</p>
<p>Что ж, попробуем это исправить. Долгое время мы собирали понравившиеся записи, преобразуя их в приятную глазу
форму и выкладывая на своей стене. Просто так, чтобы отвлечься от текучки. Теперь огромный, образовавшийся почти
за семь лет запас доступен на этом канале вместе с новыми отечественными и зарубежными текстами.</p>
<p>Казалось бы, зачем это нужно? И всё-таки результат того сто́ит. Контент от этих манипуляций становится только
лучше. Но при этом возвращаются возможность текстового поиска по знакомым словам и скорость загрузки на особо
медленных девайсах. К тому же, благодаря долгому отбору в коллекции остались лишь самые «стойкие» экспонаты.</p>
<p>Вещание сообщества уже давно ведётся в Telegram, используя менее удобную платформу ВК в качестве
зеркала. Контент тот же, но, благодаря возможностям мессенджера во многих записях исправлены старые ошибки
и огрехи форматирования.</p>
<p>Кроме того, мы создали приложение-клиент для этого сообщества. Его главная особенность – способность извлекать
записи в случайном порядке из всего архива сообщества, исключая повторения, а также быстро и просто ими делиться.
Оно исключает необходимость ручного пролистывания новостной ленты.</p>
<p><em><strong>Итак, добро пожаловать в Grammar must joy!</strong></em></p>
<hr />
<p>Пара моментов:</p>
<ol>
<li>Да, контент не всегда будет (читайте: почти никогда не будет) оригинальным. И если он вдруг окажется на пути
чьего-нибудь копирайта, мы просим извещать нас об этом. Такой контент нам... будет изыматься из ленты.</li>
<li>Записи могут быть разными. Конечно, без шока, интимных подробностей и прочей неразрешёнки. Но всё-таки <code>18+</code>!</li>
<li>Если мы всё же где-то допускаем ошибки (что вероятно), просим также нам об этом сообщать. При таком названии проекта
не хочется ударять в грязь лицом.</li>
<li>Мы следуем Политике социальных сообществ. Поэтому рекламы в обозримом
будущем здесь не будет. Да и комментарии тут ни к чему. Но советы, пожелания и конструктивная критика приветствуются
(в комментариях головного сообщества).</li>
</ol>
<p>Очень надеемся, что Вам понравится юмор, который почти не подчёркивается Word’ом!</p>

</body>
</html>
10 changes: 4 additions & 6 deletions .release/Release.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
_Changes for v 2.1_:
_Changes for v 2.1.2_:
- Обновлён интерфейс “О приложении”;
- `Windows`: подсказки выполнены в более компактном варианте;
- `Windows`: реализован полноценный интерфейс настроек приложения, все переключатели из журнала перенесены туда;
- Добавлены варианты цветов журнала с жёлтым и синим текстом;
- Индексы архива: `934-1388-7332`;
- `Windows`: версия для Windows теперь умеет сохранять тексты длиной до 300 символов в форме картинок (аналогично версии для Android). Настройки вариантов на данный момент доступны только в Android;
- `Windows`: добавлена возможность переключать полупрозрачность для элементов журнала;
- `Windows`: элементы журнала теперь корректно реагируют на размеры окна;
- `Android`: реализована полупрозрачность для элементов журнала;
- `Windows`: поле журнала теперь имеет корректное разделение на отдельные записи. Каждая запись имеет своё программное поле, при нажатии на которое текст копируется в буфер обмена
- `Windows`: версия для Windows теперь умеет сохранять тексты длиной до 300 символов в форме картинок (аналогично версии для Android). Настройки вариантов на данный момент доступны только в Android
7 changes: 7 additions & 0 deletions Changes.log
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
Grammar must joy: changes log

ToDo:
- Проверить возможность реализации полноценного выбора шрифта в Windows

Version 2.1.2:
• Обновлён интерфейс “О приложении”;
• Windows: подсказки выполнены в более компактном варианте

Версия 2.1:
• Windows: реализован полноценный интерфейс настроек приложения, все переключатели
из журнала перенесены туда;
Expand Down
194 changes: 6 additions & 188 deletions src/GrammarMustJoyForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,15 @@ public partial class GrammarMustJoyForm: Form
private bool hideWindow;

private char[] groupSplitter = new char[] { '\x1' };
/*private bool csReverse = false; // Отмена повторной обработки изменения режима цензурирования*/

/*private ContextMenu bColorContextMenu;
private ContextMenu bHelpContextMenu;*/
private ContextMenu textContextMenu;
private int textContextSender;

private const string fontFamily = "Calibri";
private const int transculencyAmount = 15;

/// <summary>
/// Конструктор. Настраивает главную форму приложения
/// Конструктор. Запускает главную форму приложения
/// </summary>
public GrammarMustJoyForm (bool HideWindow)
{
Expand All @@ -45,20 +42,9 @@ public GrammarMustJoyForm (bool HideWindow)
if (!RDLocale.IsCurrentLanguageRuRu)
RDLocale.CurrentLanguage = RDLanguages.ru_ru;

/*if (!GMJ.EnableCopySubscription)
GMJ.EnableCopySubscription = true;*/

// Получение настроек
RDGenerics.LoadWindowDimensions (this);

/*BColor_ItemClicked (null, null); // Подгрузка настройки*/
ApplyColorsAndFonts ();
/*try
{
FontSizeField.Value = NotificationsSupport.LogFontSize / 10.0m;
GroupCountField.Value = NotificationsSupport.GroupSize;
}
catch { }*/

// Настройка иконки в трее
ni.Icon = Properties.GrammarMustJoy.GMJNotifier16;
Expand All @@ -74,7 +60,6 @@ public GrammarMustJoyForm (bool HideWindow)
RDLocale.GetDefaultText (RDLDefaultTexts.Button_Exit), BHelp_ItemClicked));

ni.MouseDown += ShowHideFullText;
/*ni.ContextMenu.MenuItems[1].DefaultItem = true;*/

// Цензурирование
if (RDGenerics.StartedFromMSStore)
Expand All @@ -83,21 +68,6 @@ public GrammarMustJoyForm (bool HideWindow)
GMJ.EnableCensorship = true;
}

/*// Цензурирование
if (RDGenerics.StartedFromMSStore)
{
CensorshipFlag.Visible = false;
if (!GMJ.EnableCensorship)
GMJ.EnableCensorship = true;
}
else
{
csReverse = true;
CensorshipFlag.Checked = GMJ.EnableCensorship;
csReverse = false;
CensorshipFlag_CheckedChanged (null, null);
}*/

// Контекстное меню журнала
textContextMenu = new ContextMenu ();
textContextMenu.MenuItems.Add (new MenuItem ("Копировать текст", TextContext_ItemClicked));
Expand All @@ -116,13 +86,7 @@ private void GrammarMustJoyForm_Shown (object sender, EventArgs e)
this.Hide ();
}

/*// Завершение работы службы
private void CloseService (object sender, EventArgs e)
{
allowExit = true;
this.Close ();
}*/

// Закрытие окна
private void GrammarMustJoyForm_FormClosing (object sender, FormClosingEventArgs e)
{
// Остановка службы
Expand All @@ -140,12 +104,6 @@ private void GrammarMustJoyForm_FormClosing (object sender, FormClosingEventArgs
}
}

/*// О приложении
private void AboutService (object sender, EventArgs e)
{
RDGenerics.ShowAbout (false);
}*/

// Отображение / скрытие полного списка оповещений
private void ShowHideFullText (object sender, MouseEventArgs e)
{
Expand Down Expand Up @@ -180,57 +138,13 @@ private void BClose_Click (object sender, EventArgs e)
this.Close ();
}

/*// Выбор цвета журнала
private void BColor_Clicked (object sender, EventArgs e)
{
// Создание вызывающего контекстного меню
if (bColorContextMenu == null)
{
bColorContextMenu = new ContextMenu ();
for (int i = 0; i < NotificationsSupport.LogColors.ColorNames.Length; i++)
bColorContextMenu.MenuItems.Add (new MenuItem (NotificationsSupport.LogColors.ColorNames[i],
BColor_ItemClicked));
bColorContextMenu.MenuItems.Add (new MenuItem ("-"));
bColorContextMenu.MenuItems.Add (new MenuItem ("Полупрозрачные элементы журнала",
BColor_ItemClicked));
bColorContextMenu.MenuItems[bColorContextMenu.MenuItems.Count - 1].Checked =
NotificationsSupport.TranslucentLogItems;
}
// Вызов
if (sender != null)
bColorContextMenu.Show (BColor, Point.Empty);
}
private void BColor_ItemClicked (object sender, EventArgs e)*/

// Загрузка параметров после настройки
private void ApplyColorsAndFonts ()
{
// Извлечение индекса
int idx;
/*if (sender == null)*/
idx = (int)NotificationsSupport.LogColor;
/*else
idx = bColorContextMenu.MenuItems.IndexOf ((MenuItem)sender);*/

/*// Сохранение
if (idx < NotificationsSupport.LogColors.ColorNames.Length)
{
NotificationsSupport.LogColor = (uint)idx;
}
else
{
MenuItem mi = bColorContextMenu.MenuItems[bColorContextMenu.MenuItems.Count - 1];
mi.Checked = !mi.Checked;
NotificationsSupport.TranslucentLogItems = mi.Checked;
FontSizeField_ValueChanged (null, null);
}*/

int idx = (int)NotificationsSupport.LogColor;
Font fnt = new Font (fontFamily, NotificationsSupport.LogFontSize / 10.0f);

MainLayout.BackColor = NotificationsSupport.LogColors.CurrentColor.BackColor;
for (int i = 0; i < MainLayout.Controls.Count; i++)
{
Expand Down Expand Up @@ -309,31 +223,9 @@ private void GetGMJ_Click (object sender, EventArgs e)
// Запрос записи
RDGenerics.RunWork (GetGMJExecutor, null, "Запрос случайной записи...",
RDRunWorkFlags.CaptionInTheMiddle);
/*string items = "";*/

string[] values = RDGenerics.WorkResultAsString.Split (groupSplitter,
StringSplitOptions.RemoveEmptyEntries);
/*bool empty = string.IsNullOrWhiteSpace (MainText.Text);
if (values.Length > 0)
{
for (int i = 0; i < values.Length; i++)
items += ((empty ? "" : RDLocale.RNRN + RDLocale.RNRN) +
values[i].Replace (NotificationsSupport.MainLogItemSplitter.ToString (),
RDLocale.RN));
}
else
{
items = (empty ? "" : RDLocale.RNRN) +
"GMJ не отвечает на запрос. Проверьте интернет-соединение";
}
// Добавление в главное окно
if ((MainText.Text.Length + items.Length > 40000) &&
(MainText.Text.Length > items.Length)) // Бывает и так
MainText.Text = MainText.Text.Substring (items.Length, MainText.Text.Length - items.Length);
MainText.AppendText (items);*/

if (values.Length < 1)
{
Expand Down Expand Up @@ -392,7 +284,7 @@ private void TextLabel_Clicked (object sender, EventArgs e)
textContextMenu.Show (l, Point.Empty);
}

// Выбор варианта в меню
// Выбор варианта в меню элемента в журнале
private void TextContext_ItemClicked (object sender, EventArgs e)
{
int idx = textContextMenu.MenuItems.IndexOf ((MenuItem)sender);
Expand Down Expand Up @@ -464,20 +356,6 @@ private void TextContext_ItemClicked (object sender, EventArgs e)
}
}

/*// Изменение размера шрифта
private void FontSizeField_ValueChanged (object sender, EventArgs e)
{
NotificationsSupport.LogFontSize = (uint)(FontSizeField.Value * 10.0m);
Font fnt = new Font (fontFamily, (float)FontSizeField.Value);
for (int i = 0; i < MainLayout.Controls.Count; i++)
{
Label l = (Label)MainLayout.Controls[i];
l.Font = fnt;
l.Margin = LogItemMargin;
}
}*/

private Padding LogItemMargin
{
get
Expand All @@ -487,31 +365,7 @@ private Padding LogItemMargin
}
}

/*// Изменение длины группы
private void GroupCountField_ValueChanged (object sender, EventArgs e)
{
NotificationsSupport.GroupSize = (uint)GroupCountField.Value;
}
// Вызов контекстного меню иконки
private void BHelp_Click (object sender, EventArgs e)
{
// Создание вызывающего контекстного меню
if (bHelpContextMenu == null)
{
bHelpContextMenu = new ContextMenu ();
bHelpContextMenu.MenuItems.Add (new MenuItem (GMJ.GMJStatsMenuItem, BHelp_ItemClicked));
bHelpContextMenu.MenuItems.Add (new MenuItem ("Настройки", BHelp_ItemClicked));
bHelpContextMenu.MenuItems.Add (new MenuItem (RDLocale.GetDefaultText (RDLDefaultTexts.Control_AppAbout),
BHelp_ItemClicked));
}
// Вызов
if (sender != null)
bHelpContextMenu.Show (BHelp, Point.Empty);
}*/

// Выбор варианта в меню иконки в трее
private void BHelp_ItemClicked (object sender, EventArgs e)
{
// Извлечение индекса
Expand Down Expand Up @@ -558,41 +412,5 @@ private void BSettings_Click (object sender, EventArgs e)

ApplyColorsAndFonts ();
}

/*// Изменение режима цензурирования
private void CensorshipFlag_CheckedChanged (object sender, EventArgs e)
{
// Внешняя часть
CensorshipFlag.BackColor = RDGenerics.GetInterfaceColor (CensorshipFlag.Checked ?
RDInterfaceColors.SuccessMessage : RDInterfaceColors.ErrorMessage);
// Защита от множественного входа
if ((sender == null) || csReverse)
return;
// Внутренняя часть
string msg = CensorshipFlag.Checked ? GMJ.CensorshipEnableMessage2 : GMJ.CensorshipDisableMessage2;
if (RDGenerics.MessageBox (RDMessageTypes.Warning_Left, msg,
RDLocale.GetDefaultText (RDLDefaultTexts.Button_YesNoFocus),
RDLocale.GetDefaultText (RDLDefaultTexts.Button_No)) == RDMessageButtons.ButtonOne)
{
GMJ.EnableCensorship = CensorshipFlag.Checked;
}
else
{
csReverse = true;
CensorshipFlag.Checked = GMJ.EnableCensorship;
csReverse = false;
return;
}
msg = CensorshipFlag.Checked ? GMJ.CensorshipEnableResetMessage : GMJ.CensorshipDisableResetMessage;
if (RDGenerics.MessageBox (RDMessageTypes.Warning_Left, msg,
RDLocale.GetDefaultText (RDLDefaultTexts.Button_YesNoFocus),
RDLocale.GetDefaultText (RDLDefaultTexts.Button_No)) == RDMessageButtons.ButtonOne)
{
GMJ.ResetFreeSet ();
}
}*/
}
}
2 changes: 1 addition & 1 deletion src/android/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.RD_AAOW.GrammarMustJoy"
android:installLocation="internalOnly" android:versionCode="600209" android:versionName="2.1">
android:installLocation="internalOnly" android:versionCode="600210" android:versionName="2.1.2">

<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="34" />

Expand Down
2 changes: 0 additions & 2 deletions src/android/App.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,6 @@ private readonly Color
aboutMasterBackColor = Color.FromArgb ("#F0FFF0"),
aboutFieldBackColor = Color.FromArgb ("#D0FFD0");

/*private GMJPictureColorsSet pColorsSet = new GMJPictureColorsSet ();*/

#endregion

#region Переменные страниц
Expand Down

0 comments on commit d57f23e

Please sign in to comment.