eastern egg and text and icon
|
@ -196,7 +196,7 @@ public class ActionBar extends FrameLayout {
|
||||||
if (drawable != null) {
|
if (drawable != null) {
|
||||||
TextPaint textPaint = titleTextView.getTextPaint();
|
TextPaint textPaint = titleTextView.getTextPaint();
|
||||||
textPaint.getFontMetricsInt(fontMetricsInt);
|
textPaint.getFontMetricsInt(fontMetricsInt);
|
||||||
textPaint.getTextBounds((String) titleTextView.getText(), 0, 1, rect);
|
textPaint.getTextBounds((String) titleTextView.getText(), 0, 2, rect);
|
||||||
int x = titleTextView.getTextStartX() + Theme.getCurrentHolidayDrawableXOffset() + (rect.width() - (drawable.getIntrinsicWidth() + Theme.getCurrentHolidayDrawableXOffset())) / 2;
|
int x = titleTextView.getTextStartX() + Theme.getCurrentHolidayDrawableXOffset() + (rect.width() - (drawable.getIntrinsicWidth() + Theme.getCurrentHolidayDrawableXOffset())) / 2;
|
||||||
int y = titleTextView.getTextStartY() + Theme.getCurrentHolidayDrawableYOffset() + (int) Math.ceil((titleTextView.getTextHeight() - rect.height()) / 2.0f);
|
int y = titleTextView.getTextStartY() + Theme.getCurrentHolidayDrawableYOffset() + (int) Math.ceil((titleTextView.getTextHeight() - rect.height()) / 2.0f);
|
||||||
drawable.setBounds(x, y - drawable.getIntrinsicHeight(), x + drawable.getIntrinsicWidth(), y);
|
drawable.setBounds(x, y - drawable.getIntrinsicHeight(), x + drawable.getIntrinsicWidth(), y);
|
||||||
|
|
|
@ -88,6 +88,8 @@ import java.util.HashSet;
|
||||||
|
|
||||||
import androidx.annotation.UiThread;
|
import androidx.annotation.UiThread;
|
||||||
|
|
||||||
|
import tw.nekomimi.nekogram.NekoConfig;
|
||||||
|
|
||||||
public class Theme {
|
public class Theme {
|
||||||
|
|
||||||
public static class ThemeInfo implements NotificationCenter.NotificationCenterDelegate {
|
public static class ThemeInfo implements NotificationCenter.NotificationCenterDelegate {
|
||||||
|
@ -2269,7 +2271,7 @@ public class Theme {
|
||||||
int hour = calendar.get(Calendar.HOUR_OF_DAY);
|
int hour = calendar.get(Calendar.HOUR_OF_DAY);
|
||||||
|
|
||||||
int eventType = -1;
|
int eventType = -1;
|
||||||
if (monthOfYear == 11 && dayOfMonth >= 24 && dayOfMonth <= 31 || monthOfYear == 0 && dayOfMonth == 1) {
|
if (NekoConfig.xmas || (monthOfYear == 11 && dayOfMonth >= 24 && dayOfMonth <= 31 || monthOfYear == 0 && dayOfMonth == 1)) {
|
||||||
eventType = 0;
|
eventType = 0;
|
||||||
}
|
}
|
||||||
return eventType;
|
return eventType;
|
||||||
|
@ -2284,16 +2286,16 @@ public class Theme {
|
||||||
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
|
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
|
||||||
int minutes = calendar.get(Calendar.MINUTE);
|
int minutes = calendar.get(Calendar.MINUTE);
|
||||||
int hour = calendar.get(Calendar.HOUR_OF_DAY);
|
int hour = calendar.get(Calendar.HOUR_OF_DAY);
|
||||||
if (monthOfYear == 0 && dayOfMonth == 1 && minutes <= 10 && hour == 0) {
|
if (NekoConfig.newYearEve || (monthOfYear == 0 && dayOfMonth == 1 && minutes <= 10 && hour == 0)) {
|
||||||
canStartHolidayAnimation = true;
|
canStartHolidayAnimation = true;
|
||||||
} else {
|
} else {
|
||||||
canStartHolidayAnimation = false;
|
canStartHolidayAnimation = false;
|
||||||
}
|
}
|
||||||
if (dialogs_holidayDrawable == null) {
|
if (dialogs_holidayDrawable == null) {
|
||||||
if (monthOfYear == 11 && dayOfMonth >= (BuildVars.DEBUG_PRIVATE_VERSION ? 29 : 31) && dayOfMonth <= 31 || monthOfYear == 0 && dayOfMonth == 1) {
|
if (NekoConfig.newYear || (monthOfYear == 11 && dayOfMonth >= (BuildVars.DEBUG_PRIVATE_VERSION ? 29 : 31) && dayOfMonth <= 31 || monthOfYear == 0 && dayOfMonth == 1)) {
|
||||||
dialogs_holidayDrawable = ApplicationLoader.applicationContext.getResources().getDrawable(R.drawable.newyear);
|
dialogs_holidayDrawable = ApplicationLoader.applicationContext.getResources().getDrawable(R.drawable.newyear);
|
||||||
dialogs_holidayDrawableOffsetX = -AndroidUtilities.dp(3);
|
dialogs_holidayDrawableOffsetX = -AndroidUtilities.dp(3);
|
||||||
dialogs_holidayDrawableOffsetY = -AndroidUtilities.dp(1);
|
dialogs_holidayDrawableOffsetY = +AndroidUtilities.dp(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,10 @@ public class NekoConfig {
|
||||||
public static boolean showAdminActions = true;
|
public static boolean showAdminActions = true;
|
||||||
public static boolean showChangePermissions = true;
|
public static boolean showChangePermissions = true;
|
||||||
|
|
||||||
|
public static boolean xmas = false;
|
||||||
|
public static boolean newYear = false;
|
||||||
|
public static boolean newYearEve = false;
|
||||||
|
|
||||||
private static boolean configLoaded;
|
private static boolean configLoaded;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
|
@ -57,6 +61,9 @@ public class NekoConfig {
|
||||||
editor.putBoolean("showPrPr", showPrPr);
|
editor.putBoolean("showPrPr", showPrPr);
|
||||||
editor.putBoolean("showAdminActions", showAdminActions);
|
editor.putBoolean("showAdminActions", showAdminActions);
|
||||||
editor.putBoolean("showChangePermissions", showChangePermissions);
|
editor.putBoolean("showChangePermissions", showChangePermissions);
|
||||||
|
editor.putBoolean("xmas", xmas);
|
||||||
|
editor.putBoolean("newYear", newYear);
|
||||||
|
editor.putBoolean("newYearEve", newYearEve);
|
||||||
|
|
||||||
editor.commit();
|
editor.commit();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -88,6 +95,9 @@ public class NekoConfig {
|
||||||
showPrPr = preferences.getBoolean("showPrPr", true);
|
showPrPr = preferences.getBoolean("showPrPr", true);
|
||||||
showAdminActions = preferences.getBoolean("showAdminActions", true);
|
showAdminActions = preferences.getBoolean("showAdminActions", true);
|
||||||
showChangePermissions = preferences.getBoolean("showChangePermissions", true);
|
showChangePermissions = preferences.getBoolean("showChangePermissions", true);
|
||||||
|
xmas = preferences.getBoolean("xmas", false);
|
||||||
|
newYear = preferences.getBoolean("newYear", false);
|
||||||
|
newYearEve = preferences.getBoolean("newYearEve", false);
|
||||||
configLoaded = true;
|
configLoaded = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -166,7 +176,7 @@ public class NekoConfig {
|
||||||
editor.commit();
|
editor.commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void toogleTypeface() {
|
public static void toggleTypeface() {
|
||||||
typeface = typeface == 0 ? 1 : 0;
|
typeface = typeface == 0 ? 1 : 0;
|
||||||
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
||||||
SharedPreferences.Editor editor = preferences.edit();
|
SharedPreferences.Editor editor = preferences.edit();
|
||||||
|
@ -228,4 +238,28 @@ public class NekoConfig {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void toggleXmas() {
|
||||||
|
xmas = !xmas;
|
||||||
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
||||||
|
SharedPreferences.Editor editor = preferences.edit();
|
||||||
|
editor.putBoolean("xmas", xmas);
|
||||||
|
editor.commit();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void toggleNewYear() {
|
||||||
|
newYear = !newYear;
|
||||||
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
||||||
|
SharedPreferences.Editor editor = preferences.edit();
|
||||||
|
editor.putBoolean("newYear", newYear);
|
||||||
|
editor.commit();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void toggleNewYearEve() {
|
||||||
|
newYearEve = !newYearEve;
|
||||||
|
SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("nekoconfig", Activity.MODE_PRIVATE);
|
||||||
|
SharedPreferences.Editor editor = preferences.edit();
|
||||||
|
editor.putBoolean("newYearEve", newYearEve);
|
||||||
|
editor.commit();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,6 +76,9 @@ public class NekoSettingsActivity extends BaseFragment {
|
||||||
private int navigationBarTintRow;
|
private int navigationBarTintRow;
|
||||||
private int navigationBarColorRow;
|
private int navigationBarColorRow;
|
||||||
private int forceTabletRow;
|
private int forceTabletRow;
|
||||||
|
private int xmasRow;
|
||||||
|
private int newYearRow;
|
||||||
|
private int newYearEveRow;
|
||||||
private int settings2Row;
|
private int settings2Row;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -221,7 +224,7 @@ public class NekoSettingsActivity extends BaseFragment {
|
||||||
((TextCheckCell) view).setChecked(SharedConfig.useSystemEmoji);
|
((TextCheckCell) view).setChecked(SharedConfig.useSystemEmoji);
|
||||||
}
|
}
|
||||||
} else if (position == typefaceRow) {
|
} else if (position == typefaceRow) {
|
||||||
NekoConfig.toogleTypeface();
|
NekoConfig.toggleTypeface();
|
||||||
if (view instanceof TextCheckCell) {
|
if (view instanceof TextCheckCell) {
|
||||||
((TextCheckCell) view).setChecked(NekoConfig.typeface == 1);
|
((TextCheckCell) view).setChecked(NekoConfig.typeface == 1);
|
||||||
}
|
}
|
||||||
|
@ -250,6 +253,21 @@ public class NekoSettingsActivity extends BaseFragment {
|
||||||
listAdapter.notifyItemChanged(nameOrderRow);
|
listAdapter.notifyItemChanged(nameOrderRow);
|
||||||
});
|
});
|
||||||
showDialog(builder.create());
|
showDialog(builder.create());
|
||||||
|
} else if (position == xmasRow) {
|
||||||
|
NekoConfig.toggleXmas();
|
||||||
|
if (view instanceof TextCheckCell) {
|
||||||
|
((TextCheckCell) view).setChecked(NekoConfig.xmas);
|
||||||
|
}
|
||||||
|
} else if (position == newYearRow) {
|
||||||
|
NekoConfig.toggleNewYear();
|
||||||
|
if (view instanceof TextCheckCell) {
|
||||||
|
((TextCheckCell) view).setChecked(NekoConfig.newYear);
|
||||||
|
}
|
||||||
|
} else if (position == newYearEveRow) {
|
||||||
|
NekoConfig.toggleNewYearEve();
|
||||||
|
if (view instanceof TextCheckCell) {
|
||||||
|
((TextCheckCell) view).setChecked(NekoConfig.newYearEve);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -290,6 +308,9 @@ public class NekoSettingsActivity extends BaseFragment {
|
||||||
navigationBarColorRow = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O ? rowCount++ : -1;
|
navigationBarColorRow = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O ? rowCount++ : -1;
|
||||||
forceTabletRow = rowCount++;
|
forceTabletRow = rowCount++;
|
||||||
nameOrderRow = rowCount++;
|
nameOrderRow = rowCount++;
|
||||||
|
xmasRow = rowCount++;
|
||||||
|
newYearRow = rowCount++;
|
||||||
|
newYearEveRow = rowCount++;
|
||||||
settings2Row = rowCount++;
|
settings2Row = rowCount++;
|
||||||
if (notify && listAdapter != null) {
|
if (notify && listAdapter != null) {
|
||||||
listAdapter.notifyDataSetChanged();
|
listAdapter.notifyDataSetChanged();
|
||||||
|
@ -368,7 +389,7 @@ public class NekoSettingsActivity extends BaseFragment {
|
||||||
value = LocaleController.getString("FirstLast", R.string.FirstLast);
|
value = LocaleController.getString("FirstLast", R.string.FirstLast);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
textCell.setTextAndValue(LocaleController.getString("NameOrder", R.string.NameOrder), value, false);
|
textCell.setTextAndValue(LocaleController.getString("NameOrder", R.string.NameOrder), value, true);
|
||||||
} else if (position == navigationBarColorRow) {
|
} else if (position == navigationBarColorRow) {
|
||||||
String value;
|
String value;
|
||||||
switch (NekoConfig.navigationBarColor) {
|
switch (NekoConfig.navigationBarColor) {
|
||||||
|
@ -430,6 +451,12 @@ public class NekoSettingsActivity extends BaseFragment {
|
||||||
textCell.setTextAndCheck(LocaleController.getString("IgnoreBlocked", R.string.IgnoreBlocked), NekoConfig.ignoreBlocked, true);
|
textCell.setTextAndCheck(LocaleController.getString("IgnoreBlocked", R.string.IgnoreBlocked), NekoConfig.ignoreBlocked, true);
|
||||||
} else if (position == forceTabletRow) {
|
} else if (position == forceTabletRow) {
|
||||||
textCell.setTextAndCheck(LocaleController.getString("ForceTabletMode", R.string.ForceTabletMode), NekoConfig.forceTablet, true);
|
textCell.setTextAndCheck(LocaleController.getString("ForceTabletMode", R.string.ForceTabletMode), NekoConfig.forceTablet, true);
|
||||||
|
} else if (position == xmasRow) {
|
||||||
|
textCell.setTextAndCheck(LocaleController.getString("ChristmasEveryday", R.string.ChristmasEveryday), NekoConfig.xmas, true);
|
||||||
|
} else if (position == newYearRow) {
|
||||||
|
textCell.setTextAndCheck(LocaleController.getString("NewYearEveryday", R.string.NewYearEveryday), NekoConfig.newYear, true);
|
||||||
|
} else if (position == newYearEveRow) {
|
||||||
|
textCell.setTextAndCheck(LocaleController.getString("HappyNewYearEveryday", R.string.HappyNewYearEveryday), NekoConfig.newYearEve, false);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -457,6 +484,7 @@ public class NekoSettingsActivity extends BaseFragment {
|
||||||
position == showChangePermissionsRow || position == showAdminActionsRow || position == showReportRow ||
|
position == showChangePermissionsRow || position == showAdminActionsRow || position == showReportRow ||
|
||||||
position == showPrPrRow || position == showAddToSavedMessagesRow ||
|
position == showPrPrRow || position == showAddToSavedMessagesRow ||
|
||||||
position == nameOrderRow || position == forceTabletRow || position == mapPreviewRow ||
|
position == nameOrderRow || position == forceTabletRow || position == mapPreviewRow ||
|
||||||
|
position == xmasRow || position == newYearRow || position == newYearEveRow ||
|
||||||
(position == transparentStatusBarRow && (NekoConfig.navigationBarTint || Build.VERSION.SDK_INT < Build.VERSION_CODES.O)) ||
|
(position == transparentStatusBarRow && (NekoConfig.navigationBarTint || Build.VERSION.SDK_INT < Build.VERSION_CODES.O)) ||
|
||||||
(position == navigationBarColorRow && NekoConfig.navigationBarTint);
|
(position == navigationBarColorRow && NekoConfig.navigationBarTint);
|
||||||
}
|
}
|
||||||
|
@ -504,7 +532,7 @@ public class NekoSettingsActivity extends BaseFragment {
|
||||||
position == showAdminActionsRow || position == showChangePermissionsRow ||
|
position == showAdminActionsRow || position == showChangePermissionsRow ||
|
||||||
position == transparentStatusBarRow || position == navigationBarTintRow ||
|
position == transparentStatusBarRow || position == navigationBarTintRow ||
|
||||||
position == ignoreBlockedRow || position == useSystemEmojiRow || position == typefaceRow ||
|
position == ignoreBlockedRow || position == useSystemEmojiRow || position == typefaceRow ||
|
||||||
position == forceTabletRow) {
|
position == forceTabletRow || position == xmasRow || position == newYearRow || position == newYearEveRow) {
|
||||||
return 3;
|
return 3;
|
||||||
} else if (position == settingsRow || position == connectionRow || position == messageMenuRow || position == chatRow) {
|
} else if (position == settingsRow || position == connectionRow || position == messageMenuRow || position == chatRow) {
|
||||||
return 4;
|
return 4;
|
||||||
|
|
Before Width: | Height: | Size: 519 B After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 341 B After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 619 B After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 881 B After Width: | Height: | Size: 3.4 KiB |
|
@ -40,4 +40,7 @@
|
||||||
<string name="EnableResidentNotification">常駐通知を表示する</string>
|
<string name="EnableResidentNotification">常駐通知を表示する</string>
|
||||||
<string name="DisableResidentNotification">常駐通知を無効にする</string>
|
<string name="DisableResidentNotification">常駐通知を無効にする</string>
|
||||||
<string name="NekogramRunning">Nekogram ランニング</string>
|
<string name="NekogramRunning">Nekogram ランニング</string>
|
||||||
|
<string name="ChristmasEveryday">毎日がXmas</string>
|
||||||
|
<string name="NewYearEveryday">毎日が新年</string>
|
||||||
|
<string name="HappyNewYearEveryday">毎日がHappy New Year</string>
|
||||||
</resources>
|
</resources>
|
|
@ -40,4 +40,7 @@
|
||||||
<string name="EnableResidentNotification">请让猫咪住在通知栏里吧</string>
|
<string name="EnableResidentNotification">请让猫咪住在通知栏里吧</string>
|
||||||
<string name="DisableResidentNotification">果然通知栏还是太挤了</string>
|
<string name="DisableResidentNotification">果然通知栏还是太挤了</string>
|
||||||
<string name="NekogramRunning">Nekogram 正在运行</string>
|
<string name="NekogramRunning">Nekogram 正在运行</string>
|
||||||
|
<string name="ChristmasEveryday">天天是圣诞(需要重启)</string>
|
||||||
|
<string name="NewYearEveryday">天天是新年(需要重启)</string>
|
||||||
|
<string name="HappyNewYearEveryday">天天跨年(需要重启)</string>
|
||||||
</resources>
|
</resources>
|
|
@ -40,4 +40,7 @@
|
||||||
<string name="EnableResidentNotification">請讓貓咪住在通知欄裡吧</string>
|
<string name="EnableResidentNotification">請讓貓咪住在通知欄裡吧</string>
|
||||||
<string name="DisableResidentNotification">果然通知欄還是太擠了</string>
|
<string name="DisableResidentNotification">果然通知欄還是太擠了</string>
|
||||||
<string name="NekogramRunning">Nekogram 正在運行</string>
|
<string name="NekogramRunning">Nekogram 正在運行</string>
|
||||||
|
<string name="ChristmasEveryday">天天是聖誕(需要重啟)</string>
|
||||||
|
<string name="NewYearEveryday">天天是新年(需要重啟)</string>
|
||||||
|
<string name="HappyNewYearEveryday">天天跨年(需要重啟)</string>
|
||||||
</resources>
|
</resources>
|
|
@ -18,7 +18,7 @@
|
||||||
<string name="TypefaceUseDefault">Use system default font</string>
|
<string name="TypefaceUseDefault">Use system default font</string>
|
||||||
<string name="NoQuoteForward">NoQuote forward</string>
|
<string name="NoQuoteForward">NoQuote forward</string>
|
||||||
<string name="Repeat">Repeat</string>
|
<string name="Repeat">Repeat</string>
|
||||||
<string name="AddToSavedMessages">Add to Saved Messages</string>
|
<string name="AddToSavedMessages">Save Message</string>
|
||||||
<string name="CreateMention">Create Mention</string>
|
<string name="CreateMention">Create Mention</string>
|
||||||
<string name="ForceTabletMode">Force tablet mode</string>
|
<string name="ForceTabletMode">Force tablet mode</string>
|
||||||
<string name="All">All</string>
|
<string name="All">All</string>
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
<string name="EnableNya">Send message with suffix on long click</string>
|
<string name="EnableNya">Send message with suffix on long click</string>
|
||||||
<string name="NyaSuffix">Message suffix</string>
|
<string name="NyaSuffix">Message suffix</string>
|
||||||
<string name="NyaSuffixHint">Suffix</string>
|
<string name="NyaSuffixHint">Suffix</string>
|
||||||
<string name="Prpr">prpr</string>
|
<string name="Prpr">Peropero</string>
|
||||||
<string name="TransparentStatusBar">Transparent status bar</string>
|
<string name="TransparentStatusBar">Transparent status bar</string>
|
||||||
<string name="NavigationBarTint">Set navigation bar and status bar color</string>
|
<string name="NavigationBarTint">Set navigation bar and status bar color</string>
|
||||||
<string name="NavigationBarColor">Navigation bar color</string>
|
<string name="NavigationBarColor">Navigation bar color</string>
|
||||||
|
@ -40,4 +40,7 @@
|
||||||
<string name="EnableResidentNotification">Show a resident notification</string>
|
<string name="EnableResidentNotification">Show a resident notification</string>
|
||||||
<string name="DisableResidentNotification">Disable resident notification</string>
|
<string name="DisableResidentNotification">Disable resident notification</string>
|
||||||
<string name="NekogramRunning">Nekogram is running</string>
|
<string name="NekogramRunning">Nekogram is running</string>
|
||||||
|
<string name="ChristmasEveryday">Christmas holiday everyday</string>
|
||||||
|
<string name="NewYearEveryday">New year\'s day everyday</string>
|
||||||
|
<string name="HappyNewYearEveryday">Happy new year everyday</string>
|
||||||
</resources>
|
</resources>
|