Compare commits
111 Commits
1.1.4+fork
...
feature/pr
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
26297fbb5b | ||
|
|
cd342d1034 | ||
|
|
029650ef2d | ||
|
|
ac24f636df | ||
|
|
1688168bc1 | ||
|
|
46b842afc4 | ||
|
|
3f773a52cc | ||
|
|
48664bb580 | ||
|
|
094cd67728 | ||
|
|
9d800106cc | ||
|
|
68bb23e3b4 | ||
|
|
68397bd487 | ||
|
|
3104ddb4b6 | ||
|
|
9bddd6b274 | ||
|
|
677621f2da | ||
|
|
d40138dd99 | ||
|
|
d957e8f2fc | ||
|
|
681c327306 | ||
|
|
80c9afec7b | ||
|
|
eea8041abe | ||
|
|
1309bfe1ee | ||
|
|
70d3ef9984 | ||
|
|
52ac5f16e5 | ||
|
|
ea43070e6d | ||
|
|
14cd23c28b | ||
|
|
793668021e | ||
|
|
f0ea6ef43e | ||
|
|
2b2e4845a1 | ||
|
|
2dccec99cc | ||
|
|
b060894a6c | ||
|
|
92872edb58 | ||
|
|
c5fcf49eda | ||
|
|
d66a4c0920 | ||
|
|
e8a31cf867 | ||
|
|
c1f9a88ef4 | ||
|
|
e6200e186b | ||
|
|
5564502125 | ||
|
|
7947e7689c | ||
|
|
b53ada7ea2 | ||
|
|
584f28534a | ||
|
|
770fde7aac | ||
|
|
3d7f918132 | ||
|
|
29b8cedc7c | ||
|
|
33b65c3bf3 | ||
|
|
34ab1bcd9c | ||
|
|
cfdc88174b | ||
|
|
15123d8924 | ||
|
|
20086d76ce | ||
|
|
1ca4fb5c37 | ||
|
|
009016a835 | ||
|
|
33dfb2a30d | ||
|
|
1604c067fd | ||
|
|
0c7419e2b3 | ||
|
|
7cf30ccb98 | ||
|
|
aa2c8c5624 | ||
|
|
875695c239 | ||
|
|
61049a1302 | ||
|
|
28db90aa82 | ||
|
|
f0e7fc5e3b | ||
|
|
2169afa8e7 | ||
|
|
508ec06d93 | ||
|
|
9fb39d9403 | ||
|
|
4879d74f80 | ||
|
|
ba3f6c4f95 | ||
|
|
481241c4f6 | ||
|
|
5798587dc6 | ||
|
|
066e3e08a2 | ||
|
|
16d6c14633 | ||
|
|
80a4a3551c | ||
|
|
74f3bb8708 | ||
|
|
c3e398b3c2 | ||
|
|
dcfa812c83 | ||
|
|
065e65d708 | ||
|
|
bca0dab381 | ||
|
|
4a45c1055e | ||
|
|
7c789746ce | ||
|
|
f46ce5576c | ||
|
|
730e6fc1fa | ||
|
|
cb36cc042c | ||
|
|
5d586418f9 | ||
|
|
44f1d026d6 | ||
|
|
defaa1095c | ||
|
|
c67f2f8027 | ||
|
|
452128565f | ||
|
|
6322d3c984 | ||
|
|
d68c820e58 | ||
|
|
79f37b4813 | ||
|
|
87460a2fb6 | ||
|
|
6774a642d9 | ||
|
|
f0bd9233b7 | ||
|
|
66efe750a8 | ||
|
|
3658fc423b | ||
|
|
3c3ad7447e | ||
|
|
b570064b99 | ||
|
|
d9f6ef69fe | ||
|
|
bdac1d5bb4 | ||
|
|
1eee1ead5e | ||
|
|
0ec51f5b34 | ||
|
|
6c6fb05a7a | ||
|
|
09a0faacba | ||
|
|
d0d1d15de5 | ||
|
|
e4e9516d5d | ||
|
|
05eceecbea | ||
|
|
71ba1bb0d5 | ||
|
|
2160a26648 | ||
|
|
5433eac9c9 | ||
|
|
0a68f86200 | ||
|
|
c91dae0346 | ||
|
|
e1df7e5077 | ||
|
|
0560b54559 | ||
|
|
c78db7e835 |
@@ -5,7 +5,7 @@
|
||||
> A fork of [megalodon](https://github.com/sk22/megalodon) which is a fork of [official Mastodon Android app](https://github.com/mastodon/mastodon-android) adding important features that are missing in the official app and possibly won’t ever be implemented, such as the federated timeline, unlisted posting, bookmarks and an image description viewer.
|
||||
|
||||
|
||||
[](https://github.com/LucasGGamerM/moshidon/releases/latest/download/moshidon.apk)
|
||||
[](https://github.com/LucasGGamerM/moshidon/releases/latest/download/moshidon.apk)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
title: Megalodon
|
||||
title: Moshidon
|
||||
layout: default
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Megalodon</title>
|
||||
<title>Moshidon</title>
|
||||
<link rel="icon" href="mastodon/src/main/res/mipmap-mdpi/ic_launcher_round.png">
|
||||
<link rel="me" href="https://floss.social/@mastodon">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/5.1.0/github-markdown.min.css">
|
||||
@@ -14,4 +14,4 @@
|
||||
{{ content }}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
||||
@@ -9,8 +9,8 @@ android {
|
||||
applicationId "org.joinmastodon.android.moshinda"
|
||||
minSdk 23
|
||||
targetSdk 33
|
||||
versionCode 70
|
||||
versionName "1.1.4+fork.70.moshinda"
|
||||
versionCode 78
|
||||
versionName "1.1.4+fork.78.moshinda"
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
resConfigs "ar-rSA", "be-rBY", "bn-rBD", "bs-rBA", "ca-rES", "cs-rCZ", "de-rDE", "el-rGR", "es-rES", "eu-rES", "fi-rFI", "fil-rPH", "fr-rFR", "ga-rIE", "gd-rGB", "gl-rES", "hi-rIN", "hr-rHR", "hu-rHU", "hy-rAM", "in-rID", "is-rIS", "it-rIT", "iw-rIL", "ja-rJP", "kab", "ko-rKR", "nl-rNL", "oc-rFR", "pl-rPL", "pt-rBR", "pt-rPT", "ro-rRO", "ru-rRU", "si-rLK", "sl-rSI", "sv-rSE", "th-rTH", "tr-rTR", "uk-rUA", "vi-rVN", "zh-rCN", "zh-rTW"
|
||||
}
|
||||
|
||||
@@ -61,6 +61,7 @@ public class GithubSelfUpdaterImpl extends GithubSelfUpdater{
|
||||
info=new UpdateInfo();
|
||||
info.version=prefs.getString("version", null);
|
||||
info.size=prefs.getLong("apkSize", 0);
|
||||
info.changelog=prefs.getString("changelog", null);
|
||||
downloadID=prefs.getLong("downloadID", 0);
|
||||
if(downloadID==0 || !getUpdateApkFile().exists()){
|
||||
state=UpdateState.UPDATE_AVAILABLE;
|
||||
@@ -84,6 +85,7 @@ public class GithubSelfUpdaterImpl extends GithubSelfUpdater{
|
||||
.remove("apkURL")
|
||||
.remove("checkedByBuild")
|
||||
.remove("downloadID")
|
||||
.remove("changelog")
|
||||
.apply();
|
||||
}
|
||||
}
|
||||
@@ -116,6 +118,7 @@ public class GithubSelfUpdaterImpl extends GithubSelfUpdater{
|
||||
Call call=MastodonAPIController.getHttpClient().newCall(req);
|
||||
try(Response resp=call.execute()){
|
||||
JsonObject obj=JsonParser.parseReader(resp.body().charStream()).getAsJsonObject();
|
||||
String changelog=obj.get("body").getAsString();
|
||||
String tag=obj.get("tag_name").getAsString();
|
||||
Pattern pattern=Pattern.compile("v?(\\d+)\\.(\\d+)\\.(\\d+)\\+fork\\.(\\d+)");
|
||||
Matcher matcher=pattern.matcher(tag);
|
||||
@@ -151,6 +154,7 @@ public class GithubSelfUpdaterImpl extends GithubSelfUpdater{
|
||||
UpdateInfo info=new UpdateInfo();
|
||||
info.size=size;
|
||||
info.version=version;
|
||||
info.changelog=changelog;
|
||||
this.info=info;
|
||||
|
||||
getPrefs().edit()
|
||||
@@ -158,6 +162,7 @@ public class GithubSelfUpdaterImpl extends GithubSelfUpdater{
|
||||
.putString("version", version)
|
||||
.putString("apkURL", url)
|
||||
.putInt("checkedByBuild", BuildConfig.VERSION_CODE)
|
||||
.putString("changelog", changelog)
|
||||
.remove("downloadID")
|
||||
.apply();
|
||||
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="28"/>
|
||||
<uses-permission android:name="android.permission.VIBRATE" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="28"/>
|
||||
<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE"/>
|
||||
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
|
||||
@@ -19,7 +20,7 @@
|
||||
android:localeConfig="@xml/locales_config"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:theme="@style/Theme.Mastodon.AutoLightDark.Original"
|
||||
android:theme="@style/Theme.Mastodon.AutoLightDark"
|
||||
android:largeHeap="true">
|
||||
|
||||
<activity android:name=".MainActivity" android:exported="true" android:configChanges="orientation|screenSize" android:windowSoftInputMode="adjustResize" android:launchMode="singleTask">
|
||||
|
||||
@@ -52,7 +52,8 @@ public class ExternalShareActivity extends FragmentStackActivity{
|
||||
|
||||
Intent intent=getIntent();
|
||||
StringBuilder builder=new StringBuilder();
|
||||
if (intent.hasExtra(Intent.EXTRA_SUBJECT)) builder.append(intent.getStringExtra(Intent.EXTRA_SUBJECT)).append("\n");
|
||||
String subject = "";
|
||||
if (intent.hasExtra(Intent.EXTRA_SUBJECT)) builder.append(subject = intent.getStringExtra(Intent.EXTRA_SUBJECT)).append("\n\n");
|
||||
if (intent.hasExtra(Intent.EXTRA_TEXT)) builder.append(intent.getStringExtra(Intent.EXTRA_TEXT)).append("\n");
|
||||
String text=builder.toString();
|
||||
List<Uri> mediaUris;
|
||||
@@ -80,6 +81,8 @@ public class ExternalShareActivity extends FragmentStackActivity{
|
||||
args.putString("account", accountID);
|
||||
if(!TextUtils.isEmpty(text))
|
||||
args.putString("prefilledText", text);
|
||||
if(!subject.isBlank())
|
||||
args.putInt("selectionEnd", subject.length());
|
||||
if(mediaUris!=null && !mediaUris.isEmpty())
|
||||
args.putParcelableArrayList("mediaAttachments", toArrayList(mediaUris));
|
||||
Fragment fragment=new ComposeFragment();
|
||||
|
||||
@@ -25,13 +25,15 @@ public class GlobalUserPreferences{
|
||||
public static boolean showInteractionCounts;
|
||||
public static boolean alwaysExpandContentWarnings;
|
||||
public static boolean disableMarquee;
|
||||
public static boolean disableSwipe;
|
||||
public static boolean disableDividers;
|
||||
public static boolean voteButtonForSingleChoice;
|
||||
public static boolean showDifferentiatedPushNoticationIcons;
|
||||
public static ThemePreference theme;
|
||||
public static ColorPreference color;
|
||||
|
||||
private final static Type recentLanguagesType = new TypeToken<Map<String, List<String>>>() {}.getType();
|
||||
public static Map<String, List<String>> recentLanguages;
|
||||
public static Map<String, String> defaultLanguages;
|
||||
|
||||
private static SharedPreferences getPrefs(){
|
||||
return MastodonApp.context.getSharedPreferences("global", Context.MODE_PRIVATE);
|
||||
@@ -50,19 +52,27 @@ public class GlobalUserPreferences{
|
||||
showReplies=prefs.getBoolean("showReplies", true);
|
||||
showBoosts=prefs.getBoolean("showBoosts", true);
|
||||
loadNewPosts=prefs.getBoolean("loadNewPosts", true);
|
||||
showDifferentiatedPushNoticationIcons=prefs.getBoolean("showDifferentiatedPushNoticationIcons", false);
|
||||
showFederatedTimeline=prefs.getBoolean("showFederatedTimeline", !BuildConfig.BUILD_TYPE.equals("playRelease"));
|
||||
showInteractionCounts=prefs.getBoolean("showInteractionCounts", false);
|
||||
alwaysExpandContentWarnings=prefs.getBoolean("alwaysExpandContentWarnings", false);
|
||||
disableMarquee=prefs.getBoolean("disableMarquee", false);
|
||||
disableSwipe=prefs.getBoolean("disableSwipe", false);
|
||||
disableDividers=prefs.getBoolean("disableDividers", true);
|
||||
voteButtonForSingleChoice=prefs.getBoolean("voteButtonForSingleChoice", true);
|
||||
theme=ThemePreference.values()[prefs.getInt("theme", 0)];
|
||||
recentLanguages=fromJson(prefs.getString("recentLanguages", "{}"), recentLanguagesType, new HashMap<>());
|
||||
if(android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.S){
|
||||
color=ColorPreference.values()[prefs.getInt("color", 0)];
|
||||
}else{
|
||||
color=ColorPreference.values()[prefs.getInt("color", 1)];
|
||||
}
|
||||
|
||||
try {
|
||||
if(android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.S){
|
||||
color=ColorPreference.valueOf(prefs.getString("color", ColorPreference.MATERIAL3.name()));
|
||||
}else{
|
||||
color=ColorPreference.valueOf(prefs.getString("color", ColorPreference.PURPLE.name()));
|
||||
}
|
||||
} catch (IllegalArgumentException|ClassCastException ignored) {
|
||||
// invalid color name or color was previously saved as integer
|
||||
color=ColorPreference.PURPLE;
|
||||
}
|
||||
}
|
||||
|
||||
public static void save(){
|
||||
@@ -77,21 +87,25 @@ public class GlobalUserPreferences{
|
||||
.putBoolean("showInteractionCounts", showInteractionCounts)
|
||||
.putBoolean("alwaysExpandContentWarnings", alwaysExpandContentWarnings)
|
||||
.putBoolean("disableMarquee", disableMarquee)
|
||||
.putBoolean("disableSwipe", disableSwipe)
|
||||
.putBoolean("disableDividers", disableDividers)
|
||||
.putBoolean("showDifferentiatedPushNoticationIcons", showDifferentiatedPushNoticationIcons)
|
||||
.putInt("theme", theme.ordinal())
|
||||
.putString("color", color.name())
|
||||
.putString("recentLanguages", gson.toJson(recentLanguages))
|
||||
.putInt("color", color.ordinal())
|
||||
.apply();
|
||||
}
|
||||
|
||||
public enum ColorPreference{
|
||||
MATERIAL3,
|
||||
PURPLE,
|
||||
PINK,
|
||||
PURPLE,
|
||||
GREEN,
|
||||
BLUE,
|
||||
ORANGE,
|
||||
BROWN,
|
||||
RED,
|
||||
YELLOW,
|
||||
RED
|
||||
NORD
|
||||
}
|
||||
|
||||
public enum ThemePreference{
|
||||
@@ -100,3 +114,4 @@ public class GlobalUserPreferences{
|
||||
DARK
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -137,13 +137,25 @@ public class PushNotificationReceiver extends BroadcastReceiver{
|
||||
builder.setContentTitle(pn.title)
|
||||
.setContentText(pn.body)
|
||||
.setStyle(new Notification.BigTextStyle().bigText(pn.body))
|
||||
.setSmallIcon(R.drawable.ic_ntf_logo)
|
||||
.setContentIntent(PendingIntent.getActivity(context, accountID.hashCode() & 0xFFFF, contentIntent, PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT))
|
||||
.setWhen(notification==null ? System.currentTimeMillis() : notification.createdAt.toEpochMilli())
|
||||
.setShowWhen(true)
|
||||
.setCategory(Notification.CATEGORY_SOCIAL)
|
||||
.setAutoCancel(true)
|
||||
.setColor(context.getColor(R.color.shortcut_icon_background));
|
||||
if(GlobalUserPreferences.showDifferentiatedPushNoticationIcons){
|
||||
switch (pn.notificationType) {
|
||||
case FAVORITE -> builder.setSmallIcon(R.drawable.ic_fluent_star_24_filled);
|
||||
case REBLOG -> builder.setSmallIcon(R.drawable.ic_fluent_arrow_repeat_all_24_filled);
|
||||
case FOLLOW -> builder.setSmallIcon(R.drawable.ic_fluent_person_add_24_filled);
|
||||
case MENTION -> builder.setSmallIcon(R.drawable.ic_fluent_mention_24_filled);
|
||||
case POLL -> builder.setSmallIcon(R.drawable.ic_fluent_poll_24_filled);
|
||||
default -> builder.setSmallIcon(R.drawable.ic_ntf_logo);
|
||||
}
|
||||
}else{
|
||||
builder.setSmallIcon(R.drawable.ic_ntf_logo);
|
||||
}
|
||||
|
||||
if(avatar!=null){
|
||||
builder.setLargeIcon(UiUtils.getBitmapFromDrawable(avatar));
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import androidx.annotation.CallSuper;
|
||||
import androidx.annotation.StringRes;
|
||||
@@ -101,9 +102,14 @@ public abstract class MastodonAPIRequest<T> extends APIRequest<T>{
|
||||
}
|
||||
|
||||
public MastodonAPIRequest<T> wrapProgress(Activity activity, @StringRes int message, boolean cancelable){
|
||||
return wrapProgress(activity, message, cancelable, null);
|
||||
}
|
||||
|
||||
public MastodonAPIRequest<T> wrapProgress(Activity activity, @StringRes int message, boolean cancelable, Consumer<ProgressDialog> transform){
|
||||
progressDialog=new ProgressDialog(activity);
|
||||
progressDialog.setMessage(activity.getString(message));
|
||||
progressDialog.setCancelable(cancelable);
|
||||
if (transform != null) transform.accept(progressDialog);
|
||||
if(cancelable){
|
||||
progressDialog.setOnCancelListener(dialog->cancel());
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package org.joinmastodon.android.api.requests.accounts;
|
||||
|
||||
import org.joinmastodon.android.api.MastodonAPIRequest;
|
||||
import org.joinmastodon.android.model.Relationship;
|
||||
|
||||
public class SetPrivateNote extends MastodonAPIRequest<Relationship>{
|
||||
public SetPrivateNote(String id, String comment){
|
||||
super(MastodonAPIRequest.HttpMethod.POST, "/accounts/"+id+"/note", Relationship.class);
|
||||
Request req = new Request(comment);
|
||||
setRequestBody(req);
|
||||
}
|
||||
|
||||
private static class Request{
|
||||
public String comment;
|
||||
public Request(String comment){
|
||||
this.comment=comment;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package org.joinmastodon.android.api.requests.tags;
|
||||
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
|
||||
import org.joinmastodon.android.api.MastodonAPIRequest;
|
||||
import org.joinmastodon.android.api.requests.HeaderPaginationRequest;
|
||||
import org.joinmastodon.android.model.Hashtag;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class GetFollowedHashtags extends HeaderPaginationRequest<Hashtag> {
|
||||
public GetFollowedHashtags(String maxID, String minID, int limit, String sinceID){
|
||||
super(HttpMethod.GET, "/followed_tags", new TypeToken<>(){});
|
||||
if(maxID!=null)
|
||||
addQueryParameter("max_id", maxID);
|
||||
if(minID!=null)
|
||||
addQueryParameter("min_id", minID);
|
||||
if(sinceID!=null)
|
||||
addQueryParameter("since_id", sinceID);
|
||||
if(limit>0)
|
||||
addQueryParameter("limit", ""+limit);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -675,7 +675,7 @@ public abstract class BaseStatusListFragment<T extends DisplayItemsParent> exten
|
||||
private int currentMediaHiddenLayoutsWidth=0;
|
||||
|
||||
{
|
||||
dividerPaint.setColor(UiUtils.getThemeColor(getActivity(), R.attr.colorPollVoted));
|
||||
dividerPaint.setColor(UiUtils.getThemeColor(getActivity(), GlobalUserPreferences.disableDividers ? R.attr.colorWindowBackground : R.attr.colorPollVoted));
|
||||
dividerPaint.setStyle(Paint.Style.STROKE);
|
||||
dividerPaint.setStrokeWidth(V.dp(1));
|
||||
}
|
||||
@@ -787,7 +787,7 @@ public abstract class BaseStatusListFragment<T extends DisplayItemsParent> exten
|
||||
currentMediaHiddenLayoutsWidth=width;
|
||||
String title=getString(R.string.sensitive_content);
|
||||
TextPaint titlePaint=new TextPaint(Paint.ANTI_ALIAS_FLAG);
|
||||
titlePaint.setColor(getResources().getColor(R.color.gray_50));
|
||||
titlePaint.setColor(UiUtils.getThemeColor(getContext(), R.attr.colorGray50));
|
||||
titlePaint.setTextSize(V.dp(22));
|
||||
titlePaint.setTypeface(mediumTypeface);
|
||||
mediaHiddenTitleLayout=StaticLayout.Builder.obtain(title, 0, title.length(), titlePaint, width)
|
||||
@@ -798,7 +798,7 @@ public abstract class BaseStatusListFragment<T extends DisplayItemsParent> exten
|
||||
.setAlignment(Layout.Alignment.ALIGN_CENTER)
|
||||
.build();
|
||||
TextPaint textPaint=new TextPaint(Paint.ANTI_ALIAS_FLAG);
|
||||
textPaint.setColor(getResources().getColor(R.color.gray_200));
|
||||
textPaint.setColor(UiUtils.getThemeColor(getContext(), R.attr.colorGray200));
|
||||
textPaint.setTextSize(V.dp(16));
|
||||
String text=getString(R.string.sensitive_content_explain);
|
||||
mediaHiddenTextLayout=StaticLayout.Builder.obtain(text, 0, text.length(), textPaint, width)
|
||||
|
||||
@@ -203,10 +203,14 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
||||
private String language;
|
||||
private MastodonLanguage.LanguageResolver languageResolver;
|
||||
|
||||
private int navigationBarColorBefore;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState){
|
||||
super.onCreate(savedInstanceState);
|
||||
setRetainInstance(true);
|
||||
navigationBarColorBefore = getActivity().getWindow().getNavigationBarColor();
|
||||
getActivity().getWindow().setNavigationBarColor(UiUtils.getThemeColor(getActivity(), R.attr.colorBackgroundLightest));
|
||||
|
||||
accountID=getArguments().getString("account");
|
||||
AccountSession session=AccountSessionManager.getInstance().getAccount(accountID);
|
||||
@@ -233,6 +237,8 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
||||
charLimit=instance.configuration.statuses.maxCharacters;
|
||||
else
|
||||
charLimit=500;
|
||||
|
||||
if (editingStatus == null) loadDefaultStatusVisibility(savedInstanceState);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -246,6 +252,7 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
||||
UiUtils.removeCallbacks(updateUploadEtaRunnable);
|
||||
updateUploadEtaRunnable=null;
|
||||
}
|
||||
getActivity().getWindow().setNavigationBarColor(navigationBarColorBefore);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -392,6 +399,12 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
||||
|
||||
loadDefaultStatusVisibility(savedInstanceState);
|
||||
updateVisibilityIcon();
|
||||
visibilityPopup.getMenu().findItem(switch(statusVisibility){
|
||||
case PUBLIC -> R.id.vis_public;
|
||||
case UNLISTED -> R.id.vis_unlisted;
|
||||
case PRIVATE -> R.id.vis_followers;
|
||||
case DIRECT -> R.id.vis_private;
|
||||
}).setChecked(true);
|
||||
|
||||
autocompleteViewController=new ComposeAutocompleteViewController(getActivity(), accountID);
|
||||
autocompleteViewController.setCompletionSelectedListener(this::onAutocompleteOptionSelected);
|
||||
@@ -595,6 +608,11 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
||||
ignoreSelectionChanges=false;
|
||||
initialText=prefilledText;
|
||||
}
|
||||
if (getArguments().containsKey("selectionStart") || getArguments().containsKey("selectionEnd")) {
|
||||
int selectionStart=getArguments().getInt("selectionStart", 0);
|
||||
int selectionEnd=getArguments().getInt("selectionEnd", selectionStart);
|
||||
mainEditText.setSelection(selectionStart, selectionEnd);
|
||||
}
|
||||
ArrayList<Uri> mediaUris=getArguments().getParcelableArrayList("mediaAttachments");
|
||||
if(mediaUris!=null && !mediaUris.isEmpty()){
|
||||
for(Uri uri:mediaUris){
|
||||
@@ -1405,12 +1423,6 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
||||
Menu m=visibilityPopup.getMenu();
|
||||
UiUtils.enablePopupMenuIcons(getActivity(), visibilityPopup);
|
||||
m.setGroupCheckable(0, true, true);
|
||||
m.findItem(switch(statusVisibility){
|
||||
case PUBLIC -> R.id.vis_public;
|
||||
case UNLISTED -> R.id.vis_unlisted;
|
||||
case PRIVATE -> R.id.vis_followers;
|
||||
case DIRECT -> R.id.vis_private;
|
||||
}).setChecked(true);
|
||||
visibilityPopup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener(){
|
||||
@Override
|
||||
public boolean onMenuItemClick(MenuItem item){
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
package org.joinmastodon.android.fragments;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import org.joinmastodon.android.R;
|
||||
import org.joinmastodon.android.api.requests.tags.GetFollowedHashtags;
|
||||
import org.joinmastodon.android.model.Hashtag;
|
||||
import org.joinmastodon.android.model.HeaderPaginationList;
|
||||
import org.joinmastodon.android.ui.utils.UiUtils;
|
||||
|
||||
import me.grishka.appkit.api.SimpleCallback;
|
||||
import me.grishka.appkit.fragments.BaseRecyclerFragment;
|
||||
import me.grishka.appkit.utils.BindableViewHolder;
|
||||
import me.grishka.appkit.views.UsableRecyclerView;
|
||||
|
||||
public class FollowedHashtagsFragment extends BaseRecyclerFragment<Hashtag> implements ScrollableToTop {
|
||||
private String nextMaxID;
|
||||
private String accountId;
|
||||
|
||||
public FollowedHashtagsFragment() {
|
||||
super(20);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
Bundle args=getArguments();
|
||||
accountId=args.getString("account");
|
||||
setTitle(R.string.sk_hashtags_you_follow);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onShown(){
|
||||
super.onShown();
|
||||
if(!getArguments().getBoolean("noAutoLoad") && !loaded && !dataLoading)
|
||||
loadData();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void doLoadData(int offset, int count){
|
||||
currentRequest=new GetFollowedHashtags(offset==0 ? null : nextMaxID, null, count, null)
|
||||
.setCallback(new SimpleCallback<>(this){
|
||||
@Override
|
||||
public void onSuccess(HeaderPaginationList<Hashtag> result){
|
||||
if(result.nextPageUri!=null)
|
||||
nextMaxID=result.nextPageUri.getQueryParameter("max_id");
|
||||
else
|
||||
nextMaxID=null;
|
||||
onDataLoaded(result, nextMaxID!=null);
|
||||
}
|
||||
})
|
||||
.exec(accountId);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected RecyclerView.Adapter getAdapter() {
|
||||
return new HashtagsAdapter();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void scrollToTop() {
|
||||
smoothScrollRecyclerViewToTop(list);
|
||||
}
|
||||
|
||||
private class HashtagsAdapter extends RecyclerView.Adapter<HashtagViewHolder>{
|
||||
@NonNull
|
||||
@Override
|
||||
public HashtagViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType){
|
||||
return new HashtagViewHolder();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull HashtagViewHolder holder, int position) {
|
||||
holder.bind(data.get(position));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return data.size();
|
||||
}
|
||||
}
|
||||
|
||||
private class HashtagViewHolder extends BindableViewHolder<Hashtag> implements UsableRecyclerView.Clickable{
|
||||
private final TextView title;
|
||||
|
||||
public HashtagViewHolder(){
|
||||
super(getActivity(), R.layout.item_text, list);
|
||||
title=findViewById(R.id.title);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBind(Hashtag item) {
|
||||
title.setText(item.name);
|
||||
title.setCompoundDrawablesRelativeWithIntrinsicBounds(itemView.getContext().getDrawable(R.drawable.ic_fluent_number_symbol_24_regular), null, null, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick() {
|
||||
UiUtils.openHashtagTimeline(getActivity(), accountId, item.name, item.following);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,9 @@
|
||||
package org.joinmastodon.android.fragments;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
@@ -23,17 +18,13 @@ import org.joinmastodon.android.model.ListTimeline;
|
||||
import org.joinmastodon.android.ui.utils.UiUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import me.grishka.appkit.api.ErrorResponse;
|
||||
import me.grishka.appkit.api.SimpleCallback;
|
||||
import me.grishka.appkit.fragments.BaseRecyclerFragment;
|
||||
import me.grishka.appkit.utils.BindableViewHolder;
|
||||
import me.grishka.appkit.utils.V;
|
||||
import me.grishka.appkit.views.UsableRecyclerView;
|
||||
|
||||
public class ListTimelinesFragment extends BaseRecyclerFragment<ListTimeline> implements ScrollableToTop {
|
||||
@@ -159,7 +150,7 @@ public class ListTimelinesFragment extends BaseRecyclerFragment<ListTimeline> im
|
||||
private final CheckBox listToggle;
|
||||
|
||||
public ListViewHolder(){
|
||||
super(getActivity(), R.layout.item_list_timeline, list);
|
||||
super(getActivity(), R.layout.item_text, list);
|
||||
title=findViewById(R.id.title);
|
||||
listToggle=findViewById(R.id.list_toggle);
|
||||
}
|
||||
@@ -167,8 +158,10 @@ public class ListTimelinesFragment extends BaseRecyclerFragment<ListTimeline> im
|
||||
@Override
|
||||
public void onBind(ListTimeline item) {
|
||||
title.setText(item.title);
|
||||
title.setCompoundDrawablesRelativeWithIntrinsicBounds(itemView.getContext().getDrawable(R.drawable.ic_fluent_people_community_24_regular), null, null, null);
|
||||
if (profileAccountId != null) {
|
||||
Boolean checked = userInList.get(item.id);
|
||||
listToggle.setVisibility(View.VISIBLE);
|
||||
listToggle.setChecked(userInList.containsKey(item.id) && checked != null && checked);
|
||||
listToggle.setOnClickListener(this::onClickToggle);
|
||||
} else {
|
||||
|
||||
@@ -14,6 +14,7 @@ import android.widget.FrameLayout;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import org.joinmastodon.android.E;
|
||||
import org.joinmastodon.android.GlobalUserPreferences;
|
||||
import org.joinmastodon.android.R;
|
||||
import org.joinmastodon.android.api.requests.accounts.GetFollowRequests;
|
||||
import org.joinmastodon.android.events.FollowRequestHandledEvent;
|
||||
@@ -109,6 +110,7 @@ public class NotificationsFragment extends MastodonToolbarFragment implements Sc
|
||||
tabLayout.setTabTextColors(UiUtils.getThemeColor(getActivity(), R.attr.colorTabInactive), UiUtils.getThemeColor(getActivity(), android.R.attr.textColorPrimary));
|
||||
|
||||
pager.setOffscreenPageLimit(4);
|
||||
pager.setUserInputEnabled(!GlobalUserPreferences.disableSwipe);
|
||||
pager.setAdapter(new DiscoverPagerAdapter());
|
||||
pager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback(){
|
||||
@Override
|
||||
|
||||
@@ -1,15 +1,11 @@
|
||||
package org.joinmastodon.android.fragments;
|
||||
|
||||
import static android.content.Context.CLIPBOARD_SERVICE;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.animation.AnimatorListenerAdapter;
|
||||
import android.animation.AnimatorSet;
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.app.Activity;
|
||||
import android.app.Fragment;
|
||||
import android.content.ClipData;
|
||||
import android.content.ClipboardManager;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.Outline;
|
||||
@@ -34,8 +30,8 @@ import android.view.WindowInsets;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
@@ -49,6 +45,7 @@ import org.joinmastodon.android.api.requests.accounts.GetAccountRelationships;
|
||||
import org.joinmastodon.android.api.requests.accounts.GetAccountStatuses;
|
||||
import org.joinmastodon.android.api.requests.accounts.GetOwnAccount;
|
||||
import org.joinmastodon.android.api.requests.accounts.SetAccountFollowed;
|
||||
import org.joinmastodon.android.api.requests.accounts.SetPrivateNote;
|
||||
import org.joinmastodon.android.api.requests.accounts.UpdateAccountCredentials;
|
||||
import org.joinmastodon.android.api.session.AccountSessionManager;
|
||||
import org.joinmastodon.android.fragments.account_list.FollowerListFragment;
|
||||
@@ -113,8 +110,9 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
|
||||
private SwipeRefreshLayout refreshLayout;
|
||||
private CoverOverlayGradientDrawable coverGradient=new CoverOverlayGradientDrawable();
|
||||
private float titleTransY;
|
||||
private View postsBtn, followersBtn, followingBtn;
|
||||
private EditText nameEdit, bioEdit;
|
||||
private View postsBtn, followersBtn, followingBtn, noteEditWrapper;
|
||||
private EditText nameEdit, bioEdit, noteEdit;
|
||||
private ImageButton noteEditConfirm;
|
||||
private ProgressBar actionProgress, notifyProgress;
|
||||
private FrameLayout[] tabViews;
|
||||
private TabLayoutMediator tabLayoutMediator;
|
||||
@@ -177,6 +175,10 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
|
||||
name=content.findViewById(R.id.name);
|
||||
username=content.findViewById(R.id.username);
|
||||
bio=content.findViewById(R.id.bio);
|
||||
noteEdit=content.findViewById(R.id.note_edit);
|
||||
// noteEditConfirm=content.findViewById(R.id.note_edit_confirm);
|
||||
// noteEditConfirm.setOnClickListener(v->onClickNoteSave());
|
||||
noteEditWrapper=content.findViewById(R.id.note_edit_wrap);
|
||||
followersCount=content.findViewById(R.id.followers_count);
|
||||
followersLabel=content.findViewById(R.id.followers_label);
|
||||
followersBtn=content.findViewById(R.id.followers_btn);
|
||||
@@ -234,6 +236,7 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
|
||||
}
|
||||
|
||||
pager.setOffscreenPageLimit(5);
|
||||
pager.setUserInputEnabled(!GlobalUserPreferences.disableSwipe);
|
||||
pager.setAdapter(new ProfilePagerAdapter());
|
||||
pager.getLayoutParams().height=getResources().getDisplayMetrics().heightPixels;
|
||||
|
||||
@@ -288,10 +291,7 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
|
||||
if(!username.contains("@")){
|
||||
username+="@"+AccountSessionManager.getInstance().getAccount(accountID).domain;
|
||||
}
|
||||
getActivity().getSystemService(ClipboardManager.class).setPrimaryClip(ClipData.newPlainText(null, "@"+username));
|
||||
if(Build.VERSION.SDK_INT<Build.VERSION_CODES.TIRAMISU){ // Android 13+ SystemUI shows its own thing when you put things into the clipboard
|
||||
Toast.makeText(getActivity(), R.string.text_copied, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
UiUtils.copyText(getActivity(), '@'+username);
|
||||
return true;
|
||||
});
|
||||
|
||||
@@ -445,6 +445,15 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
|
||||
|
||||
boolean isSelf=AccountSessionManager.getInstance().isSelf(accountID, account);
|
||||
|
||||
// noteEdit.setOnFocusChangeListener((v, hasFocus) -> {
|
||||
// if(!hasFocus){
|
||||
//// Toast.makeText(getActivity(), "Its going here", Toast.LENGTH_LONG).show();
|
||||
// savePrivateNote();
|
||||
//// noteEdit.setOnFocusChangeListener(savePrivateNote());
|
||||
// }
|
||||
// });
|
||||
noteEdit.setOnClickListener(v->savePrivateNote());
|
||||
|
||||
if(account.locked){
|
||||
ssb=new SpannableStringBuilder("@");
|
||||
ssb.append(account.acct);
|
||||
@@ -463,12 +472,28 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
|
||||
username.setText('@'+account.acct+(isSelf ? ('@'+AccountSessionManager.getInstance().getAccount(accountID).domain) : ""));
|
||||
}
|
||||
CharSequence parsedBio=HtmlParser.parse(account.note, account.emojis, Collections.emptyList(), Collections.emptyList(), accountID);
|
||||
bio.setOnClickListener(v->savePrivateNote());
|
||||
if(TextUtils.isEmpty(parsedBio)){
|
||||
bio.setVisibility(View.GONE);
|
||||
}else{
|
||||
bio.setVisibility(View.VISIBLE);
|
||||
bio.setText(parsedBio);
|
||||
}
|
||||
|
||||
if(isOwnProfile){
|
||||
noteEditWrapper.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
// if(noteEdit.getText().toString() == null){
|
||||
// noteEditConfirm.setImageResource(R.drawable.ic_fluent_checkmark_24_regular);
|
||||
// noteEditConfirm.setClickable(false);
|
||||
// noteEditConfirm.setAlpha(.50f);
|
||||
// }else{
|
||||
// noteEditConfirm.setImageResource(R.drawable.ic_fluent_checkmark_24_filled);
|
||||
// noteEditConfirm.setClickable(true);
|
||||
// noteEditConfirm.setAlpha(1.0f);
|
||||
// }
|
||||
|
||||
followersCount.setText(UiUtils.abbreviateNumber(account.followersCount));
|
||||
followingCount.setText(UiUtils.abbreviateNumber(account.followingCount));
|
||||
postsCount.setText(UiUtils.abbreviateNumber(account.statusesCount));
|
||||
@@ -623,6 +648,10 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
|
||||
args.putString("profileAccount", profileAccountID);
|
||||
args.putString("profileDisplayUsername", account.getDisplayUsername());
|
||||
Nav.go(getActivity(), ListTimelinesFragment.class, args);
|
||||
}else if(id==R.id.followed_hashtags){
|
||||
Bundle args=new Bundle();
|
||||
args.putString("account", accountID);
|
||||
Nav.go(getActivity(), FollowedHashtagsFragment.class, args);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -661,6 +690,7 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
|
||||
notifyProgress.setIndeterminateTintList(notifyButton.getTextColors());
|
||||
followsYouView.setVisibility(relationship.followedBy ? View.VISIBLE : View.GONE);
|
||||
notifyButton.setSelected(relationship.notifying);
|
||||
noteEdit.setText(relationship.note);
|
||||
if (getActivity() != null) notifyButton.setContentDescription(getString(relationship.notifying ? R.string.sk_user_post_notifications_on : R.string.sk_user_post_notifications_off, '@'+account.username));
|
||||
}
|
||||
|
||||
@@ -966,6 +996,17 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
|
||||
scrollView.smoothScrollTo(0, 0);
|
||||
}
|
||||
|
||||
private void savePrivateNote(){
|
||||
currentRequest = new SetPrivateNote(profileAccountID, noteEdit.getText().toString()).setCallback(new SimpleCallback<>(this) {
|
||||
@Override
|
||||
public void onSuccess(Relationship result) {
|
||||
relationship=result;
|
||||
updateRelationship();
|
||||
Toast.makeText(getActivity(), "Success", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void onFollowersOrFollowingClick(View v){
|
||||
Bundle args=new Bundle();
|
||||
args.putString("account", accountID);
|
||||
|
||||
@@ -9,6 +9,7 @@ import android.graphics.Canvas;
|
||||
import android.graphics.Rect;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
@@ -50,7 +51,6 @@ import org.joinmastodon.android.ui.utils.UiUtils;
|
||||
import org.joinmastodon.android.updater.GithubSelfUpdater;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Objects;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import androidx.annotation.DrawableRes;
|
||||
@@ -102,7 +102,25 @@ public class SettingsFragment extends MastodonToolbarFragment{
|
||||
GlobalUserPreferences.disableMarquee=i.checked;
|
||||
GlobalUserPreferences.save();
|
||||
}));
|
||||
items.add(new ColorPicker());
|
||||
items.add(new ButtonItem(R.string.sk_settings_color_palette, R.drawable.ic_fluent_color_24_regular, b->{
|
||||
PopupMenu popupMenu=new PopupMenu(getActivity(), b, Gravity.CENTER_HORIZONTAL);
|
||||
popupMenu.inflate(R.menu.color_palettes);
|
||||
popupMenu.getMenu().findItem(R.id.m3_color).setVisible(Build.VERSION.SDK_INT >= Build.VERSION_CODES.S);
|
||||
popupMenu.setOnMenuItemClickListener(SettingsFragment.this::onColorPreferenceClick);
|
||||
b.setOnTouchListener(popupMenu.getDragToOpenListener());
|
||||
b.setOnClickListener(v->popupMenu.show());
|
||||
b.setText(switch(GlobalUserPreferences.color){
|
||||
case MATERIAL3 -> R.string.sk_color_palette_material3;
|
||||
case PINK -> R.string.sk_color_palette_pink;
|
||||
case PURPLE -> R.string.sk_color_palette_purple;
|
||||
case GREEN -> R.string.sk_color_palette_green;
|
||||
case BLUE -> R.string.sk_color_palette_blue;
|
||||
case BROWN -> R.string.sk_color_palette_brown;
|
||||
case RED -> R.string.sk_color_palette_red;
|
||||
case YELLOW -> R.string.sk_color_palette_yellow;
|
||||
case NORD -> R.string.sk_color_palette_nord;
|
||||
});
|
||||
}));
|
||||
|
||||
items.add(new HeaderItem(R.string.settings_behavior));
|
||||
items.add(new SwitchItem(R.string.settings_gif, R.drawable.ic_fluent_gif_24_regular, GlobalUserPreferences.playGifs, i->{
|
||||
@@ -121,6 +139,17 @@ public class SettingsFragment extends MastodonToolbarFragment{
|
||||
GlobalUserPreferences.alwaysExpandContentWarnings=i.checked;
|
||||
GlobalUserPreferences.save();
|
||||
}));
|
||||
items.add(new SwitchItem(R.string.sk_tabs_disable_swipe, R.drawable.ic_fluent_swipe_right_24_regular, GlobalUserPreferences.disableSwipe, i->{
|
||||
GlobalUserPreferences.disableSwipe=i.checked;
|
||||
GlobalUserPreferences.save();
|
||||
needAppRestart=true;
|
||||
}));
|
||||
items.add(new SwitchItem(R.string.sk_settings_show_differentiated_notification_icons, R.drawable.ic_fluent_earth_24_regular, GlobalUserPreferences.showDifferentiatedPushNoticationIcons, this::onNotificationStyleChanged));
|
||||
items.add(new SwitchItem(R.string.sk_disable_dividers, R.drawable.ic_fluent_timeline_24_regular, GlobalUserPreferences.disableDividers, i->{
|
||||
GlobalUserPreferences.disableDividers=i.checked;
|
||||
GlobalUserPreferences.save();
|
||||
needAppRestart=true;
|
||||
}));
|
||||
|
||||
items.add(new HeaderItem(R.string.home_timeline));
|
||||
items.add(new SwitchItem(R.string.sk_settings_show_replies, R.drawable.ic_fluent_chat_multiple_24_regular, GlobalUserPreferences.showReplies, i->{
|
||||
@@ -243,13 +272,29 @@ public class SettingsFragment extends MastodonToolbarFragment{
|
||||
restartActivityToApplyNewTheme();
|
||||
}
|
||||
|
||||
private void onColorPreferenceClick(GlobalUserPreferences.ColorPreference color){
|
||||
private boolean onColorPreferenceClick(MenuItem item){
|
||||
ColorPreference pref = null;
|
||||
int id = item.getItemId();
|
||||
|
||||
GlobalUserPreferences.color=color;
|
||||
if (id == R.id.m3_color) pref = ColorPreference.MATERIAL3;
|
||||
else if (id == R.id.pink_color) pref = ColorPreference.PINK;
|
||||
else if (id == R.id.purple_color) pref = ColorPreference.PURPLE;
|
||||
else if (id == R.id.green_color) pref = ColorPreference.GREEN;
|
||||
else if (id == R.id.blue_color) pref = ColorPreference.BLUE;
|
||||
else if (id == R.id.brown_color) pref = ColorPreference.BROWN;
|
||||
else if (id == R.id.red_color) pref = ColorPreference.RED;
|
||||
else if (id == R.id.yellow_color) pref = ColorPreference.YELLOW;
|
||||
else if (id == R.id.nord_color) pref = ColorPreference.NORD;
|
||||
|
||||
if (pref == null) return false;
|
||||
|
||||
GlobalUserPreferences.color=pref;
|
||||
GlobalUserPreferences.save();
|
||||
restartActivityToApplyNewTheme();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
private void onTrueBlackThemeChanged(SwitchItem item){
|
||||
GlobalUserPreferences.trueBlackTheme=item.checked;
|
||||
GlobalUserPreferences.save();
|
||||
@@ -314,6 +359,12 @@ public class SettingsFragment extends MastodonToolbarFragment{
|
||||
needUpdateNotificationSettings=true;
|
||||
}
|
||||
|
||||
private void onNotificationStyleChanged(SwitchItem item){
|
||||
GlobalUserPreferences.showDifferentiatedPushNoticationIcons=item.checked;
|
||||
GlobalUserPreferences.save();
|
||||
}
|
||||
|
||||
|
||||
private void onNotificationsPolicyChanged(PushSubscription.Policy policy){
|
||||
PushSubscription subscription=getPushSubscription();
|
||||
PushSubscription.Policy prevPolicy=subscription.policy;
|
||||
@@ -453,6 +504,23 @@ public class SettingsFragment extends MastodonToolbarFragment{
|
||||
}
|
||||
}
|
||||
|
||||
public class ButtonItem extends Item{
|
||||
private int text;
|
||||
private int icon;
|
||||
private Consumer<Button> buttonConsumer;
|
||||
|
||||
public ButtonItem(@StringRes int text, @DrawableRes int icon, Consumer<Button> buttonConsumer) {
|
||||
this.text = text;
|
||||
this.icon = icon;
|
||||
this.buttonConsumer = buttonConsumer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getViewType(){
|
||||
return 8;
|
||||
}
|
||||
}
|
||||
|
||||
public class ColorPicker extends Item{
|
||||
@Override
|
||||
public int getViewType(){
|
||||
@@ -544,7 +612,7 @@ public class SettingsFragment extends MastodonToolbarFragment{
|
||||
case 5 -> new HeaderViewHolder(true);
|
||||
case 6 -> new FooterViewHolder();
|
||||
case 7 -> new UpdateViewHolder();
|
||||
case 8 -> new ColorPickerViewHolder();
|
||||
case 8 -> new ButtonViewHolder();
|
||||
default -> throw new IllegalStateException("Unexpected value: "+viewType);
|
||||
};
|
||||
}
|
||||
@@ -673,81 +741,25 @@ public class SettingsFragment extends MastodonToolbarFragment{
|
||||
}
|
||||
}
|
||||
}
|
||||
private class ColorPickerViewHolder extends BindableViewHolder<ColorPicker>{
|
||||
|
||||
private class ButtonViewHolder extends BindableViewHolder<ButtonItem>{
|
||||
private final Button button;
|
||||
private final PopupMenu popupMenu;
|
||||
private final ImageView icon;
|
||||
private final TextView text;
|
||||
|
||||
@SuppressLint("ClickableViewAccessibility")
|
||||
public ColorPickerViewHolder(){
|
||||
super(getActivity(), R.layout.item_settings_color_picker, list);
|
||||
public ButtonViewHolder(){
|
||||
super(getActivity(), R.layout.item_settings_button, list);
|
||||
text=findViewById(R.id.text);
|
||||
icon=findViewById(R.id.icon);
|
||||
button=findViewById(R.id.color_picker_button);
|
||||
popupMenu=new PopupMenu(getActivity(), button, Gravity.CENTER_HORIZONTAL);
|
||||
popupMenu.inflate(R.menu.color_picker);
|
||||
popupMenu.setOnMenuItemClickListener(item->{
|
||||
GlobalUserPreferences.ColorPreference pref;
|
||||
int id=item.getItemId();
|
||||
if(id==R.id.pink_color) {
|
||||
pref = GlobalUserPreferences.ColorPreference.PINK;
|
||||
onColorPreferenceClick(pref);
|
||||
}
|
||||
else if(id==R.id.purple_color) {
|
||||
pref = GlobalUserPreferences.ColorPreference.PURPLE;
|
||||
onColorPreferenceClick(pref);
|
||||
}
|
||||
else if(id==R.id.green_color) {
|
||||
pref = GlobalUserPreferences.ColorPreference.GREEN;
|
||||
onColorPreferenceClick(pref);
|
||||
}
|
||||
else if(id==R.id.blue_color) {
|
||||
pref = GlobalUserPreferences.ColorPreference.BLUE;
|
||||
onColorPreferenceClick(pref);
|
||||
}
|
||||
else if(id==R.id.orange_color) {
|
||||
pref = GlobalUserPreferences.ColorPreference.ORANGE;
|
||||
onColorPreferenceClick(pref);
|
||||
}
|
||||
else if(id==R.id.yellow_color) {
|
||||
pref = GlobalUserPreferences.ColorPreference.YELLOW;
|
||||
onColorPreferenceClick(pref);
|
||||
}
|
||||
else if(id==R.id.red_color) {
|
||||
pref = GlobalUserPreferences.ColorPreference.RED;
|
||||
onColorPreferenceClick(pref);
|
||||
}
|
||||
else if(id==R.id.m3_color) {
|
||||
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||
pref = GlobalUserPreferences.ColorPreference.MATERIAL3;
|
||||
onColorPreferenceClick(pref);
|
||||
}else{
|
||||
Toast.makeText(getActivity(), R.string.sk_not_supported,
|
||||
Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
else
|
||||
return false;
|
||||
return true;
|
||||
});
|
||||
// UiUtils.enablePopupMenuIcons(getActivity(), popupMenu);
|
||||
popupMenu.getMenu().findItem(R.id.m3_color).setVisible(Build.VERSION.SDK_INT >= Build.VERSION_CODES.S);
|
||||
button.setOnTouchListener(popupMenu.getDragToOpenListener());
|
||||
button.setOnClickListener(v->popupMenu.show());
|
||||
button=findViewById(R.id.button);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBind(ColorPicker item){
|
||||
icon.setImageResource(R.drawable.ic_color_theme_preference);
|
||||
button.setText(switch(GlobalUserPreferences.color){
|
||||
case PINK -> R.string.sk_color_theme_pink;
|
||||
case PURPLE -> R.string.sk_color_theme_purple;
|
||||
case GREEN -> R.string.sk_color_theme_green;
|
||||
case BLUE -> R.string.sk_color_theme_blue;
|
||||
case ORANGE -> R.string.sk_color_theme_brown;
|
||||
case YELLOW -> R.string.sk_color_theme_yellow;
|
||||
case RED -> R.string.sk_color_theme_red;
|
||||
case MATERIAL3 -> R.string.sk_color_theme_material3;
|
||||
});
|
||||
public void onBind(ButtonItem item){
|
||||
text.setText(item.text);
|
||||
icon.setImageResource(item.icon);
|
||||
item.buttonConsumer.accept(button);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -831,7 +843,7 @@ public class SettingsFragment extends MastodonToolbarFragment{
|
||||
|
||||
private class UpdateViewHolder extends BindableViewHolder<UpdateItem>{
|
||||
|
||||
private final TextView text;
|
||||
private final TextView text, changelog;
|
||||
private final Button button;
|
||||
private final ImageButton cancelBtn;
|
||||
private final ProgressBar progress;
|
||||
@@ -842,6 +854,7 @@ public class SettingsFragment extends MastodonToolbarFragment{
|
||||
public UpdateViewHolder(){
|
||||
super(getActivity(), R.layout.item_settings_update, list);
|
||||
text=findViewById(R.id.text);
|
||||
changelog=findViewById(R.id.changelog);
|
||||
button=findViewById(R.id.button);
|
||||
cancelBtn=findViewById(R.id.cancel_btn);
|
||||
progress=findViewById(R.id.progress);
|
||||
@@ -885,6 +898,8 @@ public class SettingsFragment extends MastodonToolbarFragment{
|
||||
progress.setVisibility(View.GONE);
|
||||
progress.removeCallbacks(progressUpdater);
|
||||
}
|
||||
changelog.setText(info.changelog);
|
||||
// changelog.setText(getString(R.string.sk_changelog, info.changelog));
|
||||
}
|
||||
|
||||
private void updateProgress(){
|
||||
|
||||
@@ -177,7 +177,7 @@ public abstract class StatusListFragment extends BaseStatusListFragment<Status>{
|
||||
public void onStatusCountersUpdated(StatusCountersUpdatedEvent ev){
|
||||
for(Status s:data){
|
||||
if(s.getContentStatus().id.equals(ev.id)){
|
||||
s.update(ev);
|
||||
s.getContentStatus().update(ev);
|
||||
for(int i=0;i<list.getChildCount();i++){
|
||||
RecyclerView.ViewHolder holder=list.getChildViewHolder(list.getChildAt(i));
|
||||
if(holder instanceof FooterStatusDisplayItem.Holder footer && footer.getItem().status==s.getContentStatus()){
|
||||
|
||||
@@ -104,6 +104,7 @@ public class DiscoverFragment extends AppKitFragment implements ScrollableToTop,
|
||||
tabLayout.setTabTextColors(UiUtils.getThemeColor(getActivity(), R.attr.colorTabInactive), UiUtils.getThemeColor(getActivity(), android.R.attr.textColorPrimary));
|
||||
|
||||
pager.setOffscreenPageLimit(4);
|
||||
pager.setUserInputEnabled(!GlobalUserPreferences.disableSwipe);
|
||||
pager.setAdapter(new DiscoverPagerAdapter());
|
||||
pager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback(){
|
||||
@Override
|
||||
|
||||
@@ -6,13 +6,13 @@ import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewConfiguration;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.accessibility.AccessibilityNodeInfo;
|
||||
import android.view.animation.AlphaAnimation;
|
||||
import android.view.animation.Animation;
|
||||
import android.view.animation.AnimationSet;
|
||||
import android.view.animation.ScaleAnimation;
|
||||
import android.widget.Button;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
@@ -26,8 +26,6 @@ import org.joinmastodon.android.model.StatusPrivacy;
|
||||
import org.joinmastodon.android.ui.utils.UiUtils;
|
||||
import org.parceler.Parcels;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
|
||||
import me.grishka.appkit.Nav;
|
||||
import me.grishka.appkit.utils.CubicBezierInterpolator;
|
||||
import me.grishka.appkit.utils.V;
|
||||
@@ -53,6 +51,9 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
|
||||
private final ImageView share;
|
||||
private static final Animation opacityOut, opacityIn;
|
||||
|
||||
private View touchingView = null;
|
||||
private final Runnable longClickRunnable = () -> { if (touchingView != null) touchingView.performLongClick(); };
|
||||
|
||||
private final View.AccessibilityDelegate buttonAccessibilityDelegate=new View.AccessibilityDelegate(){
|
||||
@Override
|
||||
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info){
|
||||
@@ -63,12 +64,12 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
|
||||
};
|
||||
|
||||
static {
|
||||
opacityOut = new AlphaAnimation(1, 0.5f);
|
||||
opacityOut = new AlphaAnimation(1, 0.7f);
|
||||
opacityOut.setDuration(200);
|
||||
opacityOut.setInterpolator(CubicBezierInterpolator.DEFAULT);
|
||||
opacityOut.setFillAfter(true);
|
||||
opacityIn = new AlphaAnimation(0.5f, 1);
|
||||
opacityIn.setDuration(150);
|
||||
opacityIn = new AlphaAnimation(0.7f, 1);
|
||||
opacityIn.setDuration(300);
|
||||
opacityIn.setInterpolator(CubicBezierInterpolator.DEFAULT);
|
||||
}
|
||||
|
||||
@@ -95,6 +96,7 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
|
||||
reply.setAccessibilityDelegate(buttonAccessibilityDelegate);
|
||||
boost.setOnTouchListener(this::onButtonTouch);
|
||||
boost.setOnClickListener(this::onBoostClick);
|
||||
boost.setOnLongClickListener(this::onBoostLongClick);
|
||||
boost.setAccessibilityDelegate(buttonAccessibilityDelegate);
|
||||
favorite.setOnTouchListener(this::onButtonTouch);
|
||||
favorite.setOnClickListener(this::onFavoriteClick);
|
||||
@@ -104,6 +106,7 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
|
||||
bookmark.setAccessibilityDelegate(buttonAccessibilityDelegate);
|
||||
share.setOnTouchListener(this::onButtonTouch);
|
||||
share.setOnClickListener(this::onShareClick);
|
||||
share.setOnLongClickListener(this::onShareLongClick);
|
||||
share.setAccessibilityDelegate(buttonAccessibilityDelegate);
|
||||
}
|
||||
|
||||
@@ -129,28 +132,39 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
|
||||
}
|
||||
}
|
||||
|
||||
private boolean onButtonTouch(View v, MotionEvent event){
|
||||
boolean disabled = !v.isEnabled() || (v instanceof FrameLayout parentFrame &&
|
||||
parentFrame.getChildCount() > 0 && !parentFrame.getChildAt(0).isEnabled());
|
||||
int action = event.getAction();
|
||||
long eventDuration = event.getEventTime() - event.getDownTime();
|
||||
if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL) {
|
||||
touchingView = null;
|
||||
v.removeCallbacks(longClickRunnable);
|
||||
v.animate().scaleX(1).scaleY(1).setInterpolator(CubicBezierInterpolator.DEFAULT).setDuration(150).start();
|
||||
if (disabled) return true;
|
||||
if (action == MotionEvent.ACTION_UP && eventDuration < ViewConfiguration.getLongPressTimeout()) v.performClick();
|
||||
else v.startAnimation(opacityIn);
|
||||
} else if (action == MotionEvent.ACTION_DOWN) {
|
||||
touchingView = v;
|
||||
// 20dp to center in middle of icon, because: (icon width = 24dp) / 2 + (paddingStart = 8dp)
|
||||
v.setPivotX(V.dp(20));
|
||||
v.animate().scaleX(0.85f).scaleY(0.85f).setInterpolator(CubicBezierInterpolator.DEFAULT).setDuration(75).start();
|
||||
if (disabled) return true;
|
||||
v.postDelayed(longClickRunnable, ViewConfiguration.getLongPressTimeout());
|
||||
v.startAnimation(opacityOut);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void onReplyClick(View v){
|
||||
v.startAnimation(opacityIn);
|
||||
Bundle args=new Bundle();
|
||||
args.putString("account", item.accountID);
|
||||
args.putParcelable("replyTo", Parcels.wrap(item.status));
|
||||
Nav.go(item.parentFragment.getActivity(), ComposeFragment.class, args);
|
||||
}
|
||||
|
||||
private boolean onButtonTouch(View v, MotionEvent event){
|
||||
int action = event.getAction();
|
||||
// 20dp to center in middle of icon, because: (icon width = 24dp) / 2 + (paddingStart = 8dp)
|
||||
v.setPivotX(V.dp(20));
|
||||
if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL) {
|
||||
v.animate().scaleX(1).scaleY(1).setInterpolator(CubicBezierInterpolator.DEFAULT).setDuration(100).start();
|
||||
if (action == MotionEvent.ACTION_UP) v.performClick();
|
||||
} else if (action == MotionEvent.ACTION_DOWN) {
|
||||
v.animate().scaleX(0.85f).scaleY(0.85f).setInterpolator(CubicBezierInterpolator.DEFAULT).setDuration(50).start();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void onBoostClick(View v){
|
||||
v.startAnimation(opacityOut);
|
||||
boost.setSelected(!item.status.reblogged);
|
||||
AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setReblogged(item.status, !item.status.reblogged, r->{
|
||||
v.startAnimation(opacityIn);
|
||||
@@ -158,8 +172,19 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
|
||||
});
|
||||
}
|
||||
|
||||
private boolean onBoostLongClick(View v){
|
||||
v.setAlpha(1);
|
||||
v.setScaleX(1);
|
||||
v.setScaleY(1);
|
||||
Bundle args=new Bundle();
|
||||
args.putString("account", item.accountID);
|
||||
args.putString("prefilledText", "\n\n" + item.status.url);
|
||||
args.putInt("selectionStart", 0);
|
||||
Nav.go(item.parentFragment.getActivity(), ComposeFragment.class, args);
|
||||
return true;
|
||||
}
|
||||
|
||||
private void onFavoriteClick(View v){
|
||||
v.startAnimation(opacityOut);
|
||||
favorite.setSelected(!item.status.favourited);
|
||||
AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setFavorited(item.status, !item.status.favourited, r->{
|
||||
v.startAnimation(opacityIn);
|
||||
@@ -168,7 +193,6 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
|
||||
}
|
||||
|
||||
private void onBookmarkClick(View v){
|
||||
v.startAnimation(opacityOut);
|
||||
bookmark.setSelected(item.status.bookmarked);
|
||||
AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setBookmarked(item.status, !item.status.bookmarked, r->{
|
||||
v.startAnimation(opacityIn);
|
||||
@@ -176,12 +200,18 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
|
||||
}
|
||||
|
||||
private void onShareClick(View v){
|
||||
v.startAnimation(opacityIn);
|
||||
Intent intent=new Intent(Intent.ACTION_SEND);
|
||||
intent.setType("text/plain");
|
||||
intent.putExtra(Intent.EXTRA_TEXT, item.status.url);
|
||||
v.getContext().startActivity(Intent.createChooser(intent, v.getContext().getString(R.string.share_toot_title)));
|
||||
}
|
||||
|
||||
private boolean onShareLongClick(View v){
|
||||
UiUtils.copyText(v.getContext(), item.status.url);
|
||||
return true;
|
||||
}
|
||||
|
||||
private int descriptionForId(int id){
|
||||
if(id==R.id.reply_btn)
|
||||
return R.string.button_reply;
|
||||
|
||||
@@ -95,7 +95,7 @@ public class LinkCardStatusDisplayItem extends StatusDisplayItem{
|
||||
}
|
||||
|
||||
private void onClick(View v){
|
||||
UiUtils.launchWebBrowser(itemView.getContext(), item.status.card.url);
|
||||
UiUtils.openURL(itemView.getContext(), item.parentFragment.getAccountID(), item.status.card.url);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -144,7 +144,7 @@ public class TextStatusDisplayItem extends StatusDisplayItem{
|
||||
Instance instanceInfo = AccountSessionManager.getInstance().getInstanceInfo(item.session.domain);
|
||||
boolean translateEnabled = instanceInfo.v2 != null && instanceInfo.v2.configuration.translation != null && instanceInfo.v2.configuration.translation.enabled;
|
||||
|
||||
translateWrap.setVisibility(item.textSelectable && translateEnabled &&
|
||||
translateWrap.setVisibility(translateEnabled &&
|
||||
!item.status.visibility.isLessVisibleThan(StatusPrivacy.UNLISTED) &&
|
||||
item.status.language != null &&
|
||||
(item.session.preferences == null || !item.status.language.equalsIgnoreCase(item.session.preferences.postingDefaultLanguage))
|
||||
|
||||
@@ -182,7 +182,7 @@ public class HtmlParser{
|
||||
ssb.append("…", new DeleteWhenCopiedSpan(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
}else if(blockElements.contains(el.nodeName()) && node.nextSibling()!=null){
|
||||
ssb.append("\n"); // line end
|
||||
ssb.append("\n", new RelativeSizeSpan(0.75f), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // margin after block
|
||||
ssb.append("\n", new RelativeSizeSpan(0.65f), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // margin after block
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
package org.joinmastodon.android.ui.utils;
|
||||
|
||||
import static org.joinmastodon.android.GlobalUserPreferences.ColorPreference;
|
||||
import static org.joinmastodon.android.GlobalUserPreferences.ThemePreference;
|
||||
import static org.joinmastodon.android.GlobalUserPreferences.theme;
|
||||
import static org.joinmastodon.android.GlobalUserPreferences.trueBlackTheme;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
|
||||
import androidx.annotation.StyleRes;
|
||||
|
||||
import org.joinmastodon.android.GlobalUserPreferences;
|
||||
import org.joinmastodon.android.R;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class ColorPalette {
|
||||
public static final Map<GlobalUserPreferences.ColorPreference, ColorPalette> palettes = Map.of(
|
||||
ColorPreference.MATERIAL3, new ColorPalette(R.style.ColorPalette_Material3)
|
||||
.dark(R.style.ColorPalette_Material3_Dark, R.style.ColorPalette_Material3_AutoLightDark),
|
||||
ColorPreference.PINK, new ColorPalette(R.style.ColorPalette_Pink),
|
||||
ColorPreference.PURPLE, new ColorPalette(R.style.ColorPalette_Purple),
|
||||
ColorPreference.GREEN, new ColorPalette(R.style.ColorPalette_Green),
|
||||
ColorPreference.BLUE, new ColorPalette(R.style.ColorPalette_Blue),
|
||||
ColorPreference.BROWN, new ColorPalette(R.style.ColorPalette_Brown),
|
||||
ColorPreference.RED, new ColorPalette(R.style.ColorPalette_Red),
|
||||
ColorPreference.YELLOW, new ColorPalette(R.style.ColorPalette_Yellow),
|
||||
ColorPreference.NORD, new ColorPalette(R.style.ColorPalette_Nord)
|
||||
);
|
||||
|
||||
private @StyleRes int base;
|
||||
private @StyleRes int autoDark;
|
||||
private @StyleRes int light;
|
||||
private @StyleRes int dark;
|
||||
private @StyleRes int black;
|
||||
private @StyleRes int autoBlack;
|
||||
|
||||
public ColorPalette(@StyleRes int baseRes) { base = baseRes; }
|
||||
|
||||
public ColorPalette(@StyleRes int lightRes, @StyleRes int darkRes, @StyleRes int autoDarkRes, @StyleRes int blackRes, @StyleRes int autoBlackRes) {
|
||||
light = lightRes;
|
||||
dark = darkRes;
|
||||
autoDark = autoDarkRes;
|
||||
black = blackRes;
|
||||
autoBlack = autoBlackRes;
|
||||
}
|
||||
|
||||
public ColorPalette light(@StyleRes int res) { light = res; return this; }
|
||||
public ColorPalette dark(@StyleRes int res, @StyleRes int auto) { dark = res; autoDark = auto; return this; }
|
||||
public ColorPalette black(@StyleRes int res, @StyleRes int auto) { dark = res; autoBlack = auto; return this; }
|
||||
|
||||
public void apply(Context context) {
|
||||
if (!((dark != 0 && autoDark != 0) || (black != 0 && autoBlack != 0) || light != 0 || base != 0)) {
|
||||
throw new IllegalStateException("Invalid color scheme definition");
|
||||
}
|
||||
|
||||
Resources.Theme t = context.getTheme();
|
||||
if (base != 0) t.applyStyle(base, true);
|
||||
if (light != 0 && theme.equals(ThemePreference.LIGHT)) t.applyStyle(light, true);
|
||||
else if (theme.equals(ThemePreference.DARK)) {
|
||||
if (dark != 0 && !trueBlackTheme) t.applyStyle(dark, true);
|
||||
else if (black != 0 && trueBlackTheme) t.applyStyle(black, true);
|
||||
} else if (theme.equals(ThemePreference.AUTO)) {
|
||||
if (autoDark != 0 && !trueBlackTheme) t.applyStyle(autoDark, true);
|
||||
else if (autoBlack != 0 && trueBlackTheme) t.applyStyle(autoBlack, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,16 @@
|
||||
package org.joinmastodon.android.ui.utils;
|
||||
|
||||
import static org.joinmastodon.android.GlobalUserPreferences.theme;
|
||||
import static org.joinmastodon.android.GlobalUserPreferences.trueBlackTheme;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.ClipData;
|
||||
import android.content.ClipboardManager;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.res.ColorStateList;
|
||||
import android.content.res.Configuration;
|
||||
@@ -11,6 +18,7 @@ import android.content.res.TypedArray;
|
||||
import android.database.Cursor;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Typeface;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.InsetDrawable;
|
||||
@@ -19,10 +27,12 @@ import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.VibrationEffect;
|
||||
import android.os.Vibrator;
|
||||
import android.provider.OpenableColumns;
|
||||
import android.provider.Settings;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.text.Spanned;
|
||||
import android.text.TextUtils;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
@@ -42,6 +52,7 @@ import org.joinmastodon.android.api.requests.accounts.SetAccountMuted;
|
||||
import org.joinmastodon.android.api.requests.accounts.SetDomainBlocked;
|
||||
import org.joinmastodon.android.api.requests.accounts.AuthorizeFollowRequest;
|
||||
import org.joinmastodon.android.api.requests.accounts.RejectFollowRequest;
|
||||
import org.joinmastodon.android.api.requests.search.GetSearchResults;
|
||||
import org.joinmastodon.android.api.requests.statuses.DeleteStatus;
|
||||
import org.joinmastodon.android.api.requests.statuses.GetStatusByID;
|
||||
import org.joinmastodon.android.api.requests.statuses.SetStatusPinned;
|
||||
@@ -52,8 +63,6 @@ import org.joinmastodon.android.events.NotificationDeletedEvent;
|
||||
import org.joinmastodon.android.events.RemoveAccountPostsEvent;
|
||||
import org.joinmastodon.android.events.StatusDeletedEvent;
|
||||
import org.joinmastodon.android.events.StatusUnpinnedEvent;
|
||||
import org.joinmastodon.android.fragments.BaseStatusListFragment;
|
||||
import org.joinmastodon.android.fragments.ComposeFragment;
|
||||
import org.joinmastodon.android.fragments.HashtagTimelineFragment;
|
||||
import org.joinmastodon.android.fragments.ListTimelineFragment;
|
||||
import org.joinmastodon.android.fragments.ProfileFragment;
|
||||
@@ -62,6 +71,7 @@ import org.joinmastodon.android.model.Account;
|
||||
import org.joinmastodon.android.model.Emoji;
|
||||
import org.joinmastodon.android.model.ListTimeline;
|
||||
import org.joinmastodon.android.model.Relationship;
|
||||
import org.joinmastodon.android.model.SearchResults;
|
||||
import org.joinmastodon.android.model.Status;
|
||||
import org.joinmastodon.android.ui.M3AlertDialogBuilder;
|
||||
import org.joinmastodon.android.ui.text.CustomEmojiSpan;
|
||||
@@ -70,6 +80,8 @@ import org.parceler.Parcels;
|
||||
|
||||
import java.io.File;
|
||||
import java.lang.reflect.Method;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.time.Instant;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
@@ -656,103 +668,76 @@ public class UiUtils{
|
||||
}
|
||||
|
||||
public static void setUserPreferredTheme(Context context){
|
||||
// boolean isDarkTheme = isDarkTheme();
|
||||
switch(GlobalUserPreferences.color){
|
||||
case PINK:
|
||||
context.setTheme(switch(GlobalUserPreferences.theme){
|
||||
case AUTO ->
|
||||
GlobalUserPreferences.trueBlackTheme ? R.style.Theme_Mastodon_AutoLightDark_TrueBlack : R.style.Theme_Mastodon_AutoLightDark;
|
||||
case LIGHT ->
|
||||
R.style.Theme_Mastodon_Light;
|
||||
case DARK ->
|
||||
GlobalUserPreferences.trueBlackTheme ? R.style.Theme_Mastodon_Dark_TrueBlack : R.style.Theme_Mastodon_Dark;
|
||||
});
|
||||
break;
|
||||
case PURPLE:
|
||||
context.setTheme(switch(GlobalUserPreferences.theme){
|
||||
case AUTO ->
|
||||
GlobalUserPreferences.trueBlackTheme ? R.style.Theme_Mastodon_AutoLightDark_TrueBlack_Original : R.style.Theme_Mastodon_AutoLightDark_Original;
|
||||
case LIGHT ->
|
||||
R.style.Theme_Mastodon_Light_Original;
|
||||
case DARK ->
|
||||
GlobalUserPreferences.trueBlackTheme ? R.style.Theme_Mastodon_Dark_TrueBlack_Original : R.style.Theme_Mastodon_Dark_Original;
|
||||
});
|
||||
break;
|
||||
case GREEN:
|
||||
context.setTheme(switch(GlobalUserPreferences.theme){
|
||||
case AUTO ->
|
||||
GlobalUserPreferences.trueBlackTheme ? R.style.Theme_Mastodon_AutoLightDark_TrueBlack_Green : R.style.Theme_Mastodon_AutoLightDark_Green;
|
||||
case LIGHT ->
|
||||
R.style.Theme_Mastodon_Light_Green;
|
||||
case DARK ->
|
||||
GlobalUserPreferences.trueBlackTheme ? R.style.Theme_Mastodon_Dark_TrueBlack_Green : R.style.Theme_Mastodon_Dark_Green;
|
||||
});
|
||||
break;
|
||||
case BLUE:
|
||||
context.setTheme(switch(GlobalUserPreferences.theme){
|
||||
case AUTO ->
|
||||
GlobalUserPreferences.trueBlackTheme ? R.style.Theme_Mastodon_AutoLightDark_TrueBlack_Blue : R.style.Theme_Mastodon_AutoLightDark_Blue;
|
||||
case LIGHT ->
|
||||
R.style.Theme_Mastodon_Light_Blue;
|
||||
case DARK ->
|
||||
GlobalUserPreferences.trueBlackTheme ? R.style.Theme_Mastodon_Dark_TrueBlack_Blue : R.style.Theme_Mastodon_Dark_Blue;
|
||||
});
|
||||
break;
|
||||
case ORANGE:
|
||||
context.setTheme(switch(GlobalUserPreferences.theme){
|
||||
case AUTO ->
|
||||
GlobalUserPreferences.trueBlackTheme ? R.style.Theme_Mastodon_AutoLightDark_TrueBlack_Orange : R.style.Theme_Mastodon_AutoLightDark_Orange;
|
||||
case LIGHT ->
|
||||
R.style.Theme_Mastodon_Light_Orange;
|
||||
case DARK ->
|
||||
GlobalUserPreferences.trueBlackTheme ? R.style.Theme_Mastodon_Dark_TrueBlack_Orange : R.style.Theme_Mastodon_Dark_Orange;
|
||||
});
|
||||
break;
|
||||
case YELLOW:
|
||||
context.setTheme(switch(GlobalUserPreferences.theme){
|
||||
case AUTO ->
|
||||
GlobalUserPreferences.trueBlackTheme ? R.style.Theme_Mastodon_AutoLightDark_TrueBlack_Yellow : R.style.Theme_Mastodon_AutoLightDark_Yellow;
|
||||
case LIGHT ->
|
||||
R.style.Theme_Mastodon_Light_Yellow;
|
||||
case DARK ->
|
||||
GlobalUserPreferences.trueBlackTheme ? R.style.Theme_Mastodon_Dark_TrueBlack_Yellow : R.style.Theme_Mastodon_Dark_Yellow;
|
||||
});
|
||||
break;
|
||||
case RED:
|
||||
context.setTheme(switch(GlobalUserPreferences.theme){
|
||||
case AUTO ->
|
||||
GlobalUserPreferences.trueBlackTheme ? R.style.Theme_Mastodon_AutoLightDark_TrueBlack_Red : R.style.Theme_Mastodon_AutoLightDark_Red;
|
||||
case LIGHT ->
|
||||
R.style.Theme_Mastodon_Light_Red;
|
||||
case DARK ->
|
||||
GlobalUserPreferences.trueBlackTheme ? R.style.Theme_Mastodon_Dark_TrueBlack_Red : R.style.Theme_Mastodon_Dark_Red;
|
||||
});
|
||||
break;
|
||||
case MATERIAL3:
|
||||
context.setTheme(switch(GlobalUserPreferences.theme){
|
||||
case AUTO ->
|
||||
GlobalUserPreferences.trueBlackTheme ? R.style.Theme_Mastodon_AutoLightDark_TrueBlack_Material3 : R.style.Theme_Mastodon_AutoLightDark_Material3;
|
||||
case LIGHT ->
|
||||
R.style.Theme_Mastodon_Light_Material3;
|
||||
case DARK ->
|
||||
GlobalUserPreferences.trueBlackTheme ? R.style.Theme_Mastodon_Dark_TrueBlack_Material3 : R.style.Theme_Mastodon_Dark_Material3;
|
||||
});
|
||||
break;
|
||||
}
|
||||
context.setTheme(switch (theme) {
|
||||
case LIGHT -> R.style.Theme_Mastodon_Light;
|
||||
case DARK -> trueBlackTheme ? R.style.Theme_Mastodon_Dark_TrueBlack : R.style.Theme_Mastodon_Dark;
|
||||
default -> trueBlackTheme ? R.style.Theme_Mastodon_AutoLightDark_TrueBlack : R.style.Theme_Mastodon_AutoLightDark;
|
||||
});
|
||||
|
||||
ColorPalette palette = ColorPalette.palettes.get(GlobalUserPreferences.color);
|
||||
if (palette != null) palette.apply(context);
|
||||
}
|
||||
public static boolean isDarkTheme(){
|
||||
if(GlobalUserPreferences.theme==GlobalUserPreferences.ThemePreference.AUTO)
|
||||
if(theme==GlobalUserPreferences.ThemePreference.AUTO)
|
||||
return (MastodonApp.context.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK)==Configuration.UI_MODE_NIGHT_YES;
|
||||
return GlobalUserPreferences.theme==GlobalUserPreferences.ThemePreference.DARK;
|
||||
return theme==GlobalUserPreferences.ThemePreference.DARK;
|
||||
}
|
||||
|
||||
public static void openURL(Context context, @Nullable String accountID, String url){
|
||||
// https://mastodon.foo.bar/@User
|
||||
// https://mastodon.foo.bar/@User/43456787654678
|
||||
// https://pleroma.foo.bar/users/User
|
||||
// https://pleroma.foo.bar/users/9qTHT2ANWUdXzENqC0
|
||||
// https://pleroma.foo.bar/notice/9sBHWIlwwGZi5QGlHc
|
||||
// https://pleroma.foo.bar/objects/d4643c42-3ae0-4b73-b8b0-c725f5819207
|
||||
// https://friendica.foo.bar/profile/user
|
||||
// https://friendica.foo.bar/display/d4643c42-3ae0-4b73-b8b0-c725f5819207
|
||||
// https://misskey.foo.bar/notes/83w6r388br (always lowercase)
|
||||
// https://pixelfed.social/p/connyduck/391263492998670833
|
||||
// https://pixelfed.social/connyduck
|
||||
// https://gts.foo.bar/@goblin/statuses/01GH9XANCJ0TA8Y95VE9H3Y0Q2
|
||||
// https://gts.foo.bar/@goblin
|
||||
// https://foo.microblog.pub/o/5b64045effd24f48a27d7059f6cb38f5
|
||||
//
|
||||
// COPIED FROM https://github.com/tuskyapp/Tusky/blob/develop/app/src/main/java/com/keylesspalace/tusky/util/LinkHelper.kt
|
||||
public static boolean looksLikeMastodonUrl(String urlString) {
|
||||
URI uri;
|
||||
try {
|
||||
uri = new URI(urlString);
|
||||
} catch (URISyntaxException e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (uri.getQuery() != null || uri.getFragment() != null || uri.getPath() == null) return false;
|
||||
|
||||
String it = uri.getPath();
|
||||
return it.matches("^/@[^/]+$") ||
|
||||
it.matches("^/@[^/]+/\\d+$") ||
|
||||
it.matches("^/users/\\w+$") ||
|
||||
it.matches("^/notice/[a-zA-Z0-9]+$") ||
|
||||
it.matches("^/objects/[-a-f0-9]+$") ||
|
||||
it.matches("^/notes/[a-z0-9]+$") ||
|
||||
it.matches("^/display/[-a-f0-9]+$") ||
|
||||
it.matches("^/profile/\\w+$") ||
|
||||
it.matches("^/p/\\w+/\\d+$") ||
|
||||
it.matches("^/\\w+$") ||
|
||||
it.matches("^/@[^/]+/statuses/[a-zA-Z0-9]+$") ||
|
||||
it.matches("^/o/[a-f0-9]+$");
|
||||
}
|
||||
|
||||
public static void openURL(Context context, String accountID, String url){
|
||||
Consumer<ProgressDialog> transformDialogForLookup = dialog -> {
|
||||
dialog.setTitle(R.string.loading_fediverse_resource_title);
|
||||
dialog.setButton(DialogInterface.BUTTON_NEGATIVE, context.getString(R.string.cancel), (d, which) -> d.cancel());
|
||||
dialog.setButton(DialogInterface.BUTTON_POSITIVE, context.getString(R.string.open_in_browser), (d, which) -> {
|
||||
d.cancel();
|
||||
launchWebBrowser(context, url);
|
||||
});
|
||||
};
|
||||
|
||||
Uri uri=Uri.parse(url);
|
||||
if(accountID!=null && "https".equals(uri.getScheme()) && AccountSessionManager.getInstance().getAccount(accountID).domain.equalsIgnoreCase(uri.getAuthority())){
|
||||
List<String> path=uri.getPathSegments();
|
||||
// Match URLs like https://mastodon.social/@Gargron/108132679274083591
|
||||
if(path.size()==2 && path.get(0).matches("^@[a-zA-Z0-9_]+$") && path.get(1).matches("^[0-9]+$")){
|
||||
List<String> path=uri.getPathSegments();
|
||||
if(accountID!=null && "https".equals(uri.getScheme())){
|
||||
if(path.size()==2 && path.get(0).matches("^@[a-zA-Z0-9_]+$") && path.get(1).matches("^[0-9]+$") && AccountSessionManager.getInstance().getAccount(accountID).domain.equalsIgnoreCase(uri.getAuthority())){
|
||||
new GetStatusByID(path.get(1))
|
||||
.setCallback(new Callback<>(){
|
||||
@Override
|
||||
@@ -769,11 +754,61 @@ public class UiUtils{
|
||||
launchWebBrowser(context, url);
|
||||
}
|
||||
})
|
||||
.wrapProgress((Activity)context, R.string.loading, true)
|
||||
.wrapProgress((Activity)context, R.string.loading, true, transformDialogForLookup)
|
||||
.exec(accountID);
|
||||
return;
|
||||
} else if (looksLikeMastodonUrl(url)) {
|
||||
new GetSearchResults(url, null, true)
|
||||
.setCallback(new Callback<>() {
|
||||
@Override
|
||||
public void onSuccess(SearchResults results) {
|
||||
Bundle args=new Bundle();
|
||||
args.putString("account", accountID);
|
||||
if (!results.statuses.isEmpty()) {
|
||||
args.putParcelable("status", Parcels.wrap(results.statuses.get(0)));
|
||||
Nav.go((Activity) context, ThreadFragment.class, args);
|
||||
} else if (!results.accounts.isEmpty()) {
|
||||
args.putParcelable("profileAccount", Parcels.wrap(results.accounts.get(0)));
|
||||
Nav.go((Activity) context, ProfileFragment.class, args);
|
||||
} else {
|
||||
launchWebBrowser(context, url);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(ErrorResponse error) {
|
||||
error.showToast(context);
|
||||
launchWebBrowser(context, url);
|
||||
}
|
||||
})
|
||||
.wrapProgress((Activity)context, R.string.loading, true, transformDialogForLookup)
|
||||
.exec(accountID);
|
||||
return;
|
||||
}
|
||||
}
|
||||
launchWebBrowser(context, url);
|
||||
}
|
||||
|
||||
public static void copyText(Context context, String text) {
|
||||
context.getSystemService(ClipboardManager.class).setPrimaryClip(ClipData.newPlainText(null, text));
|
||||
if(Build.VERSION.SDK_INT<Build.VERSION_CODES.TIRAMISU || UiUtils.isMIUI()){ // Android 13+ SystemUI shows its own thing when you put things into the clipboard
|
||||
Toast.makeText(context, R.string.text_copied, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) vibrator.vibrate(VibrationEffect.createOneShot(50, VibrationEffect.DEFAULT_AMPLITUDE));
|
||||
else vibrator.vibrate(50);
|
||||
}
|
||||
|
||||
private static String getSystemProperty(String key){
|
||||
try{
|
||||
Class<?> props=Class.forName("android.os.SystemProperties");
|
||||
Method get=props.getMethod("get", String.class);
|
||||
return (String)get.invoke(null, key);
|
||||
}catch(Exception ignore){}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static boolean isMIUI(){
|
||||
return !TextUtils.isEmpty(getSystemProperty("ro.miui.ui.version.code"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,6 +50,7 @@ public abstract class GithubSelfUpdater{
|
||||
}
|
||||
|
||||
public static class UpdateInfo{
|
||||
public String changelog;
|
||||
public String version;
|
||||
public long size;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="@color/bookmark_selected" android:state_selected="true"/>
|
||||
<item android:color="?bookmark_selected" android:state_selected="true"/>
|
||||
<item android:color="?android:textColorSecondary"/>
|
||||
</selector>
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="?colorSecondary"/>
|
||||
<item android:color="?colorGray50"/>
|
||||
</selector>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="@color/favorite_selected" android:state_selected="true"/>
|
||||
<item android:color="?favorite_selected" android:state_selected="true"/>
|
||||
<item android:color="?android:textColorSecondary"/>
|
||||
</selector>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="?colorWindowBackground"/>
|
||||
<solid android:color="?colorGray800"/>
|
||||
<corners android:radius="10dp"/>
|
||||
<padding android:top="16dp" android:left="16dp" android:right="16dp" android:bottom="16dp"/>
|
||||
</shape>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="@color/gray_25"/>
|
||||
<solid android:color="?colorGray25"/>
|
||||
<corners android:radius="10dp"/>
|
||||
<padding android:top="16dp" android:left="16dp" android:right="16dp" android:bottom="16dp"/>
|
||||
</shape>
|
||||
@@ -2,7 +2,7 @@
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@color/highlight_over_dark">
|
||||
<item>
|
||||
<shape android:shape="oval">
|
||||
<solid android:color="?colorSearchHint"/>
|
||||
<solid android:color="?colorGray600"/>
|
||||
</shape>
|
||||
</item>
|
||||
</ripple>
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item>
|
||||
<shape android:tint="@color/gray_800">
|
||||
<shape android:tint="?colorGray800">
|
||||
<solid android:color="#CC000000"/>
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
|
||||
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M12,22C6.49,22 2,17.51 2,12S6.49,2 12,2s10,4.04 10,9c0,3.31 -2.69,6 -6,6h-1.77c-0.28,0 -0.5,0.22 -0.5,0.5 0,0.12 0.05,0.23 0.13,0.33 0.41,0.47 0.64,1.06 0.64,1.67 0,1.38 -1.12,2.5 -2.5,2.5zM12,4c-4.41,0 -8,3.59 -8,8s3.59,8 8,8c0.28,0 0.5,-0.22 0.5,-0.5 0,-0.16 -0.08,-0.28 -0.14,-0.35 -0.41,-0.46 -0.63,-1.05 -0.63,-1.65 0,-1.38 1.12,-2.5 2.5,-2.5L16,15c2.21,0 4,-1.79 4,-4 0,-3.86 -3.59,-7 -8,-7z"/>
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M6.5,11.5m-1.5,0a1.5,1.5 0,1 1,3 0a1.5,1.5 0,1 1,-3 0"/>
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M9.5,7.5m-1.5,0a1.5,1.5 0,1 1,3 0a1.5,1.5 0,1 1,-3 0"/>
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M14.5,7.5m-1.5,0a1.5,1.5 0,1 1,3 0a1.5,1.5 0,1 1,-3 0"/>
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M17.5,11.5m-1.5,0a1.5,1.5 0,1 1,3 0a1.5,1.5 0,1 1,-3 0"/>
|
||||
</vector>
|
||||
@@ -1,3 +1,3 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="24" android:viewportHeight="24">
|
||||
<path android:pathData="M20.998 6.25c0-1.795-1.454-3.25-3.25-3.25H6.25C4.455 3 3 4.455 3 6.25v11.499c0 1.795 1.455 3.25 3.25 3.25h4.914l0.356-1.424 0.02-0.076H6.25c-0.204 0-0.4-0.035-0.582-0.1l5.807-5.685 0.083-0.07c0.291-0.213 0.7-0.19 0.966 0.07l2.079 2.036 1.06-1.06-2.09-2.048-0.128-0.116c-0.878-0.738-2.187-0.7-3.02 0.116l-5.822 5.7C4.536 18.157 4.5 17.957 4.5 17.75V6.25c0-0.966 0.783-1.75 1.75-1.75h11.499c0.966 0 1.75 0.784 1.75 1.75v4.983c0.478-0.19 0.993-0.264 1.5-0.22V6.25zm-3.495 2.502c0-1.244-1.008-2.252-2.252-2.252-1.244 0-2.252 1.008-2.252 2.252 0 1.243 1.008 2.252 2.252 2.252 1.244 0 2.252-1.009 2.252-2.252zm-3.004 0C14.499 8.336 14.836 8 15.251 8s0.752 0.336 0.752 0.752c0 0.415-0.337 0.752-0.752 0.752s-0.752-0.337-0.752-0.752zm4.6 3.917l-5.902 5.901c-0.345 0.345-0.589 0.776-0.707 1.248l-0.457 1.83c-0.2 0.797 0.522 1.518 1.318 1.319l1.83-0.458c0.472-0.118 0.904-0.362 1.248-0.706L22.33 15.9c0.892-0.893 0.892-2.34 0-3.232-0.893-0.893-2.34-0.893-3.233 0z" android:fillColor="@color/gray_25"/>
|
||||
<path android:pathData="M20.998 6.25c0-1.795-1.454-3.25-3.25-3.25H6.25C4.455 3 3 4.455 3 6.25v11.499c0 1.795 1.455 3.25 3.25 3.25h4.914l0.356-1.424 0.02-0.076H6.25c-0.204 0-0.4-0.035-0.582-0.1l5.807-5.685 0.083-0.07c0.291-0.213 0.7-0.19 0.966 0.07l2.079 2.036 1.06-1.06-2.09-2.048-0.128-0.116c-0.878-0.738-2.187-0.7-3.02 0.116l-5.822 5.7C4.536 18.157 4.5 17.957 4.5 17.75V6.25c0-0.966 0.783-1.75 1.75-1.75h11.499c0.966 0 1.75 0.784 1.75 1.75v4.983c0.478-0.19 0.993-0.264 1.5-0.22V6.25zm-3.495 2.502c0-1.244-1.008-2.252-2.252-2.252-1.244 0-2.252 1.008-2.252 2.252 0 1.243 1.008 2.252 2.252 2.252 1.244 0 2.252-1.009 2.252-2.252zm-3.004 0C14.499 8.336 14.836 8 15.251 8s0.752 0.336 0.752 0.752c0 0.415-0.337 0.752-0.752 0.752s-0.752-0.337-0.752-0.752zm4.6 3.917l-5.902 5.901c-0.345 0.345-0.589 0.776-0.707 1.248l-0.457 1.83c-0.2 0.797 0.522 1.518 1.318 1.319l1.83-0.458c0.472-0.118 0.904-0.362 1.248-0.706L22.33 15.9c0.892-0.893 0.892-2.34 0-3.232-0.893-0.893-2.34-0.893-3.233 0z" android:fillColor="?colorGray25"/>
|
||||
</vector>
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="24" android:viewportHeight="24">
|
||||
<path android:pathData="M12 2c5.43 0 9.848 4.327 9.996 9.72L22 12v1.525c-0.014 2.198-1.8 3.975-4 3.975-1.446 0-2.712-0.767-3.415-1.916-0.8 0.834-1.882 1.35-3.085 1.35-2.515 0-4.5-2.25-4.5-4.967C7 9.25 8.985 7 11.5 7c0.937 0 1.8 0.312 2.514 0.844C14.087 7.366 14.501 7 15 7c0.513 0 0.935 0.386 0.993 0.883L16 8v5.5c0 1.105 0.895 2 2 2 1.054 0 1.918-0.816 1.994-1.85L20 13.474V12c0-4.418-3.582-8-8-8s-8 3.582-8 8 3.582 8 8 8c0.921 0 1.82-0.155 2.67-0.456 0.52-0.184 1.092 0.089 1.276 0.61 0.184 0.52-0.089 1.091-0.61 1.276C14.275 21.806 13.15 22 12 22 6.477 22 2 17.523 2 12S6.477 2 12 2zm-0.35 7.005L11.5 9C10.15 9 9 10.302 9 11.967c0 1.664 1.15 2.966 2.5 2.966 1.3 0 2.415-1.207 2.495-2.783L14 11.93c-0.017-1.586-1.075-2.834-2.35-2.925L11.5 9l0.15 0.005z" android:fillColor="@color/fluent_default_icon_tint"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="20dp"
|
||||
android:height="20dp"
|
||||
android:viewportWidth="20"
|
||||
android:viewportHeight="20">
|
||||
<path
|
||||
android:pathData="M7.5,7C7.224,7 7,7.224 7,7.5C7,7.776 7.224,8 7.5,8H12.5C12.776,8 13,7.776 13,7.5C13,7.224 12.776,7 12.5,7H7.5ZM7,10.5C7,10.224 7.224,10 7.5,10H12.5C12.776,10 13,10.224 13,10.5C13,10.776 12.776,11 12.5,11H7.5C7.224,11 7,10.776 7,10.5ZM7.5,13C7.224,13 7,13.224 7,13.5C7,13.776 7.224,14 7.5,14H9.5C9.776,14 10,13.776 10,13.5C10,13.224 9.776,13 9.5,13H7.5ZM6.5,2C6.224,2 6,2.224 6,2.5V3H5.5C4.672,3 4,3.672 4,4.5V16.5C4,17.328 4.672,18 5.5,18H11.5C11.633,18 11.76,17.947 11.854,17.854L15.854,13.854C15.947,13.76 16,13.633 16,13.5V4.5C16,3.672 15.328,3 14.5,3H14V2.5C14,2.224 13.776,2 13.5,2C13.224,2 13,2.224 13,2.5V3H10.5V2.5C10.5,2.224 10.276,2 10,2C9.724,2 9.5,2.224 9.5,2.5V3H7V2.5C7,2.224 6.776,2 6.5,2ZM14.5,4C14.776,4 15,4.224 15,4.5V13H12.5C11.672,13 11,13.672 11,14.5V17H5.5C5.224,17 5,16.776 5,16.5V4.5C5,4.224 5.224,4 5.5,4H14.5ZM14.293,14L12,16.293V14.5C12,14.224 12.224,14 12.5,14H14.293Z"
|
||||
android:fillColor="#212121"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,3 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="24" android:viewportHeight="24">
|
||||
<path android:pathData="M10.987 2.89c0.077-0.408-0.19-0.8-0.598-0.877-0.407-0.077-0.799 0.19-0.876 0.598L8.494 7.998 3.75 8C3.335 8 3 8.336 3 8.75 3 9.166 3.336 9.5 3.75 9.5l4.46-0.002-0.946 5L2.75 14.5C2.335 14.5 2 14.836 2 15.25 2 15.665 2.336 16 2.75 16l4.23-0.002-0.967 5.116c-0.077 0.407 0.19 0.8 0.598 0.876 0.407 0.077 0.799-0.19 0.876-0.598l1.02-5.395 5.474-0.002-0.968 5.119c-0.077 0.407 0.19 0.8 0.598 0.876 0.407 0.077 0.799-0.19 0.876-0.598l1.021-5.398 4.742-0.002c0.415 0 0.75-0.336 0.75-0.75 0-0.415-0.336-0.75-0.75-0.75l-4.458 0.002 0.946-5 4.512-0.002c0.415 0 0.75-0.336 0.75-0.75s-0.336-0.75-0.75-0.75l-4.23 0.002 0.966-5.104c0.077-0.408-0.19-0.8-0.598-0.877-0.407-0.077-0.799 0.19-0.876 0.598l-1.018 5.384-5.474 0.002 0.966-5.107zm-1.25 6.608l5.474-0.003-0.946 5-5.474 0.002 0.946-5z" android:fillColor="@color/fluent_default_icon_tint"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,3 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="24" android:viewportHeight="24">
|
||||
<path android:pathData="M11 17.5c0-1.289 0.376-2.49 1.023-3.5h-7.77c-1.242 0-2.25 1.007-2.25 2.25v0.919c0 0.572 0.18 1.13 0.511 1.596C4.056 20.929 6.58 22 10 22c0.932 0 1.797-0.08 2.592-0.24C11.601 20.62 11 19.13 11 17.5zm4-10.495c0-2.761-2.238-5-5-5-2.761 0-5 2.239-5 5s2.239 5 5 5c2.762 0 5-2.239 5-5zM23 17.5c0-3.037-2.462-5.5-5.5-5.5-3.037 0-5.5 2.463-5.5 5.5 0 3.038 2.463 5.5 5.5 5.5 3.038 0 5.5-2.462 5.5-5.5zm-5.59-3.492L17.5 14l0.09 0.008c0.204 0.037 0.365 0.198 0.402 0.402L18 14.5V17h2.504l0.09 0.008c0.204 0.037 0.365 0.198 0.402 0.402l0.008 0.09-0.008 0.09c-0.037 0.204-0.198 0.365-0.402 0.402L20.504 18H18v2.5l-0.008 0.09c-0.037 0.204-0.198 0.365-0.402 0.402L17.5 21l-0.09-0.008c-0.204-0.037-0.364-0.198-0.402-0.402L17 20.5V18h-2.496l-0.09-0.008c-0.204-0.037-0.365-0.198-0.402-0.402l-0.008-0.09 0.008-0.09c0.037-0.204 0.198-0.365 0.402-0.402L14.504 17H17v-2.5l0.008-0.09c0.038-0.204 0.198-0.365 0.402-0.402z" android:fillColor="@color/fluent_default_icon_tint"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,3 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:autoMirrored="true" android:width="24dp" android:height="24dp" android:viewportWidth="24" android:viewportHeight="24">
|
||||
<path android:pathData="M5.997 12c0 0.38 0.282 0.694 0.647 0.743l0.102 0.007H19.44l-2.216 2.22c-0.266 0.266-0.29 0.683-0.073 0.976l0.073 0.084c0.266 0.267 0.682 0.29 0.975 0.073l0.084-0.073 3.497-3.5c0.267-0.266 0.29-0.683 0.073-0.976L21.78 11.47l-3.497-3.5c-0.292-0.293-0.767-0.293-1.06 0-0.265 0.266-0.29 0.683-0.072 0.976l0.073 0.084 2.216 2.22H6.746c-0.414 0-0.75 0.336-0.75 0.75zM2 12c0 2.761 2.237 5 4.996 5 2.143 0 3.972-1.351 4.68-3.25h-1.651C9.42 14.797 8.29 15.5 6.995 15.5 5.066 15.5 3.5 13.933 3.5 12s1.565-3.5 3.497-3.5c1.294 0 2.425 0.704 3.03 1.75h1.651C10.968 8.352 9.14 7 6.996 7 4.236 7 2 9.239 2 12z" android:fillColor="@color/fluent_default_icon_tint"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,3 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="24" android:viewportHeight="24">
|
||||
<path android:pathData="M15.25 13c0.967 0 1.75 0.784 1.75 1.75v4.5c0 0.966-0.783 1.75-1.75 1.75H3.75C2.785 21 2 20.216 2 19.25v-4.5C2 13.784 2.785 13 3.75 13h11.5zM21 14.899v5.351c0 0.414-0.335 0.75-0.75 0.75-0.38 0-0.693-0.282-0.743-0.648L19.5 20.25v-5.338C19.732 14.969 19.975 15 20.226 15c0.268 0 0.527-0.035 0.775-0.101zM15.25 14.5H3.75c-0.138 0-0.25 0.112-0.25 0.25v4.5c0 0.138 0.112 0.25 0.25 0.25h11.5c0.139 0 0.25-0.112 0.25-0.25v-4.5c0-0.138-0.111-0.25-0.25-0.25zm5-4.408c1.054 0 1.908 0.854 1.908 1.908 0 1.054-0.854 1.908-1.908 1.908-1.053 0-1.908-0.854-1.908-1.908 0-1.054 0.855-1.908 1.908-1.908zM15.246 3c0.967 0 1.75 0.784 1.75 1.75v4.5c0 0.966-0.783 1.75-1.75 1.75h-11.5c-0.966 0-1.75-0.784-1.75-1.75v-4.5c0-0.918 0.707-1.671 1.607-1.744L3.746 3h11.5zm0 1.5h-11.5L3.69 4.507C3.579 4.533 3.496 4.632 3.496 4.75v4.5c0 0.138 0.112 0.25 0.25 0.25h11.5c0.138 0 0.25-0.112 0.25-0.25v-4.5c0-0.138-0.112-0.25-0.25-0.25zM20.25 3c0.38 0 0.694 0.282 0.744 0.648L21 3.75v5.351C20.754 9.035 20.495 9 20.227 9c-0.25 0-0.494 0.03-0.726 0.088V3.75C19.5 3.336 19.836 3 20.25 3z" android:fillColor="@color/fluent_default_icon_tint"/>
|
||||
</vector>
|
||||
@@ -5,5 +5,5 @@
|
||||
android:viewportHeight="4">
|
||||
<path
|
||||
android:pathData="M4,2C4,3.1046 3.1046,4 2,4C0.8954,4 0,3.1046 0,2C0,0.8954 0.8954,0 2,0C3.1046,0 4,0.8954 4,2ZM10,2C10,3.1046 9.1046,4 8,4C6.8954,4 6,3.1046 6,2C6,0.8954 6.8954,0 8,0C9.1046,0 10,0.8954 10,2ZM14,4C15.1046,4 16,3.1046 16,2C16,0.8954 15.1046,0 14,0C12.8954,0 12,0.8954 12,2C12,3.1046 12.8954,4 14,4Z"
|
||||
android:fillColor="@color/gray_500"/>
|
||||
android:fillColor="?colorGray500"/>
|
||||
</vector>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<corners android:radius="27dp"/>
|
||||
<stroke android:width="2dp" android:color="@color/gray_25"/>
|
||||
<stroke android:width="2dp" android:color="?colorGray25"/>
|
||||
</shape>
|
||||
@@ -2,14 +2,14 @@
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:gravity="center_vertical">
|
||||
<shape>
|
||||
<solid android:color="@color/gray_500"/>
|
||||
<solid android:color="?colorGray500"/>
|
||||
<corners android:radius="1dp"/>
|
||||
<size android:height="2dp"/>
|
||||
</shape>
|
||||
</item>
|
||||
<item android:gravity="center_vertical" android:id="@android:id/secondaryProgress">
|
||||
<clip>
|
||||
<shape android:tint="@color/gray_50">
|
||||
<shape android:tint="?colorGray50">
|
||||
<solid android:color="#40000000"/>
|
||||
<corners android:radius="1dp"/>
|
||||
<size android:height="2dp"/>
|
||||
@@ -19,7 +19,7 @@
|
||||
<item android:gravity="center_vertical" android:id="@android:id/progress">
|
||||
<clip>
|
||||
<shape>
|
||||
<solid android:color="@color/gray_50"/>
|
||||
<solid android:color="?colorGray50"/>
|
||||
<corners android:radius="1dp"/>
|
||||
<size android:height="2dp"/>
|
||||
</shape>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
|
||||
<solid android:color="@color/gray_25"/>
|
||||
<solid android:color="?colorGray25"/>
|
||||
<size android:width="18dp" android:height="18dp"/>
|
||||
</shape>
|
||||
@@ -6,7 +6,7 @@
|
||||
android:shape="ring"
|
||||
android:thickness="4dp"
|
||||
android:useLevel="true">
|
||||
<solid android:color="@color/gray_100"/>
|
||||
<solid android:color="?colorGray100"/>
|
||||
</shape>
|
||||
</item>
|
||||
</layer-list>
|
||||
@@ -83,7 +83,7 @@
|
||||
android:layout_alignParentTop="true"
|
||||
android:src="@drawable/ic_fluent_dismiss_24_filled"
|
||||
android:contentDescription="@string/cancel"
|
||||
android:tint="@color/gray_100"
|
||||
android:tint="?colorGray100"
|
||||
android:background="@drawable/bg_upload_progress"/>
|
||||
|
||||
<ProgressBar
|
||||
@@ -104,7 +104,7 @@
|
||||
android:layout_height="16dp"
|
||||
android:layout_below="@id/retry_or_cancel_upload"
|
||||
android:layout_marginTop="16dp"
|
||||
android:textColor="@color/gray_200"
|
||||
android:textColor="?colorGray200"
|
||||
android:textSize="14dp"
|
||||
android:gravity="center_horizontal"
|
||||
android:singleLine="true"
|
||||
@@ -119,7 +119,7 @@
|
||||
android:layout_height="32dp"
|
||||
android:layout_below="@id/state_title"
|
||||
android:includeFontPadding="false"
|
||||
android:textColor="@color/gray_200"
|
||||
android:textColor="?colorGray200"
|
||||
android:gravity="center_horizontal|top"
|
||||
android:lines="2"
|
||||
android:maxLines="2"
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
android:layout_margin="16dp"
|
||||
android:paddingRight="8dp"
|
||||
android:paddingLeft="8dp"
|
||||
android:textColor="@color/gray_50t"
|
||||
android:textColor="?colorGray50t"
|
||||
android:textAllCaps="true"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:textSize="14dp"
|
||||
@@ -256,11 +256,49 @@
|
||||
android:textColor="?android:textColorSecondary"
|
||||
tools:text="\@Gargron" />
|
||||
|
||||
<org.joinmastodon.android.ui.views.LinkedTextView
|
||||
<FrameLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/note_edit_wrap"
|
||||
android:layout_below="@id/username"
|
||||
android:layout_marginTop="0dp"
|
||||
android:padding="2dp">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/note_edit"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingVertical="16dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:inputType="textMultiLine|textCapSentences"
|
||||
android:singleLine="false"
|
||||
android:drawableStart="@drawable/ic_fluent_notepad_20_regular"
|
||||
android:drawablePadding="12dp"
|
||||
android:drawableTint="?android:textColorSecondary"
|
||||
android:background="@drawable/bg_search_field"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:elevation="0dp"
|
||||
android:hint="@string/sk_personal_note"/>
|
||||
|
||||
<!-- <ImageButton-->
|
||||
<!-- android:id="@+id/note_edit_confirm"-->
|
||||
<!-- android:layout_width="wrap_content"-->
|
||||
<!-- android:layout_height="wrap_content"-->
|
||||
<!-- android:src="@drawable/ic_fluent_checkmark_24_regular"-->
|
||||
<!-- android:backgroundTint="#00000000"-->
|
||||
<!-- android:layout_marginTop="2dp"-->
|
||||
<!-- android:layout_marginEnd="10dp"-->
|
||||
<!-- android:layout_gravity="right|center_vertical" />-->
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<org.joinmastodon.android.ui.views.LinkedTextView
|
||||
android:id="@+id/bio"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/username"
|
||||
android:layout_below="@id/note_edit_wrap"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:layout_marginRight="16dp"
|
||||
@@ -331,10 +369,11 @@
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginBottom="24dp"
|
||||
android:background="@drawable/bg_fab"
|
||||
android:tint="@color/fab_icon"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_edit_34"
|
||||
android:stateListAnimator="@animator/fab_shadow"
|
||||
android:src="@drawable/ic_edit_34"/>
|
||||
android:tint="@color/fab_icon"
|
||||
tools:ignore="SpeakableTextPresentCheck,SpeakableTextPresentCheck" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
46
mastodon/src/main/res/layout/item_settings_button.xml
Normal file
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="48dp"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:gravity="center_vertical"
|
||||
android:layoutDirection="locale">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/icon"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginEnd="32dp"
|
||||
android:importantForAccessibility="no"
|
||||
android:tint="?android:textColorPrimary"
|
||||
tools:src="@drawable/ic_fluent_color_24_regular"/>
|
||||
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:gravity="center_vertical"
|
||||
android:textColor="?android:textColorPrimary"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="32dp"
|
||||
android:background="@drawable/bg_inline_button"
|
||||
android:elevation="0dp"
|
||||
android:ellipsize="middle"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:singleLine="true"
|
||||
android:stateListAnimator="@null"
|
||||
android:textColor="?android:textColorPrimary"
|
||||
android:textSize="16sp"
|
||||
tools:text="@string/sk_color_palette_pink" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -15,7 +15,7 @@
|
||||
android:layout_marginEnd="32dp"
|
||||
android:importantForAccessibility="no"
|
||||
android:tint="?android:textColorPrimary"
|
||||
tools:src="@drawable/ic_color_theme_preference"/>
|
||||
tools:src="@drawable/ic_fluent_color_24_regular"/>
|
||||
|
||||
|
||||
<TextView
|
||||
@@ -27,7 +27,7 @@
|
||||
android:textSize="16sp"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:text="@string/sk_settings_color_picker"/>
|
||||
android:text="@string/sk_settings_color_palette"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/color_picker_button"
|
||||
|
||||
@@ -7,69 +7,97 @@
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="64dp"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingStart="16dp"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/bg_settings_update"
|
||||
android:orientation="horizontal">
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/bg_settings_update"
|
||||
android:gravity="center_vertical"
|
||||
android:minHeight="64dp"
|
||||
android:orientation="horizontal"
|
||||
android:paddingStart="16dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_weight="1"
|
||||
android:textAppearance="@style/m3_body_medium"
|
||||
tools:text="@string/sk_update_available" />
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<Button
|
||||
android:id="@+id/button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical|end"
|
||||
android:background="?android:selectableItemBackground"
|
||||
android:paddingLeft="16dp"
|
||||
android:paddingRight="16dp"
|
||||
android:stateListAnimator="@null"
|
||||
android:textAllCaps="true"
|
||||
android:textColor="?android:textColorPrimary"
|
||||
android:textSize="14dp"
|
||||
tools:text="@string/install_update" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/cancel_btn"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_gravity="end|center_vertical"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:background="@drawable/bg_update_download_progress"
|
||||
android:contentDescription="@string/cancel"
|
||||
android:src="@drawable/ic_fluent_dismiss_16_filled"
|
||||
android:tint="?colorSearchHint"
|
||||
android:visibility="gone" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/progress"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_gravity="end|center_vertical"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:indeterminate="false"
|
||||
android:indeterminateOnly="false"
|
||||
android:max="1000"
|
||||
android:padding="0dp"
|
||||
android:progressDrawable="@drawable/update_progress"
|
||||
android:visibility="gone" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text"
|
||||
android:layout_width="0dp"
|
||||
android:id="@+id/changelog_header"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="?android:textColorPrimary"
|
||||
android:textStyle="bold"
|
||||
android:textSize="16dp"
|
||||
android:paddingStart="16dp"
|
||||
android:paddingBottom="8dp"
|
||||
android:text="@string/sk_changelog" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/changelog"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:textAppearance="@style/m3_body_medium"
|
||||
tools:text="@string/sk_update_available"/>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<Button
|
||||
android:id="@+id/button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical|end"
|
||||
android:background="?android:selectableItemBackground"
|
||||
android:textColor="?android:textColorPrimary"
|
||||
android:textAllCaps="true"
|
||||
android:textSize="14dp"
|
||||
android:paddingLeft="16dp"
|
||||
android:paddingRight="16dp"
|
||||
android:stateListAnimator="@null"
|
||||
tools:text="@string/install_update"/>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/cancel_btn"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_gravity="end|center_vertical"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:background="@drawable/bg_update_download_progress"
|
||||
android:tint="?colorSearchHint"
|
||||
android:contentDescription="@string/cancel"
|
||||
android:visibility="gone"
|
||||
android:src="@drawable/ic_fluent_dismiss_16_filled"/>
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/progress"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_gravity="end|center_vertical"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:progressDrawable="@drawable/update_progress"
|
||||
android:max="1000"
|
||||
android:padding="0dp"
|
||||
android:visibility="gone"
|
||||
android:indeterminateOnly="false"
|
||||
android:indeterminate="false"/>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
android:paddingStart="16dp"
|
||||
android:paddingBottom="16dp"
|
||||
android:text="Changelog" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</FrameLayout>
|
||||
@@ -12,7 +12,6 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:drawableLeft="@drawable/ic_fluent_people_community_24_regular"
|
||||
android:drawableTint="?android:textColorSecondary"
|
||||
android:drawablePadding="16dp"
|
||||
android:textAppearance="@style/m3_title_medium"
|
||||
@@ -26,6 +25,7 @@
|
||||
android:clickable="false"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:visibility="gone"
|
||||
android:paddingRight="16dp"/>
|
||||
|
||||
<!-- <ImageView-->
|
||||
@@ -55,7 +55,7 @@
|
||||
android:layout_marginRight="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:src="@drawable/ic_pause_24"
|
||||
android:tint="@color/gray_50"
|
||||
android:tint="?colorGray50"
|
||||
android:contentDescription="@string/pause"
|
||||
android:background="?android:selectableItemBackgroundBorderless"/>
|
||||
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:id="@+id/m3_color" android:title="@string/sk_color_theme_material3"/>
|
||||
<item android:id="@+id/purple_color" android:title="@string/sk_color_theme_purple"/>
|
||||
<item android:id="@+id/pink_color" android:title="@string/sk_color_theme_pink"/>
|
||||
<item android:id="@+id/green_color" android:title="@string/sk_color_theme_green"/>
|
||||
<item android:id="@+id/blue_color" android:title="@string/sk_color_theme_blue"/>
|
||||
<item android:id="@+id/orange_color" android:title="@string/sk_color_theme_brown"/>
|
||||
<item android:id="@+id/yellow_color" android:title="@string/sk_color_theme_yellow"/>
|
||||
<item android:id="@+id/red_color" android:title="@string/sk_color_theme_red"/>
|
||||
<item android:id="@+id/m3_color" android:title="@string/sk_color_palette_material3"/>
|
||||
<item android:id="@+id/purple_color" android:title="@string/sk_color_palette_purple"/>
|
||||
<item android:id="@+id/pink_color" android:title="@string/sk_color_palette_pink"/>
|
||||
<item android:id="@+id/green_color" android:title="@string/sk_color_palette_green"/>
|
||||
<item android:id="@+id/blue_color" android:title="@string/sk_color_palette_blue"/>
|
||||
<item android:id="@+id/brown_color" android:title="@string/sk_color_palette_brown"/>
|
||||
<item android:id="@+id/yellow_color" android:title="@string/sk_color_palette_yellow"/>
|
||||
<item android:id="@+id/red_color" android:title="@string/sk_color_palette_red"/>
|
||||
<item android:id="@+id/nord_color" android:title="@string/sk_color_palette_nord"/>
|
||||
</menu>
|
||||
@@ -2,5 +2,6 @@
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:id="@+id/bookmarks" android:title="@string/bookmarks" android:icon="@drawable/ic_fluent_bookmark_24_regular" android:showAsAction="always"/>
|
||||
<item android:id="@+id/favorites" android:title="@string/your_favorites" android:icon="@drawable/ic_fluent_star_24_regular" android:showAsAction="always"/>
|
||||
<item android:id="@+id/followed_hashtags" android:title="@string/sk_hashtags_you_follow" android:icon="@drawable/ic_fluent_number_symbol_24_regular" android:showAsAction="always"/>
|
||||
<item android:id="@+id/share" android:title="@string/share_user" android:icon="@drawable/ic_fluent_share_24_regular" android:showAsAction="always"/>
|
||||
</menu>
|
||||
@@ -39,7 +39,7 @@
|
||||
<string name="sk_settings_contribute">Zu Moshidon beitragen</string>
|
||||
<string name="sk_settings_show_federated_timeline">Föderierte Timeline anzeigen</string>
|
||||
<string name="sk_notify_posts">Beitrags-Benachrichtigungen</string>
|
||||
<string name="sk_settings_color_palette">Farbschema</string>
|
||||
<string name="sk_settings_color_picker">Farbschema</string>
|
||||
<string name="sk_color_palette_pink">Pink</string>
|
||||
<string name="sk_color_palette_purple">Violett</string>
|
||||
<string name="sk_color_palette_green">Grün</string>
|
||||
@@ -59,8 +59,8 @@
|
||||
<string name="sk_welcome_title">Willkommen!</string>
|
||||
<string name="sk_example_domain">beispiel.social</string>
|
||||
<string name="sk_welcome_text">Der Hai sagt Hi! Um anzufangen, bitte gib den Domain-Namen deiner Heim-Instanz unten ein.</string>
|
||||
<string name="sk_color_palette_material3">System</string>
|
||||
<string name="sk_color_palette_red">Rot</string>
|
||||
<string name="sk_color_theme_material3">System</string>
|
||||
<string name="sk_color_theme_red">Rot</string>
|
||||
<string name="sk_settings_profile">Profil einrichten</string>
|
||||
<string name="sk_settings_posting">Einstellungen für Beiträge</string>
|
||||
<string name="sk_settings_filters">Filter konfigurieren</string>
|
||||
|
||||
@@ -40,13 +40,13 @@
|
||||
<string name="sk_settings_app_version">Moshidon v%1$s (%2$d)</string>
|
||||
<string name="sk_notification_type_status">Publicaciones</string>
|
||||
<string name="sk_notify_posts">Publicar notificaciones</string>
|
||||
<string name="sk_settings_color_palette">Colores para los temas</string>
|
||||
<string name="sk_color_palette_pink">Rosa</string>
|
||||
<string name="sk_color_palette_purple">Violeta</string>
|
||||
<string name="sk_color_palette_green">Verde</string>
|
||||
<string name="sk_color_palette_blue">Azul</string>
|
||||
<string name="sk_color_palette_brown">Marrón</string>
|
||||
<string name="sk_color_palette_yellow">Amarillo</string>
|
||||
<string name="sk_settings_color_picker">Colores para los temas</string>
|
||||
<string name="sk_color_theme_pink">Rosa</string>
|
||||
<string name="sk_color_theme_purple">Violeta</string>
|
||||
<string name="sk_color_theme_green">Verde</string>
|
||||
<string name="sk_color_theme_blue">Azul</string>
|
||||
<string name="sk_color_theme_brown">Marrón</string>
|
||||
<string name="sk_color_theme_yellow">Amarillo</string>
|
||||
<string name="sk_poll_allow_multiple">Permitir respuesta múltiple</string>
|
||||
<string name="sk_translate_post">Traducir</string>
|
||||
<string name="sk_translate_show_original">Mostrar original</string>
|
||||
@@ -59,6 +59,6 @@
|
||||
<string name="sk_welcome_text">¡El tiburón te saluda! Para empezar, introduzca a continuación el nombre del dominio de su instancia de origen.</string>
|
||||
<string name="sk_example_domain">example.social</string>
|
||||
<string name="sk_welcome_title">¡Bienvenidos!</string>
|
||||
<string name="sk_color_palette_material3">Sistema</string>
|
||||
<string name="sk_color_palette_red">Rojo</string>
|
||||
<string name="sk_color_theme_material3">Sistema</string>
|
||||
<string name="sk_color_theme_red">Rojo</string>
|
||||
</resources>
|
||||
@@ -40,13 +40,13 @@
|
||||
<string name="sk_federated_timeline_info_banner">Ce sont les messages les plus récents des membres de votre fédération.</string>
|
||||
<string name="sk_notification_type_status">Messages</string>
|
||||
<string name="sk_notify_posts">Notifications des messages</string>
|
||||
<string name="sk_color_palette_pink">Rose</string>
|
||||
<string name="sk_color_palette_purple">Violet</string>
|
||||
<string name="sk_color_palette_green">Vert</string>
|
||||
<string name="sk_color_palette_blue">Bleu</string>
|
||||
<string name="sk_color_palette_brown">Marron</string>
|
||||
<string name="sk_color_palette_yellow">Jaune</string>
|
||||
<string name="sk_settings_color_palette">Couleur d\'accentuation</string>
|
||||
<string name="sk_color_theme_pink">Rose</string>
|
||||
<string name="sk_color_theme_purple">Violet</string>
|
||||
<string name="sk_color_theme_green">Vert</string>
|
||||
<string name="sk_color_theme_blue">Bleu</string>
|
||||
<string name="sk_color_theme_brown">Marron</string>
|
||||
<string name="sk_color_theme_yellow">Jaune</string>
|
||||
<string name="sk_settings_color_picker">Couleur d\'accentuation</string>
|
||||
<string name="sk_poll_allow_multiple">Autoriser plusieurs choix</string>
|
||||
<string name="sk_translate_post">Traduire</string>
|
||||
<string name="sk_translate_show_original">Afficher l\'original</string>
|
||||
@@ -59,6 +59,6 @@
|
||||
<string name="sk_example_domain">exemple.social</string>
|
||||
<string name="sk_welcome_title">Bienvenue !</string>
|
||||
<string name="sk_welcome_text">Le requin vous salue ! Pour commencer, veuillez entrer le nom de domaine de votre instance personnelle ci-dessous.</string>
|
||||
<string name="sk_color_palette_material3">Système</string>
|
||||
<string name="sk_color_palette_red">Rouge</string>
|
||||
<string name="sk_color_theme_material3">Système</string>
|
||||
<string name="sk_color_theme_red">Rouge</string>
|
||||
</resources>
|
||||
@@ -40,25 +40,25 @@
|
||||
<string name="sk_settings_show_federated_timeline">Tampilkan lini masa federasi</string>
|
||||
<string name="sk_notification_type_status">Kiriman</string>
|
||||
<string name="sk_notify_posts">Notifikasi kiriman</string>
|
||||
<string name="sk_settings_color_palette">Warna tema</string>
|
||||
<string name="sk_color_palette_pink">Merah Muda</string>
|
||||
<string name="sk_color_palette_purple">Ungu</string>
|
||||
<string name="sk_color_palette_green">Hijau</string>
|
||||
<string name="sk_color_palette_blue">Biru</string>
|
||||
<string name="sk_color_palette_brown">Cokelat</string>
|
||||
<string name="sk_color_palette_yellow">Kuning</string>
|
||||
<string name="sk_settings_color_picker">Warna tema</string>
|
||||
<string name="sk_color_theme_pink">Merah Muda</string>
|
||||
<string name="sk_color_theme_purple">Ungu</string>
|
||||
<string name="sk_color_theme_green">Hijau</string>
|
||||
<string name="sk_color_theme_blue">Biru</string>
|
||||
<string name="sk_color_theme_brown">Cokelat</string>
|
||||
<string name="sk_color_theme_yellow">Kuning</string>
|
||||
<string name="sk_poll_allow_multiple">Perbolehkan beberapa pilihan</string>
|
||||
<string name="sk_clear_recent_languages">Hapus bahasa terkini yang digunakan</string>
|
||||
<string name="sk_welcome_title">Selamat datang!</string>
|
||||
<string name="sk_confirm_clear_recent_languages">Apakah Anda yakin ingin menghapus bahasa terkini yang Anda gunakan\?</string>
|
||||
<string name="sk_color_palette_material3">Sistem</string>
|
||||
<string name="sk_color_theme_material3">Sistem</string>
|
||||
<string name="sk_available_languages">Bahasa yang tersedia</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_translate_post">Terjemahkan</string>
|
||||
<string name="sk_translate_show_original">Tampilkan yang asli</string>
|
||||
<string name="sk_post_language">Bahasa: %s</string>
|
||||
<string name="sk_example_domain">contoh.social</string>
|
||||
<string name="sk_color_palette_red">Merah</string>
|
||||
<string name="sk_color_theme_red">Merah</string>
|
||||
<string name="sk_translated_using">Diterjemahkan menggunakan %s</string>
|
||||
<string name="sk_welcome_text">Hiu menyapamu! Untuk memulai, silakan memasukkan nama domain instansi Anda di bawah.</string>
|
||||
</resources>
|
||||
@@ -39,13 +39,13 @@
|
||||
<string name="sk_settings_show_federated_timeline">연합 타임라인 표시</string>
|
||||
<string name="sk_notification_type_status">게시물</string>
|
||||
<string name="sk_notify_posts">게시물 알림</string>
|
||||
<string name="sk_settings_color_palette">테마 색상</string>
|
||||
<string name="sk_color_palette_pink">분홍색</string>
|
||||
<string name="sk_color_palette_purple">보라색</string>
|
||||
<string name="sk_color_palette_green">초록색</string>
|
||||
<string name="sk_color_palette_blue">파란색</string>
|
||||
<string name="sk_color_palette_brown">갈색</string>
|
||||
<string name="sk_color_palette_yellow">노란색</string>
|
||||
<string name="sk_settings_color_picker">테마 색상</string>
|
||||
<string name="sk_color_theme_pink">분홍색</string>
|
||||
<string name="sk_color_theme_purple">보라색</string>
|
||||
<string name="sk_color_theme_green">초록색</string>
|
||||
<string name="sk_color_theme_blue">파란색</string>
|
||||
<string name="sk_color_theme_brown">갈색</string>
|
||||
<string name="sk_color_theme_yellow">노란색</string>
|
||||
<string name="sk_settings_contribute">Moshidon에 기여</string>
|
||||
<string name="sk_poll_allow_multiple">다중 선택 허용</string>
|
||||
<string name="sk_translate_post">번역하기</string>
|
||||
@@ -59,6 +59,6 @@
|
||||
<string name="sk_example_domain">example.social</string>
|
||||
<string name="sk_welcome_title">환영합니다!</string>
|
||||
<string name="sk_welcome_text">상어가 당신을 맞이합니다! 시작하기 위해, 아래에 사용하시는 인스턴스의 도메인 이름을 입력해주세요.</string>
|
||||
<string name="sk_color_palette_material3">시스템</string>
|
||||
<string name="sk_color_palette_red">빨간색</string>
|
||||
<string name="sk_color_theme_material3">시스템</string>
|
||||
<string name="sk_color_theme_red">빨간색</string>
|
||||
</resources>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="shortcut_icon_background">@color/gray_700</color>
|
||||
<color name="shortcut_icon_foreground">@color/original_primary_600</color>
|
||||
<color name="shortcut_icon_background">#282C37</color>
|
||||
<!-- <color name="shortcut_icon_foreground">@color/purple_primary_600</color>-->
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-night/palettes.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<style name="ColorPalette.Material3.AutoLightDark" parent="ColorPalette.Material3.Dark"/>
|
||||
</resources>
|
||||
@@ -2,25 +2,4 @@
|
||||
<resources>
|
||||
<style name="Theme.Mastodon.AutoLightDark" parent="Theme.Mastodon.Dark"/>
|
||||
<style name="Theme.Mastodon.AutoLightDark.TrueBlack" parent="Theme.Mastodon.Dark.TrueBlack"/>
|
||||
|
||||
<style name="Theme.Mastodon.AutoLightDark.Original" parent="Theme.Mastodon.Dark.Original"/>
|
||||
<style name="Theme.Mastodon.AutoLightDark.TrueBlack.Original" parent="Theme.Mastodon.Dark.TrueBlack.Original"/>
|
||||
|
||||
<style name="Theme.Mastodon.AutoLightDark.Green" parent="Theme.Mastodon.Dark.Green"/>
|
||||
<style name="Theme.Mastodon.AutoLightDark.TrueBlack.Green" parent="Theme.Mastodon.Dark.TrueBlack.Green"/>
|
||||
|
||||
<style name="Theme.Mastodon.AutoLightDark.Blue" parent="Theme.Mastodon.Dark.Blue"/>
|
||||
<style name="Theme.Mastodon.AutoLightDark.TrueBlack.Blue" parent="Theme.Mastodon.Dark.TrueBlack.Blue"/>
|
||||
|
||||
<style name="Theme.Mastodon.AutoLightDark.Orange" parent="Theme.Mastodon.Dark.Orange"/>
|
||||
<style name="Theme.Mastodon.AutoLightDark.TrueBlack.Orange" parent="Theme.Mastodon.Dark.TrueBlack.Orange"/>
|
||||
|
||||
<style name="Theme.Mastodon.AutoLightDark.Yellow" parent="Theme.Mastodon.Dark.Yellow"/>
|
||||
<style name="Theme.Mastodon.AutoLightDark.TrueBlack.Yellow" parent="Theme.Mastodon.Dark.TrueBlack.Yellow"/>
|
||||
|
||||
<style name="Theme.Mastodon.AutoLightDark.Red" parent="Theme.Mastodon.Dark.Red"/>
|
||||
<style name="Theme.Mastodon.AutoLightDark.TrueBlack.Red" parent="Theme.Mastodon.Dark.TrueBlack.Red"/>
|
||||
|
||||
<style name="Theme.Mastodon.AutoLightDark.Material3" parent="Theme.Mastodon.Dark.Material3"/>
|
||||
<style name="Theme.Mastodon.AutoLightDark.TrueBlack.Material3" parent="Theme.Mastodon.Dark.TrueBlack.Material3"/>
|
||||
</resources>
|
||||
3
mastodon/src/main/res/values-notnight/palettes.xml
Normal file
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
</resources>
|
||||
@@ -38,14 +38,14 @@
|
||||
<string name="sk_settings_show_federated_timeline">Mostre a linha do tempo federada</string>
|
||||
<string name="sk_visibility_unlisted">Não-listado</string>
|
||||
<string name="sk_settings_show_interaction_counts">Mostrar contagens de interação</string>
|
||||
<string name="sk_color_palette_purple">Roxo</string>
|
||||
<string name="sk_color_palette_green">Verde</string>
|
||||
<string name="sk_color_palette_blue">Azul</string>
|
||||
<string name="sk_color_palette_brown">Marrom</string>
|
||||
<string name="sk_color_palette_yellow">Amarelo</string>
|
||||
<string name="sk_color_palette_pink">Rosa</string>
|
||||
<string name="sk_color_theme_purple">Roxo</string>
|
||||
<string name="sk_color_theme_green">Verde</string>
|
||||
<string name="sk_color_theme_blue">Azul</string>
|
||||
<string name="sk_color_theme_brown">Marrom</string>
|
||||
<string name="sk_color_theme_yellow">Amarelo</string>
|
||||
<string name="sk_color_theme_pink">Rosa</string>
|
||||
<string name="sk_notification_type_status">Postagens</string>
|
||||
<string name="sk_settings_color_palette">Cor do tema</string>
|
||||
<string name="sk_settings_color_picker">Cor do tema</string>
|
||||
<string name="sk_translate_post">Traduzir</string>
|
||||
<string name="sk_translate_show_original">Mostrar original</string>
|
||||
<string name="sk_translated_using">Traduzido usando %s</string>
|
||||
@@ -59,6 +59,6 @@
|
||||
<string name="sk_welcome_text">O tubarão te cumprimenta! Para começar, por favor, digite abaixo o nome de domínio de sua instância de origem.</string>
|
||||
<string name="sk_example_domain">exemplo.social</string>
|
||||
<string name="sk_welcome_title">Bem vindo!</string>
|
||||
<string name="sk_color_palette_material3">Sistema</string>
|
||||
<string name="sk_color_palette_red">Vermelho</string>
|
||||
<string name="sk_color_theme_material3">Sistema</string>
|
||||
<string name="sk_color_theme_red">Vermelho</string>
|
||||
</resources>
|
||||
@@ -17,11 +17,11 @@
|
||||
<string name="sk_settings_app_version">Moshidon v%1$s (%2$d)</string>
|
||||
<string name="sk_notification_type_status">Публикации</string>
|
||||
<string name="sk_notify_posts">Отправляет публикацию</string>
|
||||
<string name="sk_settings_color_palette">Цветовая схема</string>
|
||||
<string name="sk_color_palette_pink">Розовый</string>
|
||||
<string name="sk_color_palette_purple">Фиолетовый</string>
|
||||
<string name="sk_color_palette_brown">Коричневый</string>
|
||||
<string name="sk_color_palette_yellow">Жёлтый</string>
|
||||
<string name="sk_settings_color_picker">Цветовая схема</string>
|
||||
<string name="sk_color_theme_pink">Розовый</string>
|
||||
<string name="sk_color_theme_purple">Фиолетовый</string>
|
||||
<string name="sk_color_theme_brown">Коричневый</string>
|
||||
<string name="sk_color_theme_yellow">Жёлтый</string>
|
||||
<string name="sk_translate_show_original">Показать оригинальную публикацию</string>
|
||||
<string name="sk_translated_using">Переведено через %s</string>
|
||||
<string name="sk_available_languages">Доступные языки</string>
|
||||
@@ -46,8 +46,8 @@
|
||||
<string name="sk_settings_always_reveal_content_warnings">Всегда раскрывать предупреждения о непристойном контенте</string>
|
||||
<string name="sk_settings_contribute">Внести свой код в Moshidon</string>
|
||||
<string name="sk_settings_show_federated_timeline">Показывать федеративную временную шкалу</string>
|
||||
<string name="sk_color_palette_green">Зелёный</string>
|
||||
<string name="sk_color_palette_blue">Синий</string>
|
||||
<string name="sk_color_theme_green">Зелёный</string>
|
||||
<string name="sk_color_theme_blue">Синий</string>
|
||||
<string name="sk_translate_post">Перевести</string>
|
||||
<string name="sk_post_language">Язык: %s</string>
|
||||
<string name="sk_clear_recent_languages">Очистить недавно использованные языки</string>
|
||||
@@ -56,9 +56,9 @@
|
||||
<string name="sk_poll_allow_multiple">Разрешить несколько вариантов ответа</string>
|
||||
<string name="sk_user_post_notifications_on">Уведомления о постах %s включены</string>
|
||||
<string name="sk_user_post_notifications_off">Уведомления о новых постах %s отключены</string>
|
||||
<string name="sk_color_palette_material3">Система</string>
|
||||
<string name="sk_color_theme_material3">Система</string>
|
||||
<string name="sk_settings_show_boosts">Показать репосты</string>
|
||||
<string name="sk_settings_show_interaction_counts">Показывать количество взаимодействий</string>
|
||||
<string name="sk_disable_marquee">Отключить прокручиваемый текст в заголовках</string>
|
||||
<string name="sk_color_palette_red">Красный</string>
|
||||
<string name="sk_color_theme_red">Красный</string>
|
||||
</resources>
|
||||
8
mastodon/src/main/res/values-v24/styles.xml
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<style name="Widget.Mastodon.Toolbar" parent="android:Widget.Material.Toolbar">
|
||||
<item name="android:contentInsetStartWithNavigation">0dp</item>
|
||||
<item name="android:titleMarginEnd">0dp</item>
|
||||
<item name="android:titleMarginStart">0dp</item>
|
||||
</style>
|
||||
</resources>
|
||||
@@ -1,9 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="navigation_bar_bg">@color/gray_50</color>
|
||||
<color name="green_navigation_bar_bg">@color/green_gray_50</color>
|
||||
<color name="blue_navigation_bar_bg">@color/blue_gray_50</color>
|
||||
<color name="orange_navigation_bar_bg">@color/orange_gray_50</color>
|
||||
<color name="yellow_navigation_bar_bg">@color/yellow_gray_50</color>
|
||||
<color name="red_navigation_bar_bg">@color/red_gray_50</color>
|
||||
</resources>
|
||||
@@ -16,8 +16,31 @@
|
||||
<attr name="colorSearchHint" format="color"/>
|
||||
<attr name="colorTabInactive" format="color"/>
|
||||
<attr name="colorAccentLightest" format="color"/>
|
||||
<attr name="favorite_selected" format="color"/>
|
||||
<attr name="bookmark_selected" format="color"/>
|
||||
<attr name="profileHeaderBackground" format="color"/>
|
||||
|
||||
<attr name="toolbarBackground" format="color"/>
|
||||
|
||||
<attr name="colorButtonBackgroundPrimaryDarkOnLight" format="color"/>
|
||||
<attr name="colorButtonBackgroundPrimaryDarkOnLightDisabled" format="color"/>
|
||||
<attr name="colorButtonTextPrimaryDarkOnLight" format="color"/>
|
||||
<attr name="colorButtonTextPrimaryDarkOnLightDisabled" format="color"/>
|
||||
|
||||
<attr name="colorButtonBackgroundPrimaryLightOnDark" format="color"/>
|
||||
<attr name="colorButtonBackgroundPrimaryLightOnDarkDisabled" format="color"/>
|
||||
<attr name="colorButtonTextPrimaryLightOnDark" format="color"/>
|
||||
<attr name="colorButtonTextPrimaryLightOnDarkDisabled" format="color"/>
|
||||
|
||||
<attr name="colorButtonBackgroundSecondaryDarkOnLight" format="color"/>
|
||||
<attr name="colorButtonBackgroundSecondaryDarkOnLightDisabled" format="color"/>
|
||||
<attr name="colorButtonTextSecondaryDarkOnLight" format="color"/>
|
||||
<attr name="colorButtonTextSecondaryDarkOnLightDisabled" format="color"/>
|
||||
|
||||
<attr name="colorButtonBackgroundSecondaryLightOnDark" format="color"/>
|
||||
<attr name="colorButtonBackgroundSecondaryLightOnDarkDisabled" format="color"/>
|
||||
<attr name="colorButtonTextSecondaryLightOnDark" format="color"/>
|
||||
<attr name="colorButtonTextSecondaryLightOnDarkDisabled" format="color"/>
|
||||
|
||||
<attr name="colorM3Primary" format="color"/>
|
||||
<attr name="colorM3OnPrimary" format="color"/>
|
||||
<attr name="colorM3PrimaryContainer" format="color"/>
|
||||
@@ -56,4 +79,30 @@
|
||||
<attr name="android:labelTextSize" format="dimension"/>
|
||||
<attr name="labelTextColor" format="color"/>
|
||||
</declare-styleable>
|
||||
|
||||
<attr name="colorPrimary25" format="color" />
|
||||
<attr name="colorPrimary50" format="color" />
|
||||
<attr name="colorPrimary100" format="color" />
|
||||
<attr name="colorPrimary200" format="color" />
|
||||
<attr name="colorPrimary300" format="color" />
|
||||
<attr name="colorPrimary400" format="color" />
|
||||
<attr name="colorPrimary500" format="color" />
|
||||
<attr name="colorPrimary600" format="color" />
|
||||
<attr name="colorPrimary700" format="color" />
|
||||
<attr name="colorPrimary800" format="color" />
|
||||
<attr name="colorPrimary900" format="color" />
|
||||
|
||||
<attr name="colorGray25" format="color" />
|
||||
<attr name="colorGray50" format="color" />
|
||||
<attr name="colorGray50t" format="color" />
|
||||
<attr name="colorGray100" format="color" />
|
||||
<attr name="colorGray200" format="color" />
|
||||
<attr name="colorGray300" format="color" />
|
||||
<attr name="colorGray400" format="color" />
|
||||
<attr name="colorGray500" format="color" />
|
||||
<attr name="colorGray600" format="color" />
|
||||
<attr name="colorGray700" format="color" />
|
||||
<attr name="colorGray800" format="color" />
|
||||
<attr name="colorGray800t" format="color" />
|
||||
<attr name="colorGray900" format="color" />
|
||||
</resources>
|
||||
@@ -5,12 +5,13 @@
|
||||
|
||||
<color name="fluent_default_icon_tint">?android:textColorPrimary</color>
|
||||
|
||||
<color name="gray_900">#121029</color>
|
||||
<color name="gray_800t">#cc2b2938</color>
|
||||
<color name="gray_800">#2b2938</color>
|
||||
<color name="gray_700">#353454</color>
|
||||
<color name="gray_600">#464666</color>
|
||||
<color name="gray_500">#696685</color>
|
||||
<color name="gray_900">#110c10</color>
|
||||
<color name="gray_800t">#cc191417</color>
|
||||
<color name="gray_800">#191417</color>
|
||||
<color name="gray_700">#231f22</color>
|
||||
<color name="gray_600">#3b373a</color>
|
||||
<color name="gray_500">#625d60</color>
|
||||
|
||||
<color name="gray_400">#9998b3</color>
|
||||
<color name="gray_300">#d1d1de</color>
|
||||
<color name="gray_200">#e6e6ed</color>
|
||||
@@ -31,141 +32,6 @@
|
||||
<color name="primary_800">#ae218a</color>
|
||||
<color name="primary_900">#6d1556</color>
|
||||
|
||||
<color name="original_primary_25">#fafaff</color>
|
||||
<color name="original_primary_50">#f4f3ff</color>
|
||||
<color name="original_primary_100">#ebebff</color>
|
||||
<color name="original_primary_200">#d7d7ff</color>
|
||||
<color name="original_primary_300">#c2c2ff</color>
|
||||
<color name="original_primary_400">#9999ff</color>
|
||||
<color name="original_primary_500">#6364ff</color>
|
||||
<color name="original_primary_600">#562cfc</color>
|
||||
<color name="original_primary_700">#431cbb</color>
|
||||
<color name="original_primary_800">#2f0c7a</color>
|
||||
<color name="original_primary_900">#17063b</color>
|
||||
|
||||
<color name="green_primary_25">#fafaff</color>
|
||||
<color name="green_primary_50">#d1feaf</color>
|
||||
<color name="green_primary_100">#bbf294</color>
|
||||
<color name="green_primary_200">#a0d57b</color>
|
||||
<color name="green_primary_300">#85b962</color>
|
||||
<color name="green_primary_400">#6c9e4b</color>
|
||||
<color name="green_primary_500">#528232</color>
|
||||
<color name="green_primary_600">#3b6a1c</color>
|
||||
<color name="green_primary_700">#245103</color>
|
||||
<color name="green_primary_800">#163800</color>
|
||||
<color name="green_primary_900">#0a2100</color>
|
||||
|
||||
<color name="blue_primary_25">#fafaff</color>
|
||||
<color name="blue_primary_50">#e8f2ff</color>
|
||||
<color name="blue_primary_100">#cee5ff</color>
|
||||
<color name="blue_primary_200">#97cbff</color>
|
||||
<color name="blue_primary_300">#65b1f4</color>
|
||||
<color name="blue_primary_400">#4796d7</color>
|
||||
<color name="blue_primary_500">#227bba</color>
|
||||
<color name="blue_primary_600">#00639b</color>
|
||||
<color name="blue_primary_700">#004a76</color>
|
||||
<color name="blue_primary_800">#003354</color>
|
||||
<color name="blue_primary_900">#001d33</color>
|
||||
|
||||
<color name="orange_primary_25">#fafaff</color>
|
||||
<color name="orange_primary_50">#ffeedf</color>
|
||||
<color name="orange_primary_100">#ffdcbb</color>
|
||||
<color name="orange_primary_200">#ffb869</color>
|
||||
<color name="orange_primary_300">#e89a3b</color>
|
||||
<color name="orange_primary_400">#c98121</color>
|
||||
<color name="orange_primary_500">#a96700</color>
|
||||
<color name="orange_primary_600">#885200</color>
|
||||
<color name="orange_primary_700">#673d00</color>
|
||||
<color name="orange_primary_800">#482900</color>
|
||||
<color name="orange_primary_900">#2b1700</color>
|
||||
|
||||
<color name="yellow_primary_25">#fafaff</color>
|
||||
<color name="yellow_primary_50">#fff0ca</color>
|
||||
<color name="yellow_primary_100">#ffe084</color>
|
||||
<color name="yellow_primary_200">#e8c349</color>
|
||||
<color name="yellow_primary_300">#cba82f</color>
|
||||
<color name="yellow_primary_400">#ae8d10</color>
|
||||
<color name="yellow_primary_500">#8f7300</color>
|
||||
<color name="yellow_primary_600">#735c00</color>
|
||||
<color name="yellow_primary_700">#574500</color>
|
||||
<color name="yellow_primary_800">#3c2f00</color>
|
||||
<color name="yellow_primary_900">#231b00</color>
|
||||
|
||||
<color name="red_primary_25">#FFFBFA</color>
|
||||
<color name="red_primary_50">#FEF3F2</color>
|
||||
<color name="red_primary_100">#FEE4E2</color>
|
||||
<color name="red_primary_200">#FECDCA</color>
|
||||
<color name="red_primary_300">#FDA29B</color>
|
||||
<color name="red_primary_400">#F97066</color>
|
||||
<color name="red_primary_500">#F04438</color>
|
||||
<color name="red_primary_600">#D92D20</color>
|
||||
<color name="red_primary_700">#B42318</color>
|
||||
<color name="red_primary_800">#912018</color>
|
||||
<color name="red_primary_900">#7A271A</color>
|
||||
|
||||
<color name="custom_gray_900">#000000</color>
|
||||
<color name="custom_gray_800t">#cc171717</color>
|
||||
<color name="custom_gray_800">#171717</color>
|
||||
<color name="custom_gray_700">#191919</color>
|
||||
<color name="custom_gray_600">#212121</color>
|
||||
<color name="custom_gray_500">#242424</color>
|
||||
|
||||
<!-- Old Colors:-->
|
||||
<!-- <color name="green_gray_400">#8f918e</color>-->
|
||||
<!-- <color name="green_gray_300">#a9aca8</color>-->
|
||||
<!-- <color name="green_gray_200">#c5c7c3</color>-->
|
||||
<!-- <color name="green_gray_100">#e1e3df</color>-->
|
||||
<!-- <color name="green_gray_50t">#eff1ed</color>-->
|
||||
<!-- <color name="green_gray_50">#eff1ed</color>-->
|
||||
<!-- <color name="green_gray_25">#f7f8fa</color>-->
|
||||
|
||||
<!-- <color name="blue_gray_400">#919191</color>-->
|
||||
<!-- <color name="blue_gray_300">#ababab</color>-->
|
||||
<!-- <color name="blue_gray_200">#c6c6c6</color>-->
|
||||
<!-- <color name="blue_gray_100">#e2e2e2</color>-->
|
||||
<!-- <color name="blue_gray_50t">#f1f1f1</color>-->
|
||||
<!-- <color name="blue_gray_50">#f1f1f1</color>-->
|
||||
<!-- <color name="blue_gray_25">#f7f8fa</color>-->
|
||||
|
||||
<color name="green_gray_400">#a2b095</color>
|
||||
<color name="green_gray_300">#bdcbaf</color>
|
||||
<color name="green_gray_200">#d9e7ca</color>
|
||||
<color name="green_gray_100">#d9e7ca</color>
|
||||
<color name="green_gray_50t">#cce8f8d8</color>
|
||||
<color name="green_gray_50">#e8f5d8</color>
|
||||
<color name="green_gray_25">#f7f8fa</color>
|
||||
|
||||
<color name="blue_gray_400">#9eadbe</color>
|
||||
<color name="blue_gray_300">#b9c8da</color>
|
||||
<color name="blue_gray_200">#d5e4f7</color>
|
||||
<color name="blue_gray_100">#e8f2ff</color>
|
||||
<color name="blue_gray_50t">#cce8f2ff</color>
|
||||
<color name="blue_gray_50">#e8f2ff</color>
|
||||
<color name="blue_gray_25">#f7f8fa</color>
|
||||
|
||||
<color name="orange_gray_400">#c3a689</color>
|
||||
<color name="orange_gray_300">#e0c1a3</color>
|
||||
<color name="orange_gray_200">#feddbd</color>
|
||||
<color name="orange_gray_100">#ffeedf</color>
|
||||
<color name="orange_gray_50t">#ccffeedf</color>
|
||||
<color name="orange_gray_50">#ffeedf</color>
|
||||
<color name="orange_gray_25">#f7f8fa</color>
|
||||
|
||||
<color name="yellow_gray_400">#b8aa87</color>
|
||||
<color name="yellow_gray_300">#d4c5a1</color>
|
||||
<color name="yellow_gray_200">#f1e1bb</color>
|
||||
<color name="yellow_gray_100">#fff0ca</color>
|
||||
<color name="yellow_gray_50t">#ccfff0ca</color>
|
||||
<color name="yellow_gray_50">#fff0ca</color>
|
||||
<color name="yellow_gray_25">#f7f8fa</color>
|
||||
|
||||
<color name="red_gray_400">#d69f84</color>
|
||||
<color name="red_gray_300">#f4ba9e</color>
|
||||
<color name="red_gray_200">#ffdbcb</color>
|
||||
<color name="red_gray_100">#ffedea</color>
|
||||
<color name="red_gray_50t">#ffede6ca</color>
|
||||
<color name="red_gray_50">#ffede6</color>
|
||||
<color name="red_gray_25">#f7f8fa</color>
|
||||
|
||||
<color name="error_25">#FFFBFA</color>
|
||||
<color name="error_50">#FEF3F2</color>
|
||||
@@ -230,13 +96,39 @@
|
||||
|
||||
<color name="favorite_selected">@color/warning_500</color>
|
||||
<color name="bookmark_selected">@color/success_500</color>
|
||||
<color name="boost_selected">?android:colorPrimary</color>
|
||||
<color name="translate_selected">?android:colorPrimary</color>
|
||||
<color name="boost_selected">@color/primary_500</color>
|
||||
|
||||
<color name="shortcut_icon_background">#282C37</color>
|
||||
<!-- <color name="shortcut_icon_foreground">@color/primary_700</color>-->
|
||||
<color name="shortcut_icon_foreground">@color/purple_primary_700</color>
|
||||
|
||||
<!-- M3 dynamic colors -->
|
||||
<color name="m3_navigation_bar_bg">@color/gray_50</color>
|
||||
|
||||
<color name="m3_gray_900">@color/gray_900</color>
|
||||
<color name="m3_gray_800t">@color/gray_800t</color>
|
||||
<color name="m3_gray_800">@color/gray_800</color>
|
||||
<color name="m3_gray_700">@color/gray_700</color>
|
||||
<color name="m3_gray_600">@color/gray_600</color>
|
||||
<color name="m3_gray_500">@color/gray_500</color>
|
||||
<color name="m3_gray_400">@color/gray_400</color>
|
||||
<color name="m3_gray_300">@color/gray_300</color>
|
||||
<color name="m3_gray_200">@color/gray_200</color>
|
||||
<color name="m3_gray_100">@color/gray_100</color>
|
||||
<color name="m3_gray_50t">@color/gray_50t</color>
|
||||
<color name="m3_gray_50">@color/gray_50</color>
|
||||
<color name="m3_gray_25">@color/gray_25</color>
|
||||
|
||||
<color name="m3_primary_25">@color/purple_primary_25</color>
|
||||
<color name="m3_primary_50">@color/purple_primary_50</color>
|
||||
<color name="m3_primary_100">@color/purple_primary_100</color>
|
||||
<color name="m3_primary_200">@color/purple_primary_200</color>
|
||||
<color name="m3_primary_300">@color/purple_primary_300</color>
|
||||
<color name="m3_primary_400">@color/purple_primary_400</color>
|
||||
<color name="m3_primary_500">@color/purple_primary_500</color>
|
||||
<color name="m3_primary_600">@color/purple_primary_600</color>
|
||||
<color name="m3_primary_700">@color/purple_primary_700</color>
|
||||
<color name="m3_primary_800">@color/purple_primary_800</color>
|
||||
<color name="m3_primary_900">@color/purple_primary_900</color>
|
||||
|
||||
<!-- light theme -->
|
||||
<color name="m3_sys_light_primary">#6750A4</color>
|
||||
@@ -280,4 +172,154 @@
|
||||
<color name="m3_sys_dark_on_surface_variant">#CAC4D0</color>
|
||||
<color name="m3_sys_dark_outline">#938F99</color>
|
||||
|
||||
<!-- PALETTE COLORS -->
|
||||
|
||||
<color name="purple_primary_25">#fafaff</color>
|
||||
<color name="purple_primary_50">#f4f3ff</color>
|
||||
<color name="purple_primary_100">#ebebff</color>
|
||||
<color name="purple_primary_200">#d7d7ff</color>
|
||||
<color name="purple_primary_300">#c2c2ff</color>
|
||||
<color name="purple_primary_400">#9999ff</color>
|
||||
<color name="purple_primary_500">#6364ff</color>
|
||||
<color name="purple_primary_600">#562cfc</color>
|
||||
<color name="purple_primary_700">#431cbb</color>
|
||||
<color name="purple_primary_800">#2f0c7a</color>
|
||||
<color name="purple_primary_900">#17063b</color>
|
||||
|
||||
<color name="green_primary_25">#fafaff</color>
|
||||
<color name="green_primary_50">#d1feaf</color>
|
||||
<color name="green_primary_100">#bbf294</color>
|
||||
<color name="green_primary_200">#a0d57b</color>
|
||||
<color name="green_primary_300">#85b962</color>
|
||||
<color name="green_primary_400">#6c9e4b</color>
|
||||
<color name="green_primary_500">#528232</color>
|
||||
<color name="green_primary_600">#3b6a1c</color>
|
||||
<color name="green_primary_700">#245103</color>
|
||||
<color name="green_primary_800">#163800</color>
|
||||
<color name="green_primary_900">#0a2100</color>
|
||||
|
||||
<color name="brownish_gray_900">#110c10</color>
|
||||
<color name="brownish_gray_800">#191417</color>
|
||||
<color name="brownish_gray_800t">#cc191417</color>
|
||||
<color name="brownish_gray_700">#231f22</color>
|
||||
<color name="brownish_gray_600">#3b373a</color>
|
||||
<color name="brownish_gray_500">#625d60</color>
|
||||
|
||||
<color name="green_gray_400">#a2b095</color>
|
||||
<color name="green_gray_300">#bdcbaf</color>
|
||||
<color name="green_gray_200">#d9e7ca</color>
|
||||
<color name="green_gray_100">#d9e7ca</color>
|
||||
<color name="green_gray_50t">#cce8f8d8</color>
|
||||
<color name="green_gray_50">#e8f5d8</color>
|
||||
<color name="green_gray_25">#f7f8fa</color>
|
||||
|
||||
<color name="blue_primary_25">#fafaff</color>
|
||||
<color name="blue_primary_50">#e8f2ff</color>
|
||||
<color name="blue_primary_100">#cee5ff</color>
|
||||
<color name="blue_primary_200">#97cbff</color>
|
||||
<color name="blue_primary_300">#65b1f4</color>
|
||||
<color name="blue_primary_400">#4796d7</color>
|
||||
<color name="blue_primary_500">#227bba</color>
|
||||
<color name="blue_primary_600">#00639b</color>
|
||||
<color name="blue_primary_700">#004a76</color>
|
||||
<color name="blue_primary_800">#003354</color>
|
||||
<color name="blue_primary_900">#001d33</color>
|
||||
|
||||
<color name="blue_gray_400">#9eadbe</color>
|
||||
<color name="blue_gray_300">#b9c8da</color>
|
||||
<color name="blue_gray_200">#d5e4f7</color>
|
||||
<color name="blue_gray_100">#e8f2ff</color>
|
||||
<color name="blue_gray_50t">#cce8f2ff</color>
|
||||
<color name="blue_gray_50">#e8f2ff</color>
|
||||
<color name="blue_gray_25">#f7f8fa</color>
|
||||
|
||||
<color name="brown_primary_25">#fafaff</color>
|
||||
<color name="brown_primary_50">#ffeedf</color>
|
||||
<color name="brown_primary_100">#ffdcbb</color>
|
||||
<color name="brown_primary_200">#ffb869</color>
|
||||
<color name="brown_primary_300">#e89a3b</color>
|
||||
<color name="brown_primary_400">#c98121</color>
|
||||
<color name="brown_primary_500">#a96700</color>
|
||||
<color name="brown_primary_600">#885200</color>
|
||||
<color name="brown_primary_700">#673d00</color>
|
||||
<color name="brown_primary_800">#482900</color>
|
||||
<color name="brown_primary_900">#2b1700</color>
|
||||
|
||||
<color name="brown_gray_400">#c3a689</color>
|
||||
<color name="brown_gray_300">#e0c1a3</color>
|
||||
<color name="brown_gray_200">#feddbd</color>
|
||||
<color name="brown_gray_100">#ffeedf</color>
|
||||
<color name="brown_gray_50t">#ccffeedf</color>
|
||||
<color name="brown_gray_50">#ffeedf</color>
|
||||
<color name="brown_gray_25">#f7f8fa</color>
|
||||
|
||||
<color name="yellow_primary_25">#fafaff</color>
|
||||
<color name="yellow_primary_50">#fff0ca</color>
|
||||
<color name="yellow_primary_100">#ffe084</color>
|
||||
<color name="yellow_primary_200">#e8c349</color>
|
||||
<color name="yellow_primary_300">#cba82f</color>
|
||||
<color name="yellow_primary_400">#ae8d10</color>
|
||||
<color name="yellow_primary_500">#8f7300</color>
|
||||
<color name="yellow_primary_600">#735c00</color>
|
||||
<color name="yellow_primary_700">#574500</color>
|
||||
<color name="yellow_primary_800">#3c2f00</color>
|
||||
<color name="yellow_primary_900">#231b00</color>
|
||||
|
||||
<color name="yellow_gray_400">#b8aa87</color>
|
||||
<color name="yellow_gray_300">#d4c5a1</color>
|
||||
<color name="yellow_gray_200">#f1e1bb</color>
|
||||
<color name="yellow_gray_100">#fff0ca</color>
|
||||
<color name="yellow_gray_50t">#ccfff0ca</color>
|
||||
<color name="yellow_gray_50">#fff0ca</color>
|
||||
<color name="yellow_gray_25">#f7f8fa</color>
|
||||
|
||||
<color name="red_primary_25">#FFFBFA</color>
|
||||
<color name="red_primary_50">#FEF3F2</color>
|
||||
<color name="red_primary_100">#FEE4E2</color>
|
||||
<color name="red_primary_200">#FECDCA</color>
|
||||
<color name="red_primary_300">#FDA29B</color>
|
||||
<color name="red_primary_400">#F97066</color>
|
||||
<color name="red_primary_500">#F04438</color>
|
||||
<color name="red_primary_600">#D92D20</color>
|
||||
<color name="red_primary_700">#B42318</color>
|
||||
<color name="red_primary_800">#912018</color>
|
||||
<color name="red_primary_900">#7A271A</color>
|
||||
|
||||
<color name="red_gray_400">#d69f84</color>
|
||||
<color name="red_gray_300">#f4ba9e</color>
|
||||
<color name="red_gray_200">#ffdbcb</color>
|
||||
<color name="red_gray_100">#ffedea</color>
|
||||
<color name="red_gray_50t">#ffede6ca</color>
|
||||
<color name="red_gray_50">#ffede6</color>
|
||||
<color name="red_gray_25">#f7f8fa</color>
|
||||
|
||||
<color name="nord_primary_25">#fafaff</color>
|
||||
<color name="nord_primary_50">#eff0ff</color>
|
||||
<color name="nord_primary_100">#eceff4</color>
|
||||
<color name="nord_primary_200">#e5e9f0</color>
|
||||
<color name="nord_primary_300">#d8dee9</color>
|
||||
<color name="nord_primary_400">#88c0d0</color>
|
||||
<color name="nord_primary_500">#4c566a</color>
|
||||
<color name="nord_primary_600">#4c566a</color>
|
||||
<color name="nord_primary_700">#81a1c1</color>
|
||||
<color name="nord_primary_800">#3b4252</color>
|
||||
<color name="nord_primary_900">#2e3440</color>
|
||||
|
||||
<color name="nord_gray_900">#3B4252</color>
|
||||
<color name="nord_gray_800t">#cc2D343F</color>
|
||||
<color name="nord_gray_800">#2D343F</color>
|
||||
<color name="nord_gray_700">#3A4250</color>
|
||||
<color name="nord_gray_600">#404C5C</color>
|
||||
<color name="nord_gray_500">#8C96B4</color>
|
||||
|
||||
<color name="nord_favorite_selected">#ebcb8b</color>
|
||||
<color name="nord_bookmark_selected">#a3be8c</color>
|
||||
|
||||
<color name="nord_gray_400">#8C96B4</color>
|
||||
<color name="nord_gray_300">#c5c6d0</color>
|
||||
<color name="nord_gray_200">#D5DCE6</color>
|
||||
<color name="nord_gray_100">#E2E7EE</color>
|
||||
<color name="nord_gray_50t">#EAEDF2</color>
|
||||
<color name="nord_gray_50">#EAEDF2</color>
|
||||
<color name="nord_gray_25">#f7f8fa</color>
|
||||
</resources>
|
||||
270
mastodon/src/main/res/values/palettes.xml
Normal file
@@ -0,0 +1,270 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<style name="ColorPalette">
|
||||
<item name="colorPrimary25">@color/primary_25</item>
|
||||
<item name="colorPrimary50">@color/primary_50</item>
|
||||
<item name="colorPrimary100">@color/primary_100</item>
|
||||
<item name="colorPrimary200">@color/primary_200</item>
|
||||
<item name="colorPrimary300">@color/primary_300</item>
|
||||
<item name="colorPrimary400">@color/primary_400</item>
|
||||
<item name="colorPrimary500">@color/primary_500</item>
|
||||
<item name="colorPrimary600">@color/primary_600</item>
|
||||
<item name="colorPrimary700">@color/primary_700</item>
|
||||
<item name="colorPrimary800">@color/primary_800</item>
|
||||
<item name="colorPrimary900">@color/primary_900</item>
|
||||
<item name="bookmark_selected">@color/bookmark_selected</item>
|
||||
<item name="favorite_selected">@color/favorite_selected</item>
|
||||
|
||||
<item name="colorGray900">@color/gray_900</item>
|
||||
<item name="colorGray800t">@color/gray_800t</item>
|
||||
<item name="colorGray800">@color/gray_800</item>
|
||||
<item name="colorGray700">@color/gray_700</item>
|
||||
<item name="colorGray600">@color/gray_600</item>
|
||||
<item name="colorGray500">@color/gray_500</item>
|
||||
<item name="colorGray400">@color/gray_400</item>
|
||||
<item name="colorGray300">@color/gray_300</item>
|
||||
<item name="colorGray200">@color/gray_200</item>
|
||||
<item name="colorGray100">@color/gray_100</item>
|
||||
<item name="colorGray50t">@color/gray_50t</item>
|
||||
<item name="colorGray50">@color/gray_50</item>
|
||||
<item name="colorGray25">@color/gray_25</item>
|
||||
</style>
|
||||
|
||||
<style name="ColorPalette.Material3">
|
||||
<item name="colorPrimary25">@color/m3_primary_25</item>
|
||||
<item name="colorPrimary50">@color/m3_primary_50</item>
|
||||
<item name="colorPrimary100">@color/m3_primary_100</item>
|
||||
<item name="colorPrimary200">@color/m3_primary_200</item>
|
||||
<item name="colorPrimary300">@color/m3_primary_300</item>
|
||||
<item name="colorPrimary400">@color/m3_primary_400</item>
|
||||
<item name="colorPrimary500">@color/m3_primary_500</item>
|
||||
<item name="colorPrimary600">@color/m3_primary_600</item>
|
||||
<item name="colorPrimary700">@color/m3_primary_700</item>
|
||||
<item name="colorPrimary800">@color/m3_primary_800</item>
|
||||
<item name="colorPrimary900">@color/m3_primary_900</item>
|
||||
|
||||
<item name="colorGray900">@color/m3_gray_900</item>
|
||||
<item name="colorGray800t">@color/m3_gray_800t</item>
|
||||
<item name="colorGray800">@color/m3_gray_800</item>
|
||||
<item name="colorGray700">@color/m3_gray_700</item>
|
||||
<item name="colorGray600">@color/m3_gray_600</item>
|
||||
<item name="colorGray500">@color/m3_gray_500</item>
|
||||
<item name="colorGray400">@color/m3_gray_400</item>
|
||||
<item name="colorGray300">@color/m3_gray_300</item>
|
||||
<item name="colorGray200">@color/m3_gray_200</item>
|
||||
<item name="colorGray100">@color/m3_gray_100</item>
|
||||
<item name="colorGray50t">@color/m3_gray_50t</item>
|
||||
<item name="colorGray50">@color/m3_gray_50</item>
|
||||
<item name="colorGray25">@color/m3_gray_25</item>
|
||||
</style>
|
||||
|
||||
<style name="ColorPalette.Material3.Dark">
|
||||
<item name="colorPollVoted">?colorGray700</item>
|
||||
<item name="colorWindowBackground">?colorGray900</item>
|
||||
<item name="colorBackgroundLight">?colorGray800</item>
|
||||
<item name="colorBackgroundLightest">?colorGray900</item>
|
||||
<item name="android:colorBackground">?colorGray800</item>
|
||||
<item name="android:statusBarColor">?colorGray900</item>
|
||||
<item name="toolbarBackground">?colorGray900</item>
|
||||
</style>
|
||||
|
||||
<style name="ColorPalette.Pink">
|
||||
<item name="colorPrimary25">@color/primary_25</item>
|
||||
<item name="colorPrimary50">@color/primary_50</item>
|
||||
<item name="colorPrimary100">@color/primary_100</item>
|
||||
<item name="colorPrimary200">@color/primary_200</item>
|
||||
<item name="colorPrimary300">@color/primary_300</item>
|
||||
<item name="colorPrimary400">@color/primary_400</item>
|
||||
<item name="colorPrimary500">@color/primary_500</item>
|
||||
<item name="colorPrimary600">@color/primary_600</item>
|
||||
<item name="colorPrimary700">@color/primary_700</item>
|
||||
<item name="colorPrimary800">@color/primary_800</item>
|
||||
<item name="colorPrimary900">@color/primary_900</item>
|
||||
</style>
|
||||
|
||||
<style name="ColorPalette.Purple">
|
||||
<item name="colorPrimary25">@color/purple_primary_25</item>
|
||||
<item name="colorPrimary50">@color/purple_primary_50</item>
|
||||
<item name="colorPrimary100">@color/purple_primary_100</item>
|
||||
<item name="colorPrimary200">@color/purple_primary_200</item>
|
||||
<item name="colorPrimary300">@color/purple_primary_300</item>
|
||||
<item name="colorPrimary400">@color/purple_primary_400</item>
|
||||
<item name="colorPrimary500">@color/purple_primary_500</item>
|
||||
<item name="colorPrimary600">@color/purple_primary_600</item>
|
||||
<item name="colorPrimary700">@color/purple_primary_700</item>
|
||||
<item name="colorPrimary800">@color/purple_primary_800</item>
|
||||
<item name="colorPrimary900">@color/purple_primary_900</item>
|
||||
</style>
|
||||
|
||||
<style name="ColorPalette.Green">
|
||||
<item name="colorPrimary25">@color/green_primary_25</item>
|
||||
<item name="colorPrimary50">@color/green_primary_50</item>
|
||||
<item name="colorPrimary100">@color/green_primary_100</item>
|
||||
<item name="colorPrimary200">@color/green_primary_200</item>
|
||||
<item name="colorPrimary300">@color/green_primary_300</item>
|
||||
<item name="colorPrimary400">@color/green_primary_400</item>
|
||||
<item name="colorPrimary500">@color/green_primary_500</item>
|
||||
<item name="colorPrimary600">@color/green_primary_600</item>
|
||||
<item name="colorPrimary700">@color/green_primary_700</item>
|
||||
<item name="colorPrimary800">@color/green_primary_800</item>
|
||||
<item name="colorPrimary900">@color/green_primary_900</item>
|
||||
|
||||
<item name="colorGray900">@color/brownish_gray_900</item>
|
||||
<item name="colorGray800t">@color/brownish_gray_800t</item>
|
||||
<item name="colorGray800">@color/brownish_gray_800</item>
|
||||
<item name="colorGray700">@color/brownish_gray_700</item>
|
||||
<item name="colorGray600">@color/brownish_gray_600</item>
|
||||
<item name="colorGray500">@color/brownish_gray_500</item>
|
||||
|
||||
<item name="colorGray400">@color/green_gray_400</item>
|
||||
<item name="colorGray300">@color/green_gray_300</item>
|
||||
<item name="colorGray200">@color/green_gray_200</item>
|
||||
<item name="colorGray100">@color/green_gray_100</item>
|
||||
<item name="colorGray50t">@color/green_gray_50t</item>
|
||||
<item name="colorGray50">@color/green_gray_50</item>
|
||||
<item name="colorGray25">@color/green_gray_25</item>
|
||||
</style>
|
||||
|
||||
<style name="ColorPalette.Blue">
|
||||
<item name="colorPrimary25">@color/blue_primary_25</item>
|
||||
<item name="colorPrimary50">@color/blue_primary_50</item>
|
||||
<item name="colorPrimary100">@color/blue_primary_100</item>
|
||||
<item name="colorPrimary200">@color/blue_primary_200</item>
|
||||
<item name="colorPrimary300">@color/blue_primary_300</item>
|
||||
<item name="colorPrimary400">@color/blue_primary_400</item>
|
||||
<item name="colorPrimary500">@color/blue_primary_500</item>
|
||||
<item name="colorPrimary600">@color/blue_primary_600</item>
|
||||
<item name="colorPrimary700">@color/blue_primary_700</item>
|
||||
<item name="colorPrimary800">@color/blue_primary_800</item>
|
||||
<item name="colorPrimary900">@color/blue_primary_900</item>
|
||||
|
||||
<item name="colorGray400">@color/blue_gray_400</item>
|
||||
<item name="colorGray300">@color/blue_gray_300</item>
|
||||
<item name="colorGray200">@color/blue_gray_200</item>
|
||||
<item name="colorGray100">@color/blue_gray_100</item>
|
||||
<item name="colorGray50t">@color/blue_gray_50t</item>
|
||||
<item name="colorGray50">@color/blue_gray_50</item>
|
||||
<item name="colorGray25">@color/blue_gray_25</item>
|
||||
</style>
|
||||
|
||||
<style name="ColorPalette.Brown">
|
||||
<item name="colorPrimary25">@color/brown_primary_25</item>
|
||||
<item name="colorPrimary50">@color/brown_primary_50</item>
|
||||
<item name="colorPrimary100">@color/brown_primary_100</item>
|
||||
<item name="colorPrimary200">@color/brown_primary_200</item>
|
||||
<item name="colorPrimary300">@color/brown_primary_300</item>
|
||||
<item name="colorPrimary400">@color/brown_primary_400</item>
|
||||
<item name="colorPrimary500">@color/brown_primary_500</item>
|
||||
<item name="colorPrimary600">@color/brown_primary_600</item>
|
||||
<item name="colorPrimary700">@color/brown_primary_700</item>
|
||||
<item name="colorPrimary800">@color/brown_primary_800</item>
|
||||
<item name="colorPrimary900">@color/brown_primary_900</item>
|
||||
|
||||
<item name="colorGray900">@color/brownish_gray_900</item>
|
||||
<item name="colorGray800t">@color/brownish_gray_800t</item>
|
||||
<item name="colorGray800">@color/brownish_gray_800</item>
|
||||
<item name="colorGray700">@color/brownish_gray_700</item>
|
||||
<item name="colorGray600">@color/brownish_gray_600</item>
|
||||
<item name="colorGray500">@color/brownish_gray_500</item>
|
||||
|
||||
<item name="colorGray400">@color/brown_gray_400</item>
|
||||
<item name="colorGray300">@color/brown_gray_300</item>
|
||||
<item name="colorGray200">@color/brown_gray_200</item>
|
||||
<item name="colorGray100">@color/brown_gray_100</item>
|
||||
<item name="colorGray50t">@color/brown_gray_50t</item>
|
||||
<item name="colorGray50">@color/brown_gray_50</item>
|
||||
<item name="colorGray25">@color/brown_gray_25</item>
|
||||
</style>
|
||||
|
||||
<style name="ColorPalette.Yellow">
|
||||
<item name="colorPrimary25">@color/yellow_primary_25</item>
|
||||
<item name="colorPrimary50">@color/yellow_primary_50</item>
|
||||
<item name="colorPrimary100">@color/yellow_primary_100</item>
|
||||
<item name="colorPrimary200">@color/yellow_primary_200</item>
|
||||
<item name="colorPrimary300">@color/yellow_primary_300</item>
|
||||
<item name="colorPrimary400">@color/yellow_primary_400</item>
|
||||
<item name="colorPrimary500">@color/yellow_primary_500</item>
|
||||
<item name="colorPrimary600">@color/yellow_primary_600</item>
|
||||
<item name="colorPrimary700">@color/yellow_primary_700</item>
|
||||
<item name="colorPrimary800">@color/yellow_primary_800</item>
|
||||
<item name="colorPrimary900">@color/yellow_primary_900</item>
|
||||
|
||||
<item name="colorGray900">@color/brownish_gray_900</item>
|
||||
<item name="colorGray800t">@color/brownish_gray_800t</item>
|
||||
<item name="colorGray800">@color/brownish_gray_800</item>
|
||||
<item name="colorGray700">@color/brownish_gray_700</item>
|
||||
<item name="colorGray600">@color/brownish_gray_600</item>
|
||||
<item name="colorGray500">@color/brownish_gray_500</item>
|
||||
|
||||
<item name="colorGray400">@color/yellow_gray_400</item>
|
||||
<item name="colorGray300">@color/yellow_gray_300</item>
|
||||
<item name="colorGray200">@color/yellow_gray_200</item>
|
||||
<item name="colorGray100">@color/yellow_gray_100</item>
|
||||
<item name="colorGray50t">@color/yellow_gray_50t</item>
|
||||
<item name="colorGray50">@color/yellow_gray_50</item>
|
||||
<item name="colorGray25">@color/yellow_gray_25</item>
|
||||
</style>
|
||||
|
||||
|
||||
<style name="ColorPalette.Red">
|
||||
<item name="colorPrimary25">@color/red_primary_25</item>
|
||||
<item name="colorPrimary50">@color/red_primary_50</item>
|
||||
<item name="colorPrimary100">@color/red_primary_100</item>
|
||||
<item name="colorPrimary200">@color/red_primary_200</item>
|
||||
<item name="colorPrimary300">@color/red_primary_300</item>
|
||||
<item name="colorPrimary400">@color/red_primary_400</item>
|
||||
<item name="colorPrimary500">@color/red_primary_500</item>
|
||||
<item name="colorPrimary600">@color/red_primary_600</item>
|
||||
<item name="colorPrimary700">@color/red_primary_700</item>
|
||||
<item name="colorPrimary800">@color/red_primary_800</item>
|
||||
<item name="colorPrimary900">@color/red_primary_900</item>
|
||||
|
||||
<item name="colorGray900">@color/brownish_gray_900</item>
|
||||
<item name="colorGray800t">@color/brownish_gray_800t</item>
|
||||
<item name="colorGray800">@color/brownish_gray_800</item>
|
||||
<item name="colorGray700">@color/brownish_gray_700</item>
|
||||
<item name="colorGray600">@color/brownish_gray_600</item>
|
||||
<item name="colorGray500">@color/brownish_gray_500</item>
|
||||
|
||||
<item name="colorGray400">@color/red_gray_400</item>
|
||||
<item name="colorGray300">@color/red_gray_300</item>
|
||||
<item name="colorGray200">@color/red_gray_200</item>
|
||||
<item name="colorGray100">@color/red_gray_100</item>
|
||||
<item name="colorGray50t">@color/red_gray_50t</item>
|
||||
<item name="colorGray50">@color/red_gray_50</item>
|
||||
<item name="colorGray25">@color/red_gray_25</item>
|
||||
</style>
|
||||
|
||||
<style name="ColorPalette.Nord">
|
||||
<item name="colorPrimary25">@color/nord_primary_25</item>
|
||||
<item name="colorPrimary50">@color/nord_primary_50</item>
|
||||
<item name="colorPrimary100">@color/nord_primary_100</item>
|
||||
<item name="colorPrimary200">@color/nord_primary_200</item>
|
||||
<item name="colorPrimary300">@color/nord_primary_300</item>
|
||||
<item name="colorPrimary400">@color/nord_primary_400</item>
|
||||
<item name="colorPrimary500">@color/nord_primary_500</item>
|
||||
<item name="colorPrimary600">@color/nord_primary_600</item>
|
||||
<item name="colorPrimary700">@color/nord_primary_700</item>
|
||||
<item name="colorPrimary800">@color/nord_primary_800</item>
|
||||
<item name="colorPrimary900">@color/nord_primary_900</item>
|
||||
|
||||
<item name="bookmark_selected">@color/nord_bookmark_selected</item>
|
||||
<item name="favorite_selected">@color/nord_favorite_selected</item>
|
||||
|
||||
<item name="colorGray900">@color/nord_gray_900</item>
|
||||
<item name="colorGray800t">@color/nord_gray_800t</item>
|
||||
<item name="colorGray800">@color/nord_gray_800</item>
|
||||
<item name="colorGray700">@color/nord_gray_700</item>
|
||||
<item name="colorGray600">@color/nord_gray_600</item>
|
||||
<item name="colorGray500">@color/nord_gray_500</item>
|
||||
|
||||
<item name="colorGray400">@color/nord_gray_400</item>
|
||||
<item name="colorGray300">@color/nord_gray_300</item>
|
||||
<item name="colorGray200">@color/nord_gray_200</item>
|
||||
<item name="colorGray100">@color/nord_gray_100</item>
|
||||
<item name="colorGray50t">@color/nord_gray_50t</item>
|
||||
<item name="colorGray50">@color/nord_gray_50</item>
|
||||
<item name="colorGray25">@color/nord_gray_25</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
||||
@@ -2,7 +2,7 @@
|
||||
<resources>
|
||||
<string name="app_name" translatable="false">Moshidon</string>
|
||||
|
||||
<string name="get_started">Get started</string>
|
||||
<string name="get_started">Create account</string>
|
||||
<string name="already_have_account">I already have an account</string>
|
||||
<string name="log_in">Log in</string>
|
||||
<string name="next">Next</string>
|
||||
@@ -398,17 +398,6 @@
|
||||
<string name="remove_bookmark">Remove bookmark</string>
|
||||
<string name="bookmarks">Bookmarks</string>
|
||||
<string name="your_favorites">Your Favorites</string>
|
||||
<string name="settings_always_reveal_content_warnings">Always reveal content warnings</string>
|
||||
<string name="disable_marquee">Disable scrolling text in title bars</string>
|
||||
<string name="settings_contribute_fork">Contribute to Moshidon</string>
|
||||
<!-- <string name="settings_color_picker">Color theme:</string>-->
|
||||
<!-- <string name="pink_color">Pink</string>-->
|
||||
<!-- <string name="purple_color">Purple</string>-->
|
||||
<!-- <string name="green_color">Green</string>-->
|
||||
<!-- <string name="blue_color">Blue</string>-->
|
||||
<!-- <string name="orange_color">Orange</string>-->
|
||||
<!-- <string name="yellow_color">Yellow</string>-->
|
||||
<string name="translate">Translate</string>
|
||||
<string name="login_title">Welcome Back</string>
|
||||
<string name="login_subtitle">Log in with the server where you created your account.</string>
|
||||
<string name="server_url">Server URL</string>
|
||||
@@ -433,9 +422,5 @@
|
||||
<string name="not_accepting_new_members">Not accepting new members</string>
|
||||
<string name="category_special_interests">Special Interests</string>
|
||||
<string name="signup_passwords_dont_match">Passwords don\'t match</string>
|
||||
<string name="post_language">Language: %s</string>
|
||||
<string name="available_languages">Available languages</string>
|
||||
<string name="language_name">%s (%s)</string>
|
||||
<string name="clear_recent_languages">Clear recent languages</string>
|
||||
<string name="confirm_clear_recent_languages">Are you sure you want to clear your recently used languages?</string>
|
||||
<string name="loading_fediverse_resource_title">Looking it up on the Fediverse…</string>
|
||||
</resources>
|
||||
@@ -1,65 +1,95 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="sk_app_name" translatable="false">Moshidon</string>
|
||||
<string name="sk_pinned_posts">Pinned</string>
|
||||
<string name="sk_delete_and_redraft">Delete and re-draft</string>
|
||||
<string name="sk_confirm_delete_and_redraft_title">Delete and re-draft Post</string>
|
||||
<string name="sk_confirm_delete_and_redraft">Are you sure you want to delete and re-draft this post?</string>
|
||||
<string name="sk_pin_post">Pin to profile</string>
|
||||
<string name="sk_confirm_pin_post_title">Pin post to profile</string>
|
||||
<string name="sk_confirm_pin_post">Do you want to pin this post to your profile?</string>
|
||||
<string name="sk_pinning">Pinning post…</string>
|
||||
<string name="sk_unpin_post">Unpin from profile</string>
|
||||
<string name="sk_confirm_unpin_post_title">Unpin post from profile</string>
|
||||
<string name="sk_confirm_unpin_post">Are you sure you want to unpin this post?</string>
|
||||
<string name="sk_unpinning">Unpinning post…</string>
|
||||
<string name="sk_image_description">Image description</string>
|
||||
<string name="sk_visibility_unlisted">Unlisted</string>
|
||||
<string name="sk_settings_show_replies">Show replies</string>
|
||||
<string name="sk_settings_show_boosts">Show boosts</string>
|
||||
<string name="sk_settings_load_new_posts">Automatically load new posts</string>
|
||||
<string name="sk_settings_show_interaction_counts">Show interaction counts</string>
|
||||
<string name="sk_settings_app_version">Moshidon v%1$s (%2$d)</string>
|
||||
<string name="sk_mark_media_as_sensitive">Mark media as sensitive</string>
|
||||
<string name="sk_user_post_notifications_on">Turned on post notifications for %s</string>
|
||||
<string name="sk_user_post_notifications_off">Turned off post notifications for %s</string>
|
||||
<string name="sk_federated_timeline">Federation</string>
|
||||
<string name="sk_federated_timeline_info_banner">These are the most recent posts by the people in your federation.</string>
|
||||
<string name="sk_update_available">Moshidon %s is ready to download.</string>
|
||||
<string name="sk_update_ready">Moshidon %s is downloaded and ready to install.</string>
|
||||
<string name="sk_check_for_update">Check for update</string>
|
||||
<string name="sk_no_update_available">No update available</string>
|
||||
<string name="sk_list_timelines">Lists</string>
|
||||
<string name="sk_follow_requests">Follow requests</string>
|
||||
<string name="sk_accept_follow_request">Accept follow request</string>
|
||||
<string name="sk_reject_follow_request">Reject follow request</string>
|
||||
<string name="sk_lists_with_user">Lists with %s</string>
|
||||
<string name="sk_settings_always_reveal_content_warnings">Always reveal content warnings</string>
|
||||
<string name="sk_disable_marquee">Disable scrolling text in title bars</string>
|
||||
<string name="sk_settings_contribute">Contribute to Moshidon</string>
|
||||
<string name="sk_settings_show_federated_timeline">Show federated timeline</string>
|
||||
<string name="sk_notification_type_status">Posts</string>
|
||||
<string name="sk_notify_posts">Post notifications</string>
|
||||
<string name="sk_settings_color_picker">Color theme</string>
|
||||
<string name="sk_color_theme_pink">Pink</string>
|
||||
<string name="sk_color_theme_purple">Purple</string>
|
||||
<string name="sk_color_theme_green">Green</string>
|
||||
<string name="sk_color_theme_blue">Blue</string>
|
||||
<string name="sk_color_theme_brown">Orange</string>
|
||||
<string name="sk_color_theme_yellow">Yellow</string>
|
||||
<string name="sk_color_theme_red">Red</string>
|
||||
<string name="sk_color_theme_material3">Material You</string>
|
||||
<string name="sk_not_supported">Not supported on your device</string>
|
||||
<string name="sk_poll_allow_multiple">Allow multiple choices</string>
|
||||
<string name="sk_translate_post">Translate</string>
|
||||
<string name="sk_translate_show_original">Show original</string>
|
||||
<string name="sk_translated_using">Translated using %s</string>
|
||||
<string name="sk_post_language">Language: %s</string>
|
||||
<string name="sk_available_languages">Available languages</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_clear_recent_languages">Clear recent languages</string>
|
||||
<string name="sk_confirm_clear_recent_languages">Are you sure you want to clear your recently used languages?</string>
|
||||
<string name="sk_welcome_title">Welcome to Moshidon!</string>
|
||||
<string name="sk_welcome_text">To get started, please enter your home instance’s domain name below.</string>
|
||||
<string name="sk_example_domain">example.social</string>
|
||||
</resources>
|
||||
<string name="sk_app_name">Moshidon</string>
|
||||
<string name="sk_pinned_posts">Pinned</string>
|
||||
<string name="sk_delete_and_redraft">Delete and re-draft</string>
|
||||
<string name="sk_confirm_delete_and_redraft_title">Delete and re-draft Post</string>
|
||||
<string name="sk_confirm_delete_and_redraft">Are you sure you want to delete and re-draft this post?</string>
|
||||
<string name="sk_pin_post">Pin to profile</string>
|
||||
<string name="sk_confirm_pin_post_title">Pin post to profile</string>
|
||||
<string name="sk_confirm_pin_post">Do you want to pin this post to your profile?</string>
|
||||
<string name="sk_pinning">Pinning post…</string>
|
||||
<string name="sk_unpin_post">Unpin from profile</string>
|
||||
<string name="sk_confirm_unpin_post_title">Unpin post from profile</string>
|
||||
<string name="sk_confirm_unpin_post">Are you sure you want to unpin this post?</string>
|
||||
<string name="sk_unpinning">Unpinning post…</string>
|
||||
<string name="sk_image_description">Image description</string>
|
||||
<string name="sk_visibility_unlisted">Unlisted</string>
|
||||
<string name="sk_settings_show_replies">Show replies</string>
|
||||
<string name="sk_settings_show_boosts">Show boosts</string>
|
||||
<string name="sk_settings_load_new_posts">Automatically load new posts</string>
|
||||
<string name="sk_settings_show_interaction_counts">Show interaction counts</string>
|
||||
<string name="sk_settings_app_version">Moshidon v%1$s (%2$d)</string>
|
||||
<string name="sk_mark_media_as_sensitive">Mark media as sensitive</string>
|
||||
<string name="sk_user_post_notifications_on">Turned on post notifications for %s</string>
|
||||
<string name="sk_user_post_notifications_off">Turned off post notifications for %s</string>
|
||||
<string name="sk_federated_timeline">Federation</string>
|
||||
<string name="sk_federated_timeline_info_banner">These are the most recent posts by the people in your federation.</string>
|
||||
<string name="sk_update_available">Moshidon %s is ready to download.</string>
|
||||
<string name="sk_update_ready">Moshidon %s is downloaded and ready to install.</string>
|
||||
<string name="sk_changelog">Changelog:</string>
|
||||
<string name="sk_check_for_update">Check for update</string>
|
||||
<string name="sk_no_update_available">No update available</string>
|
||||
<string name="sk_list_timelines">Lists</string>
|
||||
<string name="sk_follow_requests">Follow requests</string>
|
||||
<string name="sk_accept_follow_request">Accept follow request</string>
|
||||
<string name="sk_reject_follow_request">Reject follow request</string>
|
||||
<string name="sk_lists_with_user">Lists with %s</string>
|
||||
<string name="sk_settings_always_reveal_content_warnings">Always reveal content warnings</string>
|
||||
<string name="sk_disable_marquee">Disable scrolling text in title bars</string>
|
||||
<string name="sk_disable_dividers">Disable toot dividers</string>
|
||||
<string name="sk_settings_contribute">Contribute to Moshidon</string>
|
||||
<string name="sk_settings_show_federated_timeline">Show federated timeline</string>
|
||||
<string name="sk_notification_type_status">Posts</string>
|
||||
<string name="sk_notify_posts">Post notifications</string>
|
||||
<string name="sk_settings_color_palette">Color palette</string>
|
||||
<string name="sk_color_palette_material3">System</string>
|
||||
<string name="sk_color_palette_pink">Pink</string>
|
||||
<string name="sk_color_palette_purple">Purple</string>
|
||||
<string name="sk_color_palette_green">Green</string>
|
||||
<string name="sk_color_palette_blue">Blue</string>
|
||||
<string name="sk_color_palette_brown">Brown</string>
|
||||
<string name="sk_color_palette_red">Red</string>
|
||||
<string name="sk_color_palette_yellow">Yellow</string>
|
||||
<string name="sk_color_palette_nord">Nord</string>
|
||||
<string name="sk_poll_allow_multiple">Allow multiple choices</string>
|
||||
<string name="sk_translate_post">Translate</string>
|
||||
<string name="sk_translate_show_original">Show original</string>
|
||||
<string name="sk_translated_using">Translated using %s</string>
|
||||
<string name="sk_post_language">Language: %s</string>
|
||||
<string name="sk_available_languages">Available languages</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
<string name="sk_clear_recent_languages">Clear recently used languages</string>
|
||||
<string name="sk_confirm_clear_recent_languages">Are you sure you want to clear your recently used languages?</string>
|
||||
<string name="sk_welcome_title">Welcome!</string>
|
||||
<string name="sk_welcome_text">The shark salutes you! To get started, please enter your home instance’s domain name below.</string>
|
||||
<string name="sk_example_domain">example.social</string>
|
||||
<string name="sk_app_username" translatable="false">\@megalodon</string>
|
||||
<string name="sk_tabs_disable_swipe">Disable swiping between tabs</string>
|
||||
<string name="sk_settings_profile">Set up profile</string>
|
||||
<string name="sk_personal_note">Personal note for this profile:</string>
|
||||
<string name="sk_settings_posting">Posting preferences</string>
|
||||
<string name="sk_settings_filters">Configure filters</string>
|
||||
<string name="sk_settings_auth">Security settings</string>
|
||||
<string name="sk_settings_rules">Rules</string>
|
||||
<string name="sk_settings_about">About the app</string>
|
||||
<string name="sk_settings_donate">Donate</string>
|
||||
<string name="sk_delete_notification">Delete notification</string>
|
||||
<string name="sk_delete_notification_confirm_action">Delete notification</string>
|
||||
<string name="sk_delete_notification_confirm">Are you sure you want to delete this notification?</string>
|
||||
<string name="sk_clear_all_notifications">Clear all notifications</string>
|
||||
<string name="sk_clear_all_notifications_confirm_action">Delete all</string>
|
||||
<string name="sk_clear_all_notifications_confirm">Are you sure you want to clear all notifications\?</string>
|
||||
<string name="sk_enable_delete_notifications">Enable deleting notifications</string>
|
||||
<string name="sk_settings_show_differentiated_notification_icons">Custom icons for interactions</string>
|
||||
<string name="sk_settings_publish_button_text">Publish button text</string>
|
||||
<string name="sk_settings_publish_button_text_title">Customize Publish button text</string>
|
||||
<string name="sk_settings_hide_translate_in_timeline">Hide translate button in timeline</string>
|
||||
<string name="sk_settings_translation_availability_note_available">%s supports translation!</string>
|
||||
<string name="sk_settings_translation_availability_note_unavailable">%s does not appear to support translation.</string>
|
||||
<string name="sk_loading_fediverse_resource_title">Looking it up on the Fediverse…</string>
|
||||
<string name="sk_undo_reblog">Undo reblog</string>
|
||||
<string name="sk_reblog_with_visibility">Reblog with visibility</string>
|
||||
<string name="sk_quote_post">Post about this</string>
|
||||
<string name="sk_hashtags_you_follow">Hashtags you follow</string>
|
||||
</resources>
|
||||
@@ -13,30 +13,31 @@
|
||||
<item name="secondaryButtonStyle">@style/Widget.Mastodon.Button.Secondary_DarkOnLight</item>
|
||||
<item name="primaryLargeButtonStyle">@style/Widget.Mastodon.Button.Large.Primary_DarkOnLight</item>
|
||||
<item name="secondaryLargeButtonStyle">@style/Widget.Mastodon.Button.Large.Secondary_DarkOnLight</item>
|
||||
<item name="android:colorAccent">@color/primary_700</item>
|
||||
<item name="android:colorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:colorBackground">@color/gray_100</item>
|
||||
<item name="android:textColorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:textColorSecondary">@color/custom_gray_500</item>
|
||||
<item name="colorButtonText">@color/gray_50</item>
|
||||
<item name="android:colorAccent">?colorPrimary700</item>
|
||||
<item name="android:colorPrimary">?colorGray800</item>
|
||||
<item name="android:colorBackground">?colorGray100</item>
|
||||
<item name="android:textColorPrimary">?colorGray800</item>
|
||||
<item name="android:textColorSecondary">?colorGray500</item>
|
||||
<item name="colorButtonText">?colorGray50</item>
|
||||
<item name="colorSecondary">#E9EDF2</item>
|
||||
<item name="colorBackgroundLight">@color/gray_50</item>
|
||||
<item name="colorBackgroundLightest">@color/gray_25</item>
|
||||
<item name="colorBackgroundLight">?colorGray50</item>
|
||||
<item name="colorBackgroundLightest">?colorGray25</item>
|
||||
<item name="colorBackgroundPopup">?colorBackgroundLightest</item>
|
||||
<item name="colorDarkIcon">@color/custom_gray_900</item>
|
||||
<item name="colorDarkIcon">?colorGray900</item>
|
||||
<item name="colorWindowBackground">@color/white</item>
|
||||
<item name="android:statusBarColor">@color/gray_50</item>
|
||||
<item name="android:navigationBarColor">@color/navigation_bar_bg</item>
|
||||
<item name="android:statusBarColor">?colorGray50</item>
|
||||
<item name="android:navigationBarColor">?android:statusBarColor</item>
|
||||
<item name="android:actionBarTheme">@style/Theme.Mastodon.Toolbar</item>
|
||||
<item name="android:alertDialogTheme">@style/Theme.Mastodon.Dialog.Alert</item>
|
||||
<item name="colorPollMostVoted">@color/primary_500</item>
|
||||
<item name="colorPollVoted">@color/gray_300</item>
|
||||
<item name="colorAccentLight">@color/primary_600</item>
|
||||
<item name="colorSearchField">@color/gray_200</item>
|
||||
<item name="colorSearchHint">@color/custom_gray_600</item>
|
||||
<item name="colorTabInactive">@color/gray_400</item>
|
||||
<item name="colorAccentLightest">@color/primary_100</item>
|
||||
<item name="profileHeaderBackground">@color/custom_gray_500</item>
|
||||
<item name="colorPollMostVoted">?colorPrimary500</item>
|
||||
<item name="colorPollVoted">?colorGray300</item>
|
||||
<item name="colorAccentLight">?colorPrimary600</item>
|
||||
<item name="colorSearchField">?colorGray200</item>
|
||||
<item name="colorSearchHint">?colorGray600</item>
|
||||
<item name="colorTabInactive">?colorGray400</item>
|
||||
<item name="colorAccentLightest">?colorPrimary100</item>
|
||||
<item name="profileHeaderBackground">?colorGray500</item>
|
||||
<item name="toolbarBackground">?colorGray50</item>
|
||||
|
||||
<item name="buttonBackground">@drawable/bg_button_primary_dark_on_light</item>
|
||||
<item name="android:editTextBackground">@drawable/bg_edittext_light</item>
|
||||
@@ -72,8 +73,27 @@
|
||||
<item name="colorM3OnError">#FFF</item>
|
||||
<item name="colorM3ErrorContainer">#F9DEDC</item>
|
||||
<item name="colorM3OnErrorContainer">#410E0B</item>
|
||||
|
||||
<!-- colors for button_bg|text_primary|secondary_dark|light_on_light|dark.xml -->
|
||||
<item name="colorButtonBackgroundPrimaryDarkOnLight">?colorGray800</item>
|
||||
<item name="colorButtonBackgroundPrimaryDarkOnLightDisabled">?colorGray300</item>
|
||||
<item name="colorButtonTextPrimaryDarkOnLight">?colorGray50</item>
|
||||
<item name="colorButtonTextPrimaryDarkOnLightDisabled">?colorGray400</item>
|
||||
<item name="colorButtonBackgroundPrimaryLightOnDark">?colorGray100</item>
|
||||
<item name="colorButtonBackgroundPrimaryLightOnDarkDisabled">?colorGray500</item>
|
||||
<item name="colorButtonTextPrimaryLightOnDark">?colorGray800</item>
|
||||
<item name="colorButtonTextPrimaryLightOnDarkDisabled">?colorGray400</item>
|
||||
<item name="colorButtonBackgroundSecondaryDarkOnLight">?colorGray25</item>
|
||||
<item name="colorButtonBackgroundSecondaryDarkOnLightDisabled">?colorGray100</item>
|
||||
<item name="colorButtonTextSecondaryDarkOnLight">?colorGray800</item>
|
||||
<item name="colorButtonTextSecondaryDarkOnLightDisabled">?colorGray400</item>
|
||||
<item name="colorButtonBackgroundSecondaryLightOnDark">?colorGray600</item>
|
||||
<item name="colorButtonBackgroundSecondaryLightOnDarkDisabled">?colorGray300</item>
|
||||
<item name="colorButtonTextSecondaryLightOnDark">?colorGray50</item>
|
||||
<item name="colorButtonTextSecondaryLightOnDarkDisabled">?colorGray400</item>
|
||||
</style>
|
||||
|
||||
|
||||
<style name="Theme.Mastodon.Dark" parent="Theme.AppKit">
|
||||
<!-- needed to disable scrim on API 29+ -->
|
||||
<item name="android:enforceNavigationBarContrast" tools:ignore="NewApi">false</item>
|
||||
@@ -87,32 +107,31 @@
|
||||
<item name="secondaryButtonStyle">@style/Widget.Mastodon.Button.Secondary_LightOnDark</item>
|
||||
<item name="primaryLargeButtonStyle">@style/Widget.Mastodon.Button.Large.Primary_LightOnDark</item>
|
||||
<item name="secondaryLargeButtonStyle">@style/Widget.Mastodon.Button.Large.Secondary_LightOnDark</item>
|
||||
<item name="android:colorAccent">@color/primary_400</item>
|
||||
<item name="android:colorPrimary">@color/gray_50</item>
|
||||
<item name="android:colorBackground">@color/custom_gray_700</item>
|
||||
<item name="android:textColorPrimary">@color/gray_50</item>
|
||||
<item name="android:textColorSecondary">@color/gray_400</item>
|
||||
<item name="colorButtonText">@color/custom_gray_800</item>
|
||||
<item name="android:colorAccent">?colorPrimary400</item>
|
||||
<item name="android:colorPrimary">?colorGray50</item>
|
||||
<item name="android:colorBackground">?colorGray700</item>
|
||||
<item name="android:textColorPrimary">?colorGray50</item>
|
||||
<item name="android:textColorSecondary">?colorGray400</item>
|
||||
<item name="colorButtonText">?colorGray800</item>
|
||||
<item name="colorSecondary">#E9EDF2</item>
|
||||
<item name="colorBackgroundLight">@color/custom_gray_700</item>
|
||||
<item name="colorBackgroundLightest">@color/custom_gray_900</item>
|
||||
<item name="colorBackgroundLight">?colorGray700</item>
|
||||
<item name="colorBackgroundLightest">?colorGray900</item>
|
||||
<item name="colorBackgroundPopup">?colorBackgroundLightest</item>
|
||||
<item name="colorDarkIcon">@color/gray_25</item>
|
||||
<item name="colorWindowBackground">@color/custom_gray_800</item>
|
||||
<item name="android:statusBarColor">@color/custom_gray_800</item>
|
||||
<item name="android:navigationBarColor">@color/custom_gray_800</item>
|
||||
<item name="colorDarkIcon">?colorGray25</item>
|
||||
<item name="colorWindowBackground">?colorGray800</item>
|
||||
<item name="android:statusBarColor">?colorGray800</item>
|
||||
<item name="android:navigationBarColor">?android:statusBarColor</item>
|
||||
<item name="android:actionBarTheme">@style/Theme.Mastodon.Toolbar.Dark</item>
|
||||
<item name="android:alertDialogTheme">@style/Theme.Mastodon.Dialog.Alert.Dark</item>
|
||||
<item name="colorPollMostVoted">@color/primary_700</item>
|
||||
<item name="colorPollVoted">@color/custom_gray_600</item>
|
||||
<item name="colorAccentLight">@color/primary_600</item>
|
||||
<item name="colorAccentLightest">@color/primary_800</item>
|
||||
<item name="colorTabInactive">@color/gray_400</item>
|
||||
<item name="colorPollMostVoted">?colorPrimary700</item>
|
||||
<item name="colorPollVoted">?colorGray600</item>
|
||||
<item name="colorAccentLight">?colorPrimary600</item>
|
||||
<item name="colorAccentLightest">?colorPrimary800</item>
|
||||
<item name="colorTabInactive">?colorGray400</item>
|
||||
<item name="profileHeaderBackground">?colorWindowBackground</item>
|
||||
|
||||
<!-- TODO dark colors -->
|
||||
<item name="colorSearchField">@color/custom_gray_700</item>
|
||||
<item name="colorSearchHint">@color/gray_300</item>
|
||||
<item name="colorSearchField">?colorGray700</item>
|
||||
<item name="colorSearchHint">?colorGray300</item>
|
||||
<item name="toolbarBackground">?colorGray800</item>
|
||||
|
||||
<item name="buttonBackground">@drawable/bg_button_primary_light_on_dark</item>
|
||||
<item name="android:editTextBackground">@drawable/bg_edittext_dark</item>
|
||||
@@ -148,6 +167,24 @@
|
||||
<item name="colorM3OnError">#601410</item>
|
||||
<item name="colorM3ErrorContainer">#8C1D18</item>
|
||||
<item name="colorM3OnErrorContainer">#F9DEDC</item>
|
||||
|
||||
<!-- colors for button_bg|text_primary|secondary_dark|light_on_light|dark.xml -->
|
||||
<item name="colorButtonBackgroundPrimaryDarkOnLight">?colorGray800</item>
|
||||
<item name="colorButtonBackgroundPrimaryDarkOnLightDisabled">?colorGray300</item>
|
||||
<item name="colorButtonTextPrimaryDarkOnLight">?colorGray50</item>
|
||||
<item name="colorButtonTextPrimaryDarkOnLightDisabled">?colorGray400</item>
|
||||
<item name="colorButtonBackgroundPrimaryLightOnDark">?colorGray100</item>
|
||||
<item name="colorButtonBackgroundPrimaryLightOnDarkDisabled">?colorGray500</item>
|
||||
<item name="colorButtonTextPrimaryLightOnDark">?colorGray800</item>
|
||||
<item name="colorButtonTextPrimaryLightOnDarkDisabled">?colorGray400</item>
|
||||
<item name="colorButtonBackgroundSecondaryDarkOnLight">?colorGray25</item>
|
||||
<item name="colorButtonBackgroundSecondaryDarkOnLightDisabled">?colorGray100</item>
|
||||
<item name="colorButtonTextSecondaryDarkOnLight">?colorGray800</item>
|
||||
<item name="colorButtonTextSecondaryDarkOnLightDisabled">?colorGray400</item>
|
||||
<item name="colorButtonBackgroundSecondaryLightOnDark">?colorGray600</item>
|
||||
<item name="colorButtonBackgroundSecondaryLightOnDarkDisabled">?colorGray300</item>
|
||||
<item name="colorButtonTextSecondaryLightOnDark">?colorGray50</item>
|
||||
<item name="colorButtonTextSecondaryLightOnDarkDisabled">?colorGray400</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dark.TrueBlack">
|
||||
@@ -157,708 +194,31 @@
|
||||
<item name="android:actionBarTheme">@style/Theme.Mastodon.Toolbar.Dark.TrueBlack</item>
|
||||
<item name="colorBackgroundLight">@color/black</item>
|
||||
<item name="colorButtonText">@color/black</item>
|
||||
<item name="colorPollVoted">@color/custom_gray_800</item>
|
||||
<item name="colorSearchField">@color/custom_gray_900</item>
|
||||
<item name="colorPollVoted">?colorGray700</item>
|
||||
<item name="colorSearchField">?colorGray900</item>
|
||||
<item name="colorBackgroundLightest">@color/black</item>
|
||||
<item name="colorBackgroundPopup">@color/custom_gray_900</item>
|
||||
<item name="colorBackgroundPopup">?colorGray900</item>
|
||||
<item name="colorWindowBackground">@color/black</item>
|
||||
|
||||
<item name="colorM3Background">#000</item>
|
||||
<!-- <item name="colorButtonBackgroundPrimaryLightOnDarkDisabled">?colorGray900</item>-->
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.AutoLightDark" parent="Theme.Mastodon.Light"/>
|
||||
<style name="Theme.Mastodon.AutoLightDark.TrueBlack" parent="Theme.Mastodon.Light"/>
|
||||
|
||||
<style name="Theme.Mastodon.Light.CustomBase" parent="Theme.Mastodon.Light">
|
||||
<!-- needed to disable scrim on API 29+ -->
|
||||
<item name="android:colorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:textColorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:textColorSecondary">@color/custom_gray_500</item>
|
||||
<item name="colorDarkIcon">@color/custom_gray_900</item>
|
||||
<item name="colorSearchHint">@color/custom_gray_600</item>
|
||||
<item name="profileHeaderBackground">@color/custom_gray_500</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dark.CustomBase" parent="Theme.Mastodon.Dark">
|
||||
<!-- needed to disable scrim on API 29+ -->
|
||||
<item name="android:colorBackground">@color/custom_gray_700</item>
|
||||
<item name="colorButtonText">@color/custom_gray_800</item>
|
||||
<item name="colorBackgroundLight">@color/custom_gray_700</item>
|
||||
<item name="colorBackgroundLightest">@color/custom_gray_900</item>
|
||||
<item name="colorBackgroundPopup">@color/custom_gray_900</item>
|
||||
<item name="colorDarkIcon">@color/gray_25</item>
|
||||
<item name="colorWindowBackground">@color/custom_gray_800</item>
|
||||
<item name="android:statusBarColor">@color/custom_gray_800</item>
|
||||
<item name="android:navigationBarColor">@color/custom_gray_800</item>
|
||||
<item name="colorPollVoted">@color/custom_gray_600</item>
|
||||
<item name="profileHeaderBackground">?colorWindowBackground</item>
|
||||
<item name="android:actionBarTheme">@style/Theme.Mastodon.Toolbar.Dark.CustomBase</item>
|
||||
|
||||
<!-- TODO dark colors -->
|
||||
<item name="colorSearchField">@color/custom_gray_700</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dark.TrueBlack.CustomBase">
|
||||
<item name="colorPollVoted">@color/custom_gray_800</item>
|
||||
<item name="colorSearchField">@color/custom_gray_900</item>
|
||||
<item name="colorBackgroundPopup">@color/custom_gray_900</item>
|
||||
<item name="android:navigationBarColor">@color/black</item>
|
||||
<item name="android:colorBackground">@color/black</item>
|
||||
<item name="android:statusBarColor">@color/black</item>
|
||||
<item name="android:actionBarTheme">@style/Theme.Mastodon.Toolbar.Dark.TrueBlack</item>
|
||||
<item name="colorBackgroundLight">@color/black</item>
|
||||
<item name="colorWindowBackground">@color/black</item>
|
||||
<item name="colorButtonText">@color/black</item>
|
||||
<item name="colorBackgroundLightest">@color/black</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Light.Material3" parent="Theme.Mastodon.Light.CustomBase">
|
||||
<!-- needed to disable scrim on API 29+ -->
|
||||
<item name="android:colorPrimary">@color/m3_gray_800</item>
|
||||
<item name="android:textColorPrimary">@color/m3_gray_800</item>
|
||||
<item name="android:textColorSecondary">@color/m3_gray_500</item>
|
||||
<item name="colorDarkIcon">@color/m3_gray_900</item>
|
||||
<item name="colorSearchHint">@color/m3_gray_600</item>
|
||||
<item name="profileHeaderBackground">@color/m3_gray_500</item>
|
||||
|
||||
<item name="android:colorAccent">@color/m3_primary_700</item>
|
||||
<item name="android:colorBackground">@color/m3_gray_100</item>
|
||||
<item name="colorButtonText">@color/m3_gray_50</item>
|
||||
<item name="colorBackgroundLight">@color/m3_gray_50</item>
|
||||
<item name="colorBackgroundLightest">@color/m3_gray_25</item>
|
||||
<item name="android:statusBarColor">@color/m3_gray_50</item>
|
||||
<item name="android:navigationBarColor">@color/m3_navigation_bar_bg</item>
|
||||
<item name="android:actionBarTheme">@style/Theme.Mastodon.Toolbar.M3</item>
|
||||
<item name="android:alertDialogTheme">@style/Theme.Mastodon.Dialog.Alert.M3</item>
|
||||
<item name="colorPollMostVoted">@color/m3_primary_500</item>
|
||||
<item name="colorPollVoted">@color/m3_gray_300</item>
|
||||
<item name="colorAccentLight">@color/m3_primary_600</item>
|
||||
<item name="colorSearchField">@color/m3_gray_200</item>
|
||||
<item name="colorTabInactive">@color/m3_gray_400</item>
|
||||
<item name="colorAccentLightest">@color/m3_primary_100</item>
|
||||
<item name="colorSecondary">@color/m3_gray_50</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dark.Material3" parent="Theme.Mastodon.Dark.CustomBase">
|
||||
<!-- needed to disable scrim on API 29+ -->
|
||||
<item name="android:colorBackground">@color/m3_gray_800</item>
|
||||
<item name="colorButtonText">@color/m3_gray_900</item>
|
||||
<item name="colorBackgroundLight">@color/m3_gray_800</item>
|
||||
<item name="colorBackgroundLightest">@color/m3_gray_900</item>
|
||||
<item name="colorBackgroundPopup">@color/m3_gray_900</item>
|
||||
<item name="colorDarkIcon">@color/m3_gray_25</item>
|
||||
<item name="colorWindowBackground">@color/m3_gray_900</item>
|
||||
<item name="android:statusBarColor">@color/m3_gray_900</item>
|
||||
<item name="android:navigationBarColor">@color/m3_gray_900</item>
|
||||
<item name="colorPollVoted">@color/m3_gray_700</item>
|
||||
<item name="profileHeaderBackground">?colorWindowBackground</item>
|
||||
<item name="android:actionBarTheme">@style/Theme.Mastodon.Toolbar.Dark.Material3</item>
|
||||
|
||||
<item name="android:colorAccent">@color/m3_primary_400</item>
|
||||
<item name="android:colorPrimary">@color/m3_gray_50</item>
|
||||
<item name="android:textColorPrimary">@color/m3_gray_50</item>
|
||||
<item name="android:textColorSecondary">@color/m3_gray_400</item>
|
||||
<item name="android:alertDialogTheme">@style/Theme.Mastodon.Dialog.Alert.Dark.M3</item>
|
||||
<item name="colorPollMostVoted">@color/m3_primary_700</item>
|
||||
<item name="colorAccentLight">@color/m3_primary_600</item>
|
||||
<item name="colorAccentLightest">@color/m3_primary_800</item>
|
||||
<item name="colorTabInactive">@color/m3_gray_400</item>
|
||||
<item name="colorSearchHint">@color/m3_gray_300</item>
|
||||
<item name="colorSecondary">@color/m3_gray_50</item>
|
||||
|
||||
<!-- TODO dark colors -->
|
||||
<item name="colorSearchField">@color/m3_gray_700</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dark.TrueBlack.Material3" parent="Theme.Mastodon.Dark.Material3">
|
||||
<item name="android:colorAccent">@color/m3_primary_400</item>
|
||||
<item name="colorPollMostVoted">@color/m3_primary_700</item>
|
||||
<item name="colorAccentLight">@color/m3_primary_600</item>
|
||||
<item name="colorAccentLightest">@color/m3_primary_800</item>
|
||||
<item name="colorSecondary">@color/m3_gray_50</item>
|
||||
|
||||
<item name="colorPollVoted">@color/m3_gray_800</item>
|
||||
<item name="colorSearchField">@color/m3_gray_900</item>
|
||||
<item name="colorBackgroundPopup">@color/m3_gray_900</item>
|
||||
<item name="android:navigationBarColor">@color/black</item>
|
||||
<item name="android:colorBackground">@color/black</item>
|
||||
<item name="android:statusBarColor">@color/black</item>
|
||||
<item name="android:actionBarTheme">@style/Theme.Mastodon.Toolbar.Dark.TrueBlack</item>
|
||||
<item name="colorBackgroundLight">@color/black</item>
|
||||
<item name="colorWindowBackground">@color/black</item>
|
||||
<item name="colorButtonText">@color/black</item>
|
||||
<item name="colorBackgroundLightest">@color/black</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.AutoLightDark.Material3" parent="Theme.Mastodon.Light.Material3"/>
|
||||
<style name="Theme.Mastodon.AutoLightDark.TrueBlack.Material3" parent="Theme.Mastodon.Light.Material3"/>
|
||||
|
||||
<style name="Theme.Mastodon.Dialog.Alert.Dark.M3" parent="android:Theme.Material.Dialog.Alert">
|
||||
<item name="android:windowTitleStyle">@style/alert_title</item>
|
||||
<item name="android:dialogPreferredPadding">24dp</item>
|
||||
<item name="android:windowBackground">@drawable/bg_alert</item>
|
||||
<item name="android:buttonBarButtonStyle">@style/Widget.Mastodon.ButtonBarButton</item>
|
||||
|
||||
<!-- colors -->
|
||||
<item name="android:colorAccent">@color/m3_primary_600</item>
|
||||
<item name="android:colorPrimary">@color/m3_gray_50</item>
|
||||
<item name="android:colorBackground">@color/m3_gray_700</item>
|
||||
<item name="android:textColorPrimary">@color/m3_gray_50</item>
|
||||
<item name="android:textColorSecondary">@color/m3_gray_400</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dialog.Alert.M3" parent="android:Theme.Material.Light.Dialog.Alert">
|
||||
<item name="android:windowTitleStyle">@style/alert_title</item>
|
||||
<item name="android:dialogPreferredPadding">24dp</item>
|
||||
<item name="android:windowBackground">@drawable/bg_alert</item>
|
||||
<item name="android:buttonBarButtonStyle">@style/Widget.Mastodon.ButtonBarButton</item>
|
||||
|
||||
<!-- colors -->
|
||||
<item name="android:colorAccent">@color/m3_primary_700</item>
|
||||
<item name="android:colorPrimary">@color/m3_gray_800</item>
|
||||
<item name="android:colorBackground">@color/m3_gray_100</item>
|
||||
<item name="android:textColorPrimary">@color/m3_gray_800</item>
|
||||
<item name="android:textColorSecondary">@color/m3_gray_500</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Toolbar.M3" parent="android:ThemeOverlay.Material.ActionBar">
|
||||
<item name="android:colorPrimary">@color/m3_gray_50</item>
|
||||
<item name="android:textColorPrimary">@color/m3_gray_800</item>
|
||||
<item name="android:textColorSecondary">@color/m3_gray_800</item>
|
||||
</style>
|
||||
|
||||
|
||||
<style name="Theme.Mastodon.Light.Green" parent="Theme.Mastodon.Light.CustomBase">
|
||||
<item name="android:colorAccent">@color/green_primary_700</item>
|
||||
<item name="android:colorBackground">@color/green_gray_100</item>
|
||||
<item name="colorButtonText">@color/green_gray_50</item>
|
||||
<item name="colorBackgroundLight">@color/green_gray_50</item>
|
||||
<item name="colorBackgroundLightest">@color/green_gray_25</item>
|
||||
<item name="android:statusBarColor">@color/green_gray_50</item>
|
||||
<item name="android:navigationBarColor">@color/green_navigation_bar_bg</item>
|
||||
<item name="android:actionBarTheme">@style/Theme.Mastodon.Toolbar.Green</item>
|
||||
<item name="android:alertDialogTheme">@style/Theme.Mastodon.Dialog.Alert.Green</item>
|
||||
<item name="colorPollMostVoted">@color/green_primary_500</item>
|
||||
<item name="colorPollVoted">@color/green_gray_300</item>
|
||||
<item name="colorAccentLight">@color/green_primary_600</item>
|
||||
<item name="colorSearchField">@color/green_gray_200</item>
|
||||
<item name="colorTabInactive">@color/green_gray_400</item>
|
||||
<item name="colorAccentLightest">@color/green_primary_100</item>
|
||||
<item name="colorSecondary">@color/green_gray_50</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dark.Green" parent="Theme.Mastodon.Dark.CustomBase">
|
||||
<item name="android:colorAccent">@color/green_primary_400</item>
|
||||
<item name="android:colorPrimary">@color/green_gray_50</item>
|
||||
<item name="android:textColorPrimary">@color/green_gray_50</item>
|
||||
<item name="android:textColorSecondary">@color/green_gray_400</item>
|
||||
<item name="android:alertDialogTheme">@style/Theme.Mastodon.Dialog.Alert.Dark.Green</item>
|
||||
<item name="colorPollMostVoted">@color/green_primary_700</item>
|
||||
<item name="colorAccentLight">@color/green_primary_600</item>
|
||||
<item name="colorAccentLightest">@color/green_primary_800</item>
|
||||
<item name="colorTabInactive">@color/green_gray_400</item>
|
||||
<item name="colorSearchHint">@color/green_gray_300</item>
|
||||
<item name="colorSecondary">@color/green_gray_50</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dark.TrueBlack.Green" parent="Theme.Mastodon.Dark.Green">
|
||||
<item name="android:colorAccent">@color/green_primary_400</item>
|
||||
<item name="colorPollMostVoted">@color/green_primary_700</item>
|
||||
<item name="colorAccentLight">@color/green_primary_600</item>
|
||||
<item name="colorAccentLightest">@color/green_primary_800</item>
|
||||
<item name="colorSecondary">@color/green_gray_50</item>
|
||||
|
||||
<item name="colorPollVoted">@color/custom_gray_800</item>
|
||||
<item name="colorSearchField">@color/custom_gray_900</item>
|
||||
<item name="colorBackgroundPopup">@color/custom_gray_900</item>
|
||||
<item name="android:navigationBarColor">@color/black</item>
|
||||
<item name="android:colorBackground">@color/black</item>
|
||||
<item name="android:statusBarColor">@color/black</item>
|
||||
<item name="android:actionBarTheme">@style/Theme.Mastodon.Toolbar.Dark.TrueBlack</item>
|
||||
<item name="colorBackgroundLight">@color/black</item>
|
||||
<item name="colorWindowBackground">@color/black</item>
|
||||
<item name="colorButtonText">@color/black</item>
|
||||
<item name="colorBackgroundLightest">@color/black</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.AutoLightDark.Green" parent="Theme.Mastodon.Light.Green"/>
|
||||
<style name="Theme.Mastodon.AutoLightDark.TrueBlack.Green" parent="Theme.Mastodon.Light.Green"/>
|
||||
|
||||
<style name="Theme.Mastodon.Dialog.Alert.Dark.Green" parent="android:Theme.Material.Dialog.Alert">
|
||||
<item name="android:windowTitleStyle">@style/alert_title</item>
|
||||
<item name="android:dialogPreferredPadding">24dp</item>
|
||||
<item name="android:windowBackground">@drawable/bg_alert</item>
|
||||
<item name="android:buttonBarButtonStyle">@style/Widget.Mastodon.ButtonBarButton</item>
|
||||
|
||||
<!-- colors -->
|
||||
<item name="android:colorAccent">@color/green_primary_600</item>
|
||||
<item name="android:colorPrimary">@color/green_gray_50</item>
|
||||
<item name="android:colorBackground">@color/custom_gray_700</item>
|
||||
<item name="android:textColorPrimary">@color/green_gray_50</item>
|
||||
<item name="android:textColorSecondary">@color/green_gray_400</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dialog.Alert.Green" parent="android:Theme.Material.Light.Dialog.Alert">
|
||||
<item name="android:windowTitleStyle">@style/alert_title</item>
|
||||
<item name="android:dialogPreferredPadding">24dp</item>
|
||||
<item name="android:windowBackground">@drawable/bg_alert</item>
|
||||
<item name="android:buttonBarButtonStyle">@style/Widget.Mastodon.ButtonBarButton</item>
|
||||
|
||||
<!-- colors -->
|
||||
<item name="android:colorAccent">@color/green_primary_700</item>
|
||||
<item name="android:colorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:colorBackground">@color/green_gray_100</item>
|
||||
<item name="android:textColorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:textColorSecondary">@color/custom_gray_500</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Toolbar.Green" parent="android:ThemeOverlay.Material.ActionBar">
|
||||
<item name="android:colorPrimary">@color/green_gray_50</item>
|
||||
<item name="android:textColorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:textColorSecondary">@color/custom_gray_800</item>
|
||||
</style>
|
||||
|
||||
|
||||
<style name="Theme.Mastodon.Light.Blue" parent="Theme.Mastodon.Light.CustomBase">
|
||||
<item name="android:colorAccent">@color/blue_primary_700</item>
|
||||
<item name="android:colorBackground">@color/blue_gray_100</item>
|
||||
<item name="colorButtonText">@color/blue_gray_50</item>
|
||||
<item name="colorBackgroundLight">@color/blue_gray_50</item>
|
||||
<item name="colorBackgroundLightest">@color/blue_gray_25</item>
|
||||
<item name="android:statusBarColor">@color/blue_gray_50</item>
|
||||
<item name="android:navigationBarColor">@color/blue_navigation_bar_bg</item>
|
||||
<item name="android:actionBarTheme">@style/Theme.Mastodon.Toolbar.Blue</item>
|
||||
<item name="android:alertDialogTheme">@style/Theme.Mastodon.Dialog.Alert.Blue</item>
|
||||
<item name="colorPollMostVoted">@color/blue_primary_500</item>
|
||||
<item name="colorPollVoted">@color/blue_gray_300</item>
|
||||
<item name="colorAccentLight">@color/blue_primary_600</item>
|
||||
<item name="colorSearchField">@color/blue_gray_200</item>
|
||||
<item name="colorTabInactive">@color/blue_gray_400</item>
|
||||
<item name="colorAccentLightest">@color/blue_primary_100</item>
|
||||
<item name="colorSecondary">@color/blue_gray_50</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dark.Blue" parent="Theme.Mastodon.Dark.CustomBase">
|
||||
<item name="android:colorAccent">@color/blue_primary_400</item>
|
||||
<item name="android:colorPrimary">@color/blue_gray_50</item>
|
||||
<item name="android:textColorPrimary">@color/blue_gray_50</item>
|
||||
<item name="android:textColorSecondary">@color/blue_gray_400</item>
|
||||
<item name="android:alertDialogTheme">@style/Theme.Mastodon.Dialog.Alert.Dark.Blue</item>
|
||||
<item name="colorPollMostVoted">@color/blue_primary_700</item>
|
||||
<item name="colorAccentLight">@color/blue_primary_600</item>
|
||||
<item name="colorAccentLightest">@color/blue_primary_800</item>
|
||||
<item name="colorTabInactive">@color/blue_gray_400</item>
|
||||
<item name="colorSearchHint">@color/blue_gray_300</item>
|
||||
<item name="colorSecondary">@color/blue_gray_50</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dark.TrueBlack.Blue" parent="Theme.Mastodon.Dark.Blue">
|
||||
<item name="android:colorAccent">@color/blue_primary_400</item>
|
||||
<item name="colorPollMostVoted">@color/blue_primary_700</item>
|
||||
<item name="colorAccentLight">@color/blue_primary_600</item>
|
||||
<item name="colorAccentLightest">@color/blue_primary_800</item>
|
||||
<item name="colorSecondary">@color/blue_gray_50</item>
|
||||
|
||||
<item name="colorPollVoted">@color/custom_gray_800</item>
|
||||
<item name="colorSearchField">@color/custom_gray_900</item>
|
||||
<item name="colorBackgroundPopup">@color/custom_gray_900</item>
|
||||
<item name="android:navigationBarColor">@color/black</item>
|
||||
<item name="android:colorBackground">@color/black</item>
|
||||
<item name="android:statusBarColor">@color/black</item>
|
||||
<item name="android:actionBarTheme">@style/Theme.Mastodon.Toolbar.Dark.TrueBlack</item>
|
||||
<item name="colorBackgroundLight">@color/black</item>
|
||||
<item name="colorWindowBackground">@color/black</item>
|
||||
<item name="colorButtonText">@color/black</item>
|
||||
<item name="colorBackgroundLightest">@color/black</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.AutoLightDark.Blue" parent="Theme.Mastodon.Light.Blue"/>
|
||||
<style name="Theme.Mastodon.AutoLightDark.TrueBlack.Blue" parent="Theme.Mastodon.Light.Blue"/>
|
||||
|
||||
<style name="Theme.Mastodon.Dialog.Alert.Dark.Blue" parent="android:Theme.Material.Dialog.Alert">
|
||||
<item name="android:windowTitleStyle">@style/alert_title</item>
|
||||
<item name="android:dialogPreferredPadding">24dp</item>
|
||||
<item name="android:windowBackground">@drawable/bg_alert</item>
|
||||
<item name="android:buttonBarButtonStyle">@style/Widget.Mastodon.ButtonBarButton</item>
|
||||
|
||||
<!-- colors -->
|
||||
<item name="android:colorAccent">@color/blue_primary_600</item>
|
||||
<item name="android:colorPrimary">@color/blue_gray_50</item>
|
||||
<item name="android:colorBackground">@color/custom_gray_700</item>
|
||||
<item name="android:textColorPrimary">@color/blue_gray_50</item>
|
||||
<item name="android:textColorSecondary">@color/blue_gray_400</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dialog.Alert.Blue" parent="android:Theme.Material.Light.Dialog.Alert">
|
||||
<item name="android:windowTitleStyle">@style/alert_title</item>
|
||||
<item name="android:dialogPreferredPadding">24dp</item>
|
||||
<item name="android:windowBackground">@drawable/bg_alert</item>
|
||||
<item name="android:buttonBarButtonStyle">@style/Widget.Mastodon.ButtonBarButton</item>
|
||||
|
||||
<!-- colors -->
|
||||
<item name="android:colorAccent">@color/blue_primary_700</item>
|
||||
<item name="android:colorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:colorBackground">@color/blue_gray_100</item>
|
||||
<item name="android:textColorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:textColorSecondary">@color/custom_gray_500</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Toolbar.Blue" parent="android:ThemeOverlay.Material.ActionBar">
|
||||
<item name="android:colorPrimary">@color/blue_gray_50</item>
|
||||
<item name="android:textColorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:textColorSecondary">@color/custom_gray_800</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Light.Orange" parent="Theme.Mastodon.Light.CustomBase">
|
||||
<item name="android:colorAccent">@color/orange_primary_700</item>
|
||||
<item name="android:colorBackground">@color/orange_gray_100</item>
|
||||
<item name="colorButtonText">@color/orange_gray_50</item>
|
||||
<item name="colorBackgroundLight">@color/orange_gray_50</item>
|
||||
<item name="colorBackgroundLightest">@color/orange_gray_25</item>
|
||||
<item name="android:statusBarColor">@color/orange_gray_50</item>
|
||||
<item name="android:navigationBarColor">@color/orange_navigation_bar_bg</item>
|
||||
<item name="android:actionBarTheme">@style/Theme.Mastodon.Toolbar.Orange</item>
|
||||
<item name="android:alertDialogTheme">@style/Theme.Mastodon.Dialog.Alert.Orange</item>
|
||||
<item name="colorPollMostVoted">@color/orange_primary_500</item>
|
||||
<item name="colorPollVoted">@color/orange_gray_300</item>
|
||||
<item name="colorAccentLight">@color/orange_primary_600</item>
|
||||
<item name="colorSearchField">@color/orange_gray_200</item>
|
||||
<item name="colorTabInactive">@color/orange_gray_400</item>
|
||||
<item name="colorAccentLightest">@color/orange_primary_100</item>
|
||||
<item name="colorSecondary">@color/orange_gray_50</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dark.Orange" parent="Theme.Mastodon.Dark.CustomBase">
|
||||
<item name="android:colorAccent">@color/orange_primary_400</item>
|
||||
<item name="android:colorPrimary">@color/orange_gray_50</item>
|
||||
<item name="android:textColorPrimary">@color/orange_gray_50</item>
|
||||
<item name="android:textColorSecondary">@color/orange_gray_400</item>
|
||||
<item name="android:alertDialogTheme">@style/Theme.Mastodon.Dialog.Alert.Dark.Orange</item>
|
||||
<item name="colorPollMostVoted">@color/orange_primary_700</item>
|
||||
<item name="colorAccentLight">@color/orange_primary_600</item>
|
||||
<item name="colorAccentLightest">@color/orange_primary_800</item>
|
||||
<item name="colorTabInactive">@color/orange_gray_400</item>
|
||||
<item name="colorSearchHint">@color/orange_gray_300</item>
|
||||
<item name="colorSecondary">@color/orange_gray_50</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dark.TrueBlack.Orange" parent="Theme.Mastodon.Dark.Orange">
|
||||
<item name="android:colorAccent">@color/orange_primary_400</item>
|
||||
<item name="colorPollMostVoted">@color/orange_primary_700</item>
|
||||
<item name="colorAccentLight">@color/orange_primary_600</item>
|
||||
<item name="colorAccentLightest">@color/orange_primary_800</item>
|
||||
<item name="colorSecondary">@color/orange_gray_50</item>
|
||||
|
||||
<item name="colorPollVoted">@color/custom_gray_800</item>
|
||||
<item name="colorSearchField">@color/custom_gray_900</item>
|
||||
<item name="colorBackgroundPopup">@color/custom_gray_900</item>
|
||||
<item name="android:navigationBarColor">@color/black</item>
|
||||
<item name="android:colorBackground">@color/black</item>
|
||||
<item name="android:statusBarColor">@color/black</item>
|
||||
<item name="android:actionBarTheme">@style/Theme.Mastodon.Toolbar.Dark.TrueBlack</item>
|
||||
<item name="colorBackgroundLight">@color/black</item>
|
||||
<item name="colorWindowBackground">@color/black</item>
|
||||
<item name="colorButtonText">@color/black</item>
|
||||
<item name="colorBackgroundLightest">@color/black</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.AutoLightDark.Orange" parent="Theme.Mastodon.Light.Orange"/>
|
||||
<style name="Theme.Mastodon.AutoLightDark.TrueBlack.Orange" parent="Theme.Mastodon.Light.Orange"/>
|
||||
|
||||
<style name="Theme.Mastodon.Dialog.Alert.Dark.Orange" parent="android:Theme.Material.Dialog.Alert">
|
||||
<item name="android:windowTitleStyle">@style/alert_title</item>
|
||||
<item name="android:dialogPreferredPadding">24dp</item>
|
||||
<item name="android:windowBackground">@drawable/bg_alert</item>
|
||||
<item name="android:buttonBarButtonStyle">@style/Widget.Mastodon.ButtonBarButton</item>
|
||||
|
||||
<!-- colors -->
|
||||
<item name="android:colorAccent">@color/orange_primary_600</item>
|
||||
<item name="android:colorPrimary">@color/orange_gray_50</item>
|
||||
<item name="android:colorBackground">@color/custom_gray_700</item>
|
||||
<item name="android:textColorPrimary">@color/orange_gray_50</item>
|
||||
<item name="android:textColorSecondary">@color/orange_gray_400</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dialog.Alert.Orange" parent="android:Theme.Material.Light.Dialog.Alert">
|
||||
<item name="android:windowTitleStyle">@style/alert_title</item>
|
||||
<item name="android:dialogPreferredPadding">24dp</item>
|
||||
<item name="android:windowBackground">@drawable/bg_alert</item>
|
||||
<item name="android:buttonBarButtonStyle">@style/Widget.Mastodon.ButtonBarButton</item>
|
||||
|
||||
<!-- colors -->
|
||||
<item name="android:colorAccent">@color/orange_primary_700</item>
|
||||
<item name="android:colorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:colorBackground">@color/orange_gray_100</item>
|
||||
<item name="android:textColorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:textColorSecondary">@color/custom_gray_500</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Toolbar.Orange" parent="android:ThemeOverlay.Material.ActionBar">
|
||||
<item name="android:colorPrimary">@color/orange_gray_50</item>
|
||||
<item name="android:textColorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:textColorSecondary">@color/custom_gray_800</item>
|
||||
</style>
|
||||
|
||||
|
||||
<style name="Theme.Mastodon.Light.Yellow" parent="Theme.Mastodon.Light.CustomBase">
|
||||
<item name="android:colorAccent">@color/yellow_primary_700</item>
|
||||
<item name="android:colorBackground">@color/yellow_gray_100</item>
|
||||
<item name="colorButtonText">@color/yellow_gray_50</item>
|
||||
<item name="colorBackgroundLight">@color/yellow_gray_50</item>
|
||||
<item name="colorBackgroundLightest">@color/yellow_gray_25</item>
|
||||
<item name="android:statusBarColor">@color/yellow_gray_50</item>
|
||||
<item name="android:navigationBarColor">@color/yellow_navigation_bar_bg</item>
|
||||
<item name="android:actionBarTheme">@style/Theme.Mastodon.Toolbar.Yellow</item>
|
||||
<item name="android:alertDialogTheme">@style/Theme.Mastodon.Dialog.Alert.Yellow</item>
|
||||
<item name="colorPollMostVoted">@color/yellow_primary_500</item>
|
||||
<item name="colorPollVoted">@color/yellow_gray_300</item>
|
||||
<item name="colorAccentLight">@color/yellow_primary_600</item>
|
||||
<item name="colorSearchField">@color/yellow_gray_200</item>
|
||||
<item name="colorTabInactive">@color/yellow_gray_400</item>
|
||||
<item name="colorAccentLightest">@color/yellow_primary_100</item>
|
||||
<item name="colorSecondary">@color/yellow_gray_50</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dark.Yellow" parent="Theme.Mastodon.Dark.CustomBase">
|
||||
<item name="android:colorAccent">@color/yellow_primary_400</item>
|
||||
<item name="android:colorPrimary">@color/yellow_gray_50</item>
|
||||
<item name="android:textColorPrimary">@color/yellow_gray_50</item>
|
||||
<item name="android:textColorSecondary">@color/yellow_gray_400</item>
|
||||
<item name="android:alertDialogTheme">@style/Theme.Mastodon.Dialog.Alert.Dark.Yellow</item>
|
||||
<item name="colorPollMostVoted">@color/yellow_primary_700</item>
|
||||
<item name="colorAccentLight">@color/yellow_primary_600</item>
|
||||
<item name="colorAccentLightest">@color/yellow_primary_800</item>
|
||||
<item name="colorTabInactive">@color/yellow_gray_400</item>
|
||||
<item name="colorSearchHint">@color/yellow_gray_300</item>
|
||||
<item name="colorSecondary">@color/yellow_gray_50</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dark.TrueBlack.Yellow" parent="Theme.Mastodon.Dark.Yellow">
|
||||
<item name="android:colorAccent">@color/yellow_primary_400</item>
|
||||
<item name="colorPollMostVoted">@color/yellow_primary_700</item>
|
||||
<item name="colorAccentLight">@color/yellow_primary_600</item>
|
||||
<item name="colorAccentLightest">@color/yellow_primary_800</item>
|
||||
<item name="colorSecondary">@color/yellow_gray_50</item>
|
||||
|
||||
<item name="colorPollVoted">@color/custom_gray_800</item>
|
||||
<item name="colorSearchField">@color/custom_gray_900</item>
|
||||
<item name="colorBackgroundPopup">@color/custom_gray_900</item>
|
||||
<item name="android:navigationBarColor">@color/black</item>
|
||||
<item name="android:colorBackground">@color/black</item>
|
||||
<item name="android:statusBarColor">@color/black</item>
|
||||
<item name="android:actionBarTheme">@style/Theme.Mastodon.Toolbar.Dark.TrueBlack</item>
|
||||
<item name="colorBackgroundLight">@color/black</item>
|
||||
<item name="colorWindowBackground">@color/black</item>
|
||||
<item name="colorButtonText">@color/black</item>
|
||||
<item name="colorBackgroundLightest">@color/black</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.AutoLightDark.Yellow" parent="Theme.Mastodon.Light.Yellow"/>
|
||||
<style name="Theme.Mastodon.AutoLightDark.TrueBlack.Yellow" parent="Theme.Mastodon.Light.Yellow"/>
|
||||
|
||||
<style name="Theme.Mastodon.Dialog.Alert.Dark.Yellow" parent="android:Theme.Material.Dialog.Alert">
|
||||
<item name="android:windowTitleStyle">@style/alert_title</item>
|
||||
<item name="android:dialogPreferredPadding">24dp</item>
|
||||
<item name="android:windowBackground">@drawable/bg_alert</item>
|
||||
<item name="android:buttonBarButtonStyle">@style/Widget.Mastodon.ButtonBarButton</item>
|
||||
|
||||
<!-- colors -->
|
||||
<item name="android:colorAccent">@color/yellow_primary_600</item>
|
||||
<item name="android:colorPrimary">@color/yellow_gray_50</item>
|
||||
<item name="android:colorBackground">@color/custom_gray_700</item>
|
||||
<item name="android:textColorPrimary">@color/yellow_gray_50</item>
|
||||
<item name="android:textColorSecondary">@color/yellow_gray_400</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dialog.Alert.Yellow" parent="android:Theme.Material.Light.Dialog.Alert">
|
||||
<item name="android:windowTitleStyle">@style/alert_title</item>
|
||||
<item name="android:dialogPreferredPadding">24dp</item>
|
||||
<item name="android:windowBackground">@drawable/bg_alert</item>
|
||||
<item name="android:buttonBarButtonStyle">@style/Widget.Mastodon.ButtonBarButton</item>
|
||||
|
||||
<!-- colors -->
|
||||
<item name="android:colorAccent">@color/yellow_primary_700</item>
|
||||
<item name="android:colorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:colorBackground">@color/yellow_gray_100</item>
|
||||
<item name="android:textColorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:textColorSecondary">@color/custom_gray_500</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Toolbar.Yellow" parent="android:ThemeOverlay.Material.ActionBar">
|
||||
<item name="android:colorPrimary">@color/yellow_gray_50</item>
|
||||
<item name="android:textColorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:textColorSecondary">@color/custom_gray_800</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Light.Red" parent="Theme.Mastodon.Light.CustomBase">
|
||||
<item name="android:colorAccent">@color/red_primary_700</item>
|
||||
<item name="android:colorBackground">@color/red_gray_100</item>
|
||||
<item name="colorButtonText">@color/red_gray_50</item>
|
||||
<item name="colorBackgroundLight">@color/red_gray_50</item>
|
||||
<item name="colorBackgroundLightest">@color/red_gray_25</item>
|
||||
<item name="android:statusBarColor">@color/red_gray_50</item>
|
||||
<item name="android:navigationBarColor">@color/red_navigation_bar_bg</item>
|
||||
<item name="android:actionBarTheme">@style/Theme.Mastodon.Toolbar.Red</item>
|
||||
<item name="android:alertDialogTheme">@style/Theme.Mastodon.Dialog.Alert.Red</item>
|
||||
<item name="colorPollMostVoted">@color/red_primary_500</item>
|
||||
<item name="colorPollVoted">@color/red_gray_300</item>
|
||||
<item name="colorAccentLight">@color/red_primary_600</item>
|
||||
<item name="colorSearchField">@color/red_gray_200</item>
|
||||
<item name="colorTabInactive">@color/red_gray_400</item>
|
||||
<item name="colorAccentLightest">@color/red_primary_100</item>
|
||||
<item name="colorSecondary">@color/red_gray_50</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dark.Red" parent="Theme.Mastodon.Dark.CustomBase">
|
||||
<item name="android:colorAccent">@color/red_primary_400</item>
|
||||
<item name="android:colorPrimary">@color/red_gray_50</item>
|
||||
<item name="android:textColorPrimary">@color/red_gray_50</item>
|
||||
<item name="android:textColorSecondary">@color/red_gray_400</item>
|
||||
<item name="android:alertDialogTheme">@style/Theme.Mastodon.Dialog.Alert.Dark.Red</item>
|
||||
<item name="colorPollMostVoted">@color/red_primary_700</item>
|
||||
<item name="colorAccentLight">@color/red_primary_600</item>
|
||||
<item name="colorAccentLightest">@color/red_primary_800</item>
|
||||
<item name="colorTabInactive">@color/red_gray_400</item>
|
||||
<item name="colorSearchHint">@color/red_gray_300</item>
|
||||
<item name="colorSecondary">@color/red_gray_50</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dark.TrueBlack.Red" parent="Theme.Mastodon.Dark.Red">
|
||||
<item name="android:colorAccent">@color/red_primary_400</item>
|
||||
<item name="colorPollMostVoted">@color/red_primary_700</item>
|
||||
<item name="colorAccentLight">@color/red_primary_600</item>
|
||||
<item name="colorAccentLightest">@color/red_primary_800</item>
|
||||
<item name="colorSecondary">@color/red_gray_50</item>
|
||||
|
||||
<item name="colorPollVoted">@color/custom_gray_800</item>
|
||||
<item name="colorSearchField">@color/custom_gray_900</item>
|
||||
<item name="colorBackgroundPopup">@color/custom_gray_900</item>
|
||||
<item name="android:navigationBarColor">@color/black</item>
|
||||
<item name="android:colorBackground">@color/black</item>
|
||||
<item name="android:statusBarColor">@color/black</item>
|
||||
<item name="android:actionBarTheme">@style/Theme.Mastodon.Toolbar.Dark.TrueBlack</item>
|
||||
<item name="colorBackgroundLight">@color/black</item>
|
||||
<item name="colorWindowBackground">@color/black</item>
|
||||
<item name="colorButtonText">@color/black</item>
|
||||
<item name="colorBackgroundLightest">@color/black</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.AutoLightDark.Red" parent="Theme.Mastodon.Light.Red"/>
|
||||
<style name="Theme.Mastodon.AutoLightDark.TrueBlack.Red" parent="Theme.Mastodon.Light.Red"/>
|
||||
|
||||
<style name="Theme.Mastodon.Dialog.Alert.Dark.Red" parent="android:Theme.Material.Dialog.Alert">
|
||||
<item name="android:windowTitleStyle">@style/alert_title</item>
|
||||
<item name="android:dialogPreferredPadding">24dp</item>
|
||||
<item name="android:windowBackground">@drawable/bg_alert</item>
|
||||
<item name="android:buttonBarButtonStyle">@style/Widget.Mastodon.ButtonBarButton</item>
|
||||
|
||||
<!-- colors -->
|
||||
<item name="android:colorAccent">@color/red_primary_600</item>
|
||||
<item name="android:colorPrimary">@color/red_gray_50</item>
|
||||
<item name="android:colorBackground">@color/custom_gray_700</item>
|
||||
<item name="android:textColorPrimary">@color/red_gray_50</item>
|
||||
<item name="android:textColorSecondary">@color/red_gray_400</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dialog.Alert.Red" parent="android:Theme.Material.Light.Dialog.Alert">
|
||||
<item name="android:windowTitleStyle">@style/alert_title</item>
|
||||
<item name="android:dialogPreferredPadding">24dp</item>
|
||||
<item name="android:windowBackground">@drawable/bg_alert</item>
|
||||
<item name="android:buttonBarButtonStyle">@style/Widget.Mastodon.ButtonBarButton</item>
|
||||
|
||||
<!-- colors -->
|
||||
<item name="android:colorAccent">@color/red_primary_700</item>
|
||||
<item name="android:colorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:colorBackground">@color/red_gray_100</item>
|
||||
<item name="android:textColorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:textColorSecondary">@color/custom_gray_500</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Toolbar.Red" parent="android:ThemeOverlay.Material.ActionBar">
|
||||
<item name="android:colorPrimary">@color/red_gray_50</item>
|
||||
<item name="android:textColorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:textColorSecondary">@color/custom_gray_800</item>
|
||||
</style>
|
||||
|
||||
|
||||
|
||||
<style name="Theme.Mastodon.Dark.Original" parent="Theme.Mastodon.Dark">
|
||||
<item name="android:colorAccent">@color/original_primary_400</item>
|
||||
<item name="colorPollMostVoted">@color/original_primary_700</item>
|
||||
<item name="colorAccentLight">@color/original_primary_600</item>
|
||||
<item name="colorAccentLightest">@color/original_primary_800</item>
|
||||
<item name="android:alertDialogTheme">@style/Theme.Mastodon.Dialog.Alert.Dark.Original</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dark.TrueBlack.Original" parent="Theme.Mastodon.Dark.TrueBlack">
|
||||
<item name="android:colorAccent">@color/original_primary_400</item>
|
||||
<item name="colorPollMostVoted">@color/original_primary_700</item>
|
||||
<item name="colorAccentLight">@color/original_primary_600</item>
|
||||
<item name="colorAccentLightest">@color/original_primary_800</item>
|
||||
<item name="android:alertDialogTheme">@style/Theme.Mastodon.Dialog.Alert.Dark.Original</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Light.Original" parent="Theme.Mastodon.Light">
|
||||
<item name="android:colorAccent">@color/original_primary_400</item>
|
||||
<item name="colorPollMostVoted">@color/original_primary_700</item>
|
||||
<item name="colorAccentLight">@color/original_primary_600</item>
|
||||
<item name="colorAccentLightest">@color/original_primary_800</item>
|
||||
<item name="android:alertDialogTheme">@style/Theme.Mastodon.Dialog.Alert.Original</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.AutoLightDark.Original" parent="Theme.Mastodon.Light.Original"/>
|
||||
<style name="Theme.Mastodon.AutoLightDark.TrueBlack.Original" parent="Theme.Mastodon.Light.Original"/>
|
||||
|
||||
<style name="Theme.Mastodon.Dialog.Alert.Dark.Original" parent="android:Theme.Material.Dialog.Alert">
|
||||
<item name="android:windowTitleStyle">@style/alert_title</item>
|
||||
<item name="android:dialogPreferredPadding">24dp</item>
|
||||
<item name="android:windowBackground">@drawable/bg_alert</item>
|
||||
<item name="android:buttonBarButtonStyle">@style/Widget.Mastodon.ButtonBarButton</item>
|
||||
|
||||
<!-- colors -->
|
||||
<item name="android:colorAccent">@color/original_primary_600</item>
|
||||
<item name="android:colorPrimary">@color/gray_50</item>
|
||||
<item name="android:colorBackground">@color/custom_gray_700</item>
|
||||
<item name="android:textColorPrimary">@color/gray_50</item>
|
||||
<item name="android:textColorSecondary">@color/gray_400</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dialog.Alert.Original" parent="android:Theme.Material.Light.Dialog.Alert">
|
||||
<item name="android:windowTitleStyle">@style/alert_title</item>
|
||||
<item name="android:dialogPreferredPadding">24dp</item>
|
||||
<item name="android:windowBackground">@drawable/bg_alert</item>
|
||||
<item name="android:buttonBarButtonStyle">@style/Widget.Mastodon.ButtonBarButton</item>
|
||||
|
||||
<!-- colors -->
|
||||
<item name="android:colorAccent">@color/original_primary_700</item>
|
||||
<item name="android:colorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:colorBackground">@color/gray_100</item>
|
||||
<item name="android:textColorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:textColorSecondary">@color/custom_gray_500</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Toolbar" parent="android:ThemeOverlay.Material.ActionBar">
|
||||
<item name="android:colorPrimary">@color/gray_50</item>
|
||||
<item name="android:textColorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:textColorSecondary">@color/custom_gray_800</item>
|
||||
<item name="android:colorPrimary">?toolbarBackground</item>
|
||||
<item name="android:toolbarStyle">@style/Widget.Mastodon.Toolbar</item>
|
||||
<item name="android:textColorPrimary">?colorGray800</item>
|
||||
<item name="android:textColorSecondary">?colorGray800</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Toolbar.Dark" parent="android:ThemeOverlay.Material.Dark.ActionBar">
|
||||
<item name="android:colorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:textColorPrimary">@color/gray_50</item>
|
||||
<item name="android:textColorSecondary">@color/gray_50</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Toolbar.Dark.CustomBase" parent="android:ThemeOverlay.Material.Dark.ActionBar">
|
||||
<item name="android:colorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:textColorPrimary">@color/gray_50</item>
|
||||
<item name="android:textColorSecondary">@color/gray_50</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Toolbar.Dark.Material3" parent="android:ThemeOverlay.Material.Dark.ActionBar">
|
||||
<item name="android:colorPrimary">@color/m3_gray_900</item>
|
||||
<item name="android:textColorPrimary">@color/m3_gray_50</item>
|
||||
<item name="android:textColorSecondary">@color/m3_gray_50</item>
|
||||
<item name="android:colorPrimary">?toolbarBackground</item>
|
||||
<item name="android:textColorPrimary">?colorGray50</item>
|
||||
<item name="android:textColorSecondary">?colorGray50</item>
|
||||
<item name="android:toolbarStyle">@style/Widget.Mastodon.Toolbar</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Toolbar.Dark.TrueBlack" parent="android:ThemeOverlay.Material.Dark.ActionBar">
|
||||
@@ -866,14 +226,14 @@
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Toolbar.Profile">
|
||||
<item name="android:textColorPrimary">?android:colorPrimary</item>
|
||||
<item name="android:textColorSecondary">?android:colorPrimary</item>
|
||||
<item name="android:drawableTint">?android:colorPrimary</item>
|
||||
<item name="android:textColorPrimary">?colorGray25</item>
|
||||
<item name="android:textColorSecondary">?colorGray25</item>
|
||||
<item name="android:drawableTint">?colorGray25</item>
|
||||
<item name="android:popupTheme">?android:actionBarTheme</item>
|
||||
<item name="android:titleTextAppearance">@style/m3_title_medium</item>
|
||||
<item name="android:titleTextColor">?android:colorPrimary</item>
|
||||
<item name="android:titleTextColor">?colorGray25</item>
|
||||
<item name="android:subtitleTextAppearance">@style/m3_body_medium</item>
|
||||
<item name="android:subtitleTextColor">?android:colorPrimary</item>
|
||||
<item name="android:subtitleTextColor">?colorGray25</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.Mastodon.Button" parent="android:Widget.Material.Button">
|
||||
@@ -945,11 +305,11 @@
|
||||
<item name="android:buttonBarButtonStyle">@style/Widget.Mastodon.ButtonBarButton</item>
|
||||
|
||||
<!-- colors -->
|
||||
<item name="android:colorAccent">@color/primary_700</item>
|
||||
<item name="android:colorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:colorBackground">@color/gray_100</item>
|
||||
<item name="android:textColorPrimary">@color/custom_gray_800</item>
|
||||
<item name="android:textColorSecondary">@color/custom_gray_500</item>
|
||||
<item name="android:colorAccent">?colorPrimary700</item>
|
||||
<item name="android:colorPrimary">?colorGray800</item>
|
||||
<item name="android:colorBackground">?colorGray100</item>
|
||||
<item name="android:textColorPrimary">?colorGray800</item>
|
||||
<item name="android:textColorSecondary">?colorGray500</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Mastodon.Dialog.Alert.Dark" parent="android:Theme.Material.Dialog.Alert">
|
||||
@@ -959,11 +319,11 @@
|
||||
<item name="android:buttonBarButtonStyle">@style/Widget.Mastodon.ButtonBarButton</item>
|
||||
|
||||
<!-- colors -->
|
||||
<item name="android:colorAccent">@color/primary_600</item>
|
||||
<item name="android:colorPrimary">@color/gray_50</item>
|
||||
<item name="android:colorBackground">@color/custom_gray_700</item>
|
||||
<item name="android:textColorPrimary">@color/gray_50</item>
|
||||
<item name="android:textColorSecondary">@color/gray_400</item>
|
||||
<item name="android:colorAccent">?colorPrimary600</item>
|
||||
<item name="android:colorPrimary">?colorGray50</item>
|
||||
<item name="android:colorBackground">?colorGray700</item>
|
||||
<item name="android:textColorPrimary">?colorGray50</item>
|
||||
<item name="android:textColorSecondary">?colorGray400</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.Mastodon.ButtonBarButton" parent="android:Widget.Material.Button.Borderless">
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
— S'han preparat els fitxers per al llançament a F-Droid
|
||||
— S'ha solucionat l'actualització automàtica
|
||||
— S'han afegit icones monocromàtiques per a les icones del menú d'aplicacions
|
||||
— S'ha canviat la icona de «No llistat» incorrecta al peu de pàgina ampliat
|
||||
@@ -1,6 +0,0 @@
|
||||
— És possible obrir la publicació original mentre respons (fent clic a la línia «En resposta a…»)
|
||||
— Ha combinat els canvis de la font superior i correccions d'errors
|
||||
— S'ha eliminat el codi «Centre d'aplicacions» no utilitzat
|
||||
— S'ha afegit una versió sense línia de temps federada per a la Play Store
|
||||
— S'ha afegit un URI de redirecció personalitzat per a facilitar l'inici de sessió
|
||||
— S'ha canviat l'enllaç de contribució
|
||||
@@ -1,17 +0,0 @@
|
||||
Megalodon és una versió modificada de l'<a href="https://github.com/mastodon/mastodon-android">aplicació oficial de Mastodon per a Android</a> que ha afegit opcions importants que no té la versió oficial, com la línia de temps federada, la publicació sense llistar, marcadors i un visor de la descripció de les imatges.
|
||||
|
||||
<b>Funcionalitats clau</b>
|
||||
|
||||
— <b>Publicació sense llistar</b>: Escriu de manera pública sense que la publicació es mostre en les tendències, etiquetes o línies de temps públiques.
|
||||
— <b>Línia de temps federada</b>: Visualitza totes les publicacions de persones de la resta de barris del Fedivers als quals està connectada la teua instància.
|
||||
— <b>Visor de la descripció de les imatges.</b>: Comprova ràpidament si una imatge o un vídeo té un text alternatiu adjunt.
|
||||
— <b>Fixar publicacions</b>: Fixa les teues publicacions més importants al teu perfil i mira què han fixat altres persones a la pestanya «Fixat».
|
||||
— <b>Marcadors</b>: Desa ràpidament publicacions i cerca-les més tard a la llista de marcadors.
|
||||
— <b>Seguiment d'etiquetes</b>: Visualitza publicacions noves d'etiquetes específiques directament a la línia de temps, seguint aquestes etiquetes.
|
||||
— <b>Respondre les sol·licituds de seguiment</b>: Accepta o rebutja sol·licituds de seguiment des de les notificacions o a la llista de sol·licituds de seguiment dedicada.
|
||||
— <b>Eliminar i tornar a escriure</b>: La característica tan estimada que va fer possible l'edició sense una funció d'edició real.
|
||||
|
||||
<b>Funcionalitats oficials no llançades, disponibles per avançat</b>
|
||||
|
||||
— Edició de publicacions
|
||||
— Actualitzador integrat per als llançaments de GitHub
|
||||
@@ -1 +0,0 @@
|
||||
Mastodon per a Android, però és rosa i té més funcionalitats
|
||||
@@ -1 +0,0 @@
|
||||
Megalodon
|
||||
@@ -1,4 +0,0 @@
|
||||
- Dateien für die Veröffentlichung auf F-Droid vorbereiten
|
||||
- Automatischen Updater reparieren
|
||||
- Monochrome Symbole für Launcher-Icons
|
||||
- Falsches Ungelistet-Symbol ersetzt
|
||||
@@ -1,6 +0,0 @@
|
||||
- Möglichkeit, beim Antworten den Originalpost (durch einen Klick auf „Als Antwort auf…“-Zeile) zu öffnen
|
||||
- Upstream-Änderungen und Fehlerbehebungen mergen
|
||||
- Unverwendeten „App Center“-Code entfernt
|
||||
- Release mit deaktivierter Föderierter Timeline für den Play Store hinzugefügt
|
||||
- Eigene Weiterleitungs-URI für einfacheres Einloggen
|
||||
- „Zu Megalodon beitragen“-Link angepasst
|
||||
@@ -1,4 +0,0 @@
|
||||
- HTML-Tags und Markdown-Formatierung richtig darstellen
|
||||
- <a href="https://translate.codeberg.org/projects/megalodon">Weblate-Übersetzungsprojekt</a> einrichten
|
||||
- Schalter für die Föderierte Timeline
|
||||
- Versionen 52-54 waren kleine Anpassungen für den Google Play-Release
|
||||
@@ -1,5 +0,0 @@
|
||||
- Eigene Farbschemata von @LucasGGamerM
|
||||
- Bessere Emoji-Suche beim Verfassen
|
||||
- Verbesserungen bei Abstimmungen (eigene Stimme wird angezeigt, Abstimmen-Button wird immer angezeigt, lange Antworten werden nicht abgeschnitten)
|
||||
- Push-Notification-Einstellung für Beitrags-Benachrichtigungen
|
||||
- Fehlerbehebungen
|
||||
@@ -1,11 +0,0 @@
|
||||
Megalodon ist eine modifizierte Version der <a href="https://github.com/mastodon/mastodon-android">offiziellen Mastodon-Android-App</a> mit vielen Features, die in der offiziellen App fehlen, z.B. die föderierte Timeline, ungelistete Beiträge posten und die Möglichkeit, Bildbeschreibungen anzuzeigen.
|
||||
|
||||
<b>Die wichtigsten Features</b>
|
||||
|
||||
- <b>Ungelistet posten</b>: Öffentlich posten, ohne dass der Beitrag in Trends, Hashtags oder öffentlichen Timelines angezeigt wird.
|
||||
- <b>Föderierte Timeline</b>: Alle öffentlichen Beiträge aller anderen Fediverse-Nachbarschaften, mit denen deine Heim-Instanz verbunden ist.
|
||||
- <b>Bildbeschreibungen anzeigen</b>: Unkompliziert prüfen, ob Bilder und Videos Alternativ-Texte beinhalten.
|
||||
- <b>Beiträge anpinnen</b>: Pinne deine wichtigsten Beiträge an dein Profil an und sieh im “Angepinnt”-Tab nach, was andere User_innen angepinnt haben.
|
||||
- <b>Hashtags folgen</b>: Bringt neue Beiträge bestimmter Hashtags direkt in deine Home-Timeline.
|
||||
- <b>Folgeanfragen beantworten</b>: Folgeanfragen lassen sich nun direkt über die Benachrichtigungen-Liste oder über die Folgeanfragen-Liste akzeptieren oder ablehnen.
|
||||
- <b>Beiträge löschen und neu erstellen</b>: Das beliebte Feature, das das Bearbeiten von Beiträgen ohne tatsächliche Bearbeit-Funktion möglich gemacht hat.
|
||||
@@ -1 +0,0 @@
|
||||
Mastodon für Android in Pink und mit zusätzlichen Features
|
||||
@@ -1 +0,0 @@
|
||||
Megalodon
|
||||
@@ -1,4 +0,0 @@
|
||||
- Prepare files for release on F-Droid
|
||||
- Fix automatic updater
|
||||
- Add monochromatic icons back into launcher icons
|
||||
- Replace wrong unlisted icon in extended footer
|
||||
@@ -1,6 +0,0 @@
|
||||
- Make it possible to open the original post while replying (by clicking the “In reply to…” line)
|
||||
- Merge upstream changes and bugfixes
|
||||
- Remove unused “App Center” code
|
||||
- Add release without Federated timeline for Play Store
|
||||
- Add custom redirect URI for easier login
|
||||
- Change contribution link
|
||||
@@ -1,4 +0,0 @@
|
||||
- Fix broken rendering of HTML tags and enable rendering Markdown formatting
|
||||
- Initialize <a href="https://translate.codeberg.org/projects/megalodon">Weblate translation project</a>
|
||||
- Add toggle for the Federated timeline
|
||||
- Versions 52-54 were small adjustments for a release on Google Play
|
||||
@@ -1,6 +0,0 @@
|
||||
- Custom color themes by @LucasGGamerM
|
||||
- New "megalodon" text logo submitted by @LucasGGamerM
|
||||
- Better emoji search while composing
|
||||
- Tweaked voting (display own vote, always display vote button, don't cut off long answers)
|
||||
- Add push notification setting for post notifications
|
||||
- Bugfixes
|
||||
1
metadata/en-US/changelogs/78.txt
Normal file
@@ -0,0 +1 @@
|
||||
Removing the toot dividers on the main timeline! Its also configurable.
|
||||
@@ -1,7 +1,10 @@
|
||||
Megalodon is a modified version of the <a href="https://github.com/mastodon/mastodon-android">official Mastodon Android app</a> adding important features that are missing in the official app, such as the federated timeline, unlisted posting and an image description viewer.
|
||||
Moshidon is a modified version of the <a href="https://github.com/mastodon/mastodon-android">official Mastodon Android app</a> adding important features that are missing in the official app, such as the federated timeline, unlisted posting and an image description viewer.
|
||||
|
||||
<b>Key features</b>
|
||||
|
||||
- <b>Many colors</b>: Brings material you theme and many colorful options for themes!
|
||||
- <b>Translate button</b>: Brings a translate button!
|
||||
- <b>Toot language picker</b>: Brings in a toot language picker!
|
||||
- <b>Unlisted posting</b>: Post publicly without having your post show up in trends, hashtags or public timelines.
|
||||
- <b>Federated timeline</b>: See all public posts from people on all other Fediverse neighborhoods your home instance is connected to.
|
||||
- <b>Image description viewer</b>: Quickly check whether an image or video has an alt text attached to it.
|
||||
@@ -9,3 +12,4 @@ Megalodon is a modified version of the <a href="https://github.com/mastodon/mast
|
||||
- <b>Follow hashtags</b>: See new posts from specific hashtags directly in your home timeline by following them.
|
||||
- <b>Answering follow requests</b>: Accept or decline follow requests from your notifications or the dedicated Follow requests list.
|
||||
- <b>Delete and re-draft</b>: The much-loved feature that made editing possible without an actual editing function.
|
||||
- <b>Extras</b>: Brings many extra UI features, such as interaction icons on the Notifications and removing many annoyances with the original UI!
|
||||
|
||||
|
Before Width: | Height: | Size: 168 KiB After Width: | Height: | Size: 7.0 KiB |
|
Before Width: | Height: | Size: 641 KiB |
BIN
metadata/en-US/images/phoneScreenshots/1.png
Normal file
|
After Width: | Height: | Size: 167 KiB |
|
Before Width: | Height: | Size: 1.3 MiB |
BIN
metadata/en-US/images/phoneScreenshots/2.png
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
|
Before Width: | Height: | Size: 767 KiB |