Compare commits
38 Commits
v1.1.4+for
...
v1.1.4+for
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
40868f90f9 | ||
|
|
1f89acec34 | ||
|
|
d75ce99a68 | ||
|
|
0a8846fa2a | ||
|
|
5253e2e24a | ||
|
|
3565223611 | ||
|
|
2343d7a046 | ||
|
|
8256fbadb6 | ||
|
|
b898dc010e | ||
|
|
de369633ec | ||
|
|
3f075eab13 | ||
|
|
96e5f854a5 | ||
|
|
0f5211f718 | ||
|
|
480915f377 | ||
|
|
15d559ad6a | ||
|
|
3b7a6e9385 | ||
|
|
314a15973c | ||
|
|
e99917945a | ||
|
|
d3ba8a4d0f | ||
|
|
9162b31ac1 | ||
|
|
51a80f3e03 | ||
|
|
a8c49b59f6 | ||
|
|
c79942c13f | ||
|
|
da121495c0 | ||
|
|
2d710cb558 | ||
|
|
f0a51a15a9 | ||
|
|
ae68b1e646 | ||
|
|
5da58d7834 | ||
|
|
24023e9843 | ||
|
|
29d9871e77 | ||
|
|
32d182f03a | ||
|
|
da4f54751e | ||
|
|
393c538464 | ||
|
|
ddcf61dc95 | ||
|
|
5b70c035d2 | ||
|
|
289564381d | ||
|
|
3fbcce8570 | ||
|
|
505b755df6 |
@@ -9,8 +9,8 @@ android {
|
|||||||
applicationId "org.joinmastodon.android.sk"
|
applicationId "org.joinmastodon.android.sk"
|
||||||
minSdk 23
|
minSdk 23
|
||||||
targetSdk 33
|
targetSdk 33
|
||||||
versionCode 42
|
versionCode 46
|
||||||
versionName "1.1.4+fork.42"
|
versionName "1.1.4+fork.46"
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
resConfigs "en", "ar-rSA", "bs-rBA", "ca-rES", "cs-rCZ", "de-rDE", "el-rGR", "es-rES",
|
resConfigs "en", "ar-rSA", "bs-rBA", "ca-rES", "cs-rCZ", "de-rDE", "el-rGR", "es-rES",
|
||||||
"eu-rES", "fi-rFI", "fr-rFR", "gl-rES", "hr-rHR", "hy-rAM", "it-rIT", "iw-rIL",
|
"eu-rES", "fi-rFI", "fr-rFR", "gl-rES", "hr-rHR", "hy-rAM", "it-rIT", "iw-rIL",
|
||||||
@@ -20,12 +20,14 @@ android {
|
|||||||
|
|
||||||
buildTypes {
|
buildTypes {
|
||||||
release {
|
release {
|
||||||
minifyEnabled true
|
// minifyEnabled true
|
||||||
shrinkResources true
|
// shrinkResources true
|
||||||
|
debuggable true
|
||||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||||
}
|
}
|
||||||
debug{
|
debug{
|
||||||
debuggable true
|
debuggable true
|
||||||
|
versionNameSuffix '-debug'
|
||||||
}
|
}
|
||||||
appcenterPrivateBeta{
|
appcenterPrivateBeta{
|
||||||
initWith release
|
initWith release
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ public class GithubSelfUpdaterImpl extends GithubSelfUpdater{
|
|||||||
curForkNumber=Integer.parseInt(matcher.group(4));
|
curForkNumber=Integer.parseInt(matcher.group(4));
|
||||||
long newVersion=((long)newMajor << 32) | ((long)newMinor << 16) | newRevision;
|
long newVersion=((long)newMajor << 32) | ((long)newMinor << 16) | newRevision;
|
||||||
long curVersion=((long)curMajor << 32) | ((long)curMinor << 16) | curRevision;
|
long curVersion=((long)curMajor << 32) | ((long)curMinor << 16) | curRevision;
|
||||||
if(newVersion>curVersion || newForkNumber>curForkNumber || BuildConfig.DEBUG){
|
if(newVersion>curVersion || newForkNumber>curForkNumber){
|
||||||
String version=newMajor+"."+newMinor+"."+newRevision+"+fork."+newForkNumber;
|
String version=newMajor+"."+newMinor+"."+newRevision+"+fork."+newForkNumber;
|
||||||
Log.d(TAG, "actuallyCheckForUpdates: new version: "+version);
|
Log.d(TAG, "actuallyCheckForUpdates: new version: "+version);
|
||||||
for(JsonElement el:obj.getAsJsonArray("assets")){
|
for(JsonElement el:obj.getAsJsonArray("assets")){
|
||||||
|
|||||||
@@ -66,8 +66,8 @@ public class HashtagTimelineFragment extends StatusListFragment{
|
|||||||
new SetHashtagFollowed(hashtag, following).setCallback(new Callback<>() {
|
new SetHashtagFollowed(hashtag, following).setCallback(new Callback<>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(Hashtag i) {
|
public void onSuccess(Hashtag i) {
|
||||||
|
if (i.following == following) Toast.makeText(getActivity(), getString(i.following ? R.string.followed_user : R.string.unfollowed_user, "#" + i.name), Toast.LENGTH_SHORT).show();
|
||||||
updateFollowingState(i.following);
|
updateFollowingState(i.following);
|
||||||
Toast.makeText(getActivity(), getString(i.following ? R.string.followed_user : R.string.unfollowed_user, "#" + i.name), Toast.LENGTH_SHORT).show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ public class StatusEditHistoryFragment extends StatusListFragment{
|
|||||||
action=getString(R.string.edit_multiple_changed);
|
action=getString(R.string.edit_multiple_changed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
items.add(0, new ReblogOrReplyLineStatusDisplayItem(s.id, this, action+" · "+date, Collections.emptyList(), 0));
|
items.add(0, new ReblogOrReplyLineStatusDisplayItem(s.id, this, action+" · "+date, Collections.emptyList(), 0, null));
|
||||||
}
|
}
|
||||||
return items;
|
return items;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ import java.util.Comparator;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
@@ -295,6 +296,14 @@ public class InstanceCatalogFragment extends BaseRecyclerFragment<CatalogInstanc
|
|||||||
private void proceedWithAuthOrSignup(Instance instance){
|
private void proceedWithAuthOrSignup(Instance instance){
|
||||||
getActivity().getSystemService(InputMethodManager.class).hideSoftInputFromWindow(contentView.getWindowToken(), 0);
|
getActivity().getSystemService(InputMethodManager.class).hideSoftInputFromWindow(contentView.getWindowToken(), 0);
|
||||||
if(isSignup){
|
if(isSignup){
|
||||||
|
if(!instance.registrations){
|
||||||
|
new M3AlertDialogBuilder(getActivity())
|
||||||
|
.setTitle(R.string.error)
|
||||||
|
.setMessage(R.string.instance_signup_closed)
|
||||||
|
.setPositiveButton(R.string.ok, null)
|
||||||
|
.show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
Bundle args=new Bundle();
|
Bundle args=new Bundle();
|
||||||
args.putParcelable("instance", Parcels.wrap(instance));
|
args.putParcelable("instance", Parcels.wrap(instance));
|
||||||
Nav.go(getActivity(), InstanceRulesFragment.class, args);
|
Nav.go(getActivity(), InstanceRulesFragment.class, args);
|
||||||
@@ -478,7 +487,7 @@ public class InstanceCatalogFragment extends BaseRecyclerFragment<CatalogInstanc
|
|||||||
instanceProgressDialog=null;
|
instanceProgressDialog=null;
|
||||||
proceedWithAuthOrSignup(result);
|
proceedWithAuthOrSignup(result);
|
||||||
}
|
}
|
||||||
if(domain.equals(currentSearchQuery) || currentSearchQuery.equals(redirects.get(domain)) || currentSearchQuery.equals(redirectsInverse.get(domain))){
|
if(Objects.equals(domain, currentSearchQuery) || Objects.equals(currentSearchQuery, redirects.get(domain)) || Objects.equals(currentSearchQuery, redirectsInverse.get(domain))){
|
||||||
boolean found=false;
|
boolean found=false;
|
||||||
for(CatalogInstance ci:filteredData){
|
for(CatalogInstance ci:filteredData){
|
||||||
if(ci.domain.equals(domain)){
|
if(ci.domain.equals(domain)){
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import android.app.Activity;
|
|||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.text.SpannableStringBuilder;
|
import android.text.SpannableStringBuilder;
|
||||||
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
@@ -17,6 +18,8 @@ import org.joinmastodon.android.ui.utils.UiUtils;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import androidx.annotation.DrawableRes;
|
import androidx.annotation.DrawableRes;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import me.grishka.appkit.imageloader.ImageLoaderViewHolder;
|
import me.grishka.appkit.imageloader.ImageLoaderViewHolder;
|
||||||
import me.grishka.appkit.imageloader.requests.ImageLoaderRequest;
|
import me.grishka.appkit.imageloader.requests.ImageLoaderRequest;
|
||||||
|
|
||||||
@@ -25,14 +28,16 @@ public class ReblogOrReplyLineStatusDisplayItem extends StatusDisplayItem{
|
|||||||
@DrawableRes
|
@DrawableRes
|
||||||
private int icon;
|
private int icon;
|
||||||
private CustomEmojiHelper emojiHelper=new CustomEmojiHelper();
|
private CustomEmojiHelper emojiHelper=new CustomEmojiHelper();
|
||||||
|
private View.OnClickListener handleClick;
|
||||||
|
|
||||||
public ReblogOrReplyLineStatusDisplayItem(String parentID, BaseStatusListFragment parentFragment, CharSequence text, List<Emoji> emojis, @DrawableRes int icon){
|
public ReblogOrReplyLineStatusDisplayItem(String parentID, BaseStatusListFragment parentFragment, CharSequence text, List<Emoji> emojis, @DrawableRes int icon, @Nullable View.OnClickListener handleClick){
|
||||||
super(parentID, parentFragment);
|
super(parentID, parentFragment);
|
||||||
SpannableStringBuilder ssb=new SpannableStringBuilder(text);
|
SpannableStringBuilder ssb=new SpannableStringBuilder(text);
|
||||||
HtmlParser.parseCustomEmoji(ssb, emojis);
|
HtmlParser.parseCustomEmoji(ssb, emojis);
|
||||||
this.text=ssb;
|
this.text=ssb;
|
||||||
emojiHelper.setText(ssb);
|
emojiHelper.setText(ssb);
|
||||||
this.icon=icon;
|
this.icon=icon;
|
||||||
|
this.handleClick=handleClick;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -61,6 +66,7 @@ public class ReblogOrReplyLineStatusDisplayItem extends StatusDisplayItem{
|
|||||||
public void onBind(ReblogOrReplyLineStatusDisplayItem item){
|
public void onBind(ReblogOrReplyLineStatusDisplayItem item){
|
||||||
text.setText(item.text);
|
text.setText(item.text);
|
||||||
text.setCompoundDrawablesRelativeWithIntrinsicBounds(item.icon, 0, 0, 0);
|
text.setCompoundDrawablesRelativeWithIntrinsicBounds(item.icon, 0, 0, 0);
|
||||||
|
if(item.handleClick!=null) text.setOnClickListener(item.handleClick);
|
||||||
if(Build.VERSION.SDK_INT<Build.VERSION_CODES.N)
|
if(Build.VERSION.SDK_INT<Build.VERSION_CODES.N)
|
||||||
UiUtils.fixCompoundDrawableTintOnAndroid6(text);
|
UiUtils.fixCompoundDrawableTintOnAndroid6(text);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,12 +2,14 @@ package org.joinmastodon.android.ui.displayitems;
|
|||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import org.joinmastodon.android.R;
|
import org.joinmastodon.android.R;
|
||||||
import org.joinmastodon.android.fragments.BaseStatusListFragment;
|
import org.joinmastodon.android.fragments.BaseStatusListFragment;
|
||||||
|
import org.joinmastodon.android.fragments.ProfileFragment;
|
||||||
import org.joinmastodon.android.fragments.ThreadFragment;
|
import org.joinmastodon.android.fragments.ThreadFragment;
|
||||||
import org.joinmastodon.android.model.Account;
|
import org.joinmastodon.android.model.Account;
|
||||||
import org.joinmastodon.android.model.Attachment;
|
import org.joinmastodon.android.model.Attachment;
|
||||||
@@ -16,6 +18,7 @@ import org.joinmastodon.android.model.Poll;
|
|||||||
import org.joinmastodon.android.model.Status;
|
import org.joinmastodon.android.model.Status;
|
||||||
import org.joinmastodon.android.ui.PhotoLayoutHelper;
|
import org.joinmastodon.android.ui.PhotoLayoutHelper;
|
||||||
import org.joinmastodon.android.ui.text.HtmlParser;
|
import org.joinmastodon.android.ui.text.HtmlParser;
|
||||||
|
import org.parceler.Parcels;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -23,6 +26,7 @@ import java.util.Map;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import me.grishka.appkit.Nav;
|
||||||
import me.grishka.appkit.imageloader.requests.ImageLoaderRequest;
|
import me.grishka.appkit.imageloader.requests.ImageLoaderRequest;
|
||||||
import me.grishka.appkit.utils.BindableViewHolder;
|
import me.grishka.appkit.utils.BindableViewHolder;
|
||||||
import me.grishka.appkit.views.UsableRecyclerView;
|
import me.grishka.appkit.views.UsableRecyclerView;
|
||||||
@@ -73,11 +77,19 @@ public abstract class StatusDisplayItem{
|
|||||||
String parentID=parentObject.getID();
|
String parentID=parentObject.getID();
|
||||||
ArrayList<StatusDisplayItem> items=new ArrayList<>();
|
ArrayList<StatusDisplayItem> items=new ArrayList<>();
|
||||||
Status statusForContent=status.getContentStatus();
|
Status statusForContent=status.getContentStatus();
|
||||||
|
Bundle args=new Bundle();
|
||||||
|
args.putString("account", accountID);
|
||||||
if(status.reblog!=null){
|
if(status.reblog!=null){
|
||||||
items.add(new ReblogOrReplyLineStatusDisplayItem(parentID, fragment, fragment.getString(R.string.user_boosted, status.account.displayName), status.account.emojis, R.drawable.ic_fluent_arrow_repeat_all_20_filled));
|
items.add(new ReblogOrReplyLineStatusDisplayItem(parentID, fragment, fragment.getString(R.string.user_boosted, status.account.displayName), status.account.emojis, R.drawable.ic_fluent_arrow_repeat_all_20_filled, i->{
|
||||||
|
args.putParcelable("profileAccount", Parcels.wrap(status.account));
|
||||||
|
Nav.go(fragment.getActivity(), ProfileFragment.class, args);
|
||||||
|
}));
|
||||||
}else if(status.inReplyToAccountId!=null && knownAccounts.containsKey(status.inReplyToAccountId)){
|
}else if(status.inReplyToAccountId!=null && knownAccounts.containsKey(status.inReplyToAccountId)){
|
||||||
Account account=Objects.requireNonNull(knownAccounts.get(status.inReplyToAccountId));
|
Account account=Objects.requireNonNull(knownAccounts.get(status.inReplyToAccountId));
|
||||||
items.add(new ReblogOrReplyLineStatusDisplayItem(parentID, fragment, fragment.getString(R.string.in_reply_to, account.displayName), account.emojis, R.drawable.ic_fluent_arrow_reply_20_filled));
|
items.add(new ReblogOrReplyLineStatusDisplayItem(parentID, fragment, fragment.getString(R.string.in_reply_to, account.displayName), account.emojis, R.drawable.ic_fluent_arrow_reply_20_filled, i->{
|
||||||
|
args.putParcelable("profileAccount", Parcels.wrap(account));
|
||||||
|
Nav.go(fragment.getActivity(), ProfileFragment.class, args);
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
HeaderStatusDisplayItem header;
|
HeaderStatusDisplayItem header;
|
||||||
items.add(header=new HeaderStatusDisplayItem(parentID, statusForContent.account, statusForContent.createdAt, fragment, accountID, statusForContent, null));
|
items.add(header=new HeaderStatusDisplayItem(parentID, statusForContent.account, statusForContent.createdAt, fragment, accountID, statusForContent, null));
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<solid android:color="?colorBackgroundLightest"/>
|
<solid android:color="?colorBackgroundPopup"/>
|
||||||
<corners android:radius="10dp"/>
|
<corners android:radius="10dp"/>
|
||||||
<padding android:top="8dp" android:bottom="8dp"/>
|
<padding android:top="8dp" android:bottom="8dp"/>
|
||||||
</shape>
|
</shape>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item android:state_enabled="true" android:drawable="@drawable/ic_fluent_arrow_repeat_all_24_regular"/>
|
<item android:state_enabled="true" android:drawable="@drawable/ic_fluent_arrow_repeat_all_24_selector"/>
|
||||||
<item android:drawable="@drawable/ic_fluent_arrow_repeat_all_off_24_regular"/>
|
<item android:drawable="@drawable/ic_fluent_arrow_repeat_all_off_24_regular"/>
|
||||||
</selector>
|
</selector>
|
||||||
@@ -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="M14.712 2.289L14.625 2.21c-0.392-0.31-0.964-0.285-1.327 0.078L13.22 2.376c-0.31 0.392-0.285 0.964 0.078 1.326l1.299 1.297H8.999L8.76 5.003C5.004 5.13 2 8.211 2 11.993c0 1.445 0.438 2.788 1.189 3.899C3.37 16.143 3.666 16.307 4 16.307c0.552 0 1-0.448 1-1 0-0.216-0.069-0.416-0.185-0.578L4.68 14.51C4.248 13.77 4 12.91 4 11.993c0-2.759 2.238-4.995 5-4.995h5.595l-1.297 1.297-0.078 0.087c-0.31 0.392-0.285 0.964 0.078 1.326 0.39 0.39 1.024 0.39 1.414 0l3.006-3.003 0.077-0.087c0.311-0.392 0.285-0.964-0.078-1.326l-3.005-3.003zm6.075 5.771C20.602 7.827 20.319 7.678 20 7.678c-0.552 0-1 0.448-1 1 0 0.208 0.064 0.4 0.172 0.56 0.523 0.79 0.828 1.737 0.828 2.755 0 2.76-2.238 4.996-5 4.996H9.416l1.294-1.292 0.083-0.095c0.281-0.361 0.28-0.871-0.006-1.23l-0.077-0.088-0.095-0.084c-0.362-0.28-0.873-0.278-1.232 0.006l-0.088 0.078-3.005 3.003-0.083 0.095c-0.281 0.361-0.28 0.872 0.006 1.231L6.289 18.7l3.005 3.003 0.095 0.084c0.392 0.304 0.96 0.277 1.32-0.084 0.362-0.362 0.388-0.933 0.077-1.326L10.71 20.29l-1.304-1.303h5.596l0.24-0.003C18.996 18.857 22 15.776 22 11.994c0-1.46-0.448-2.816-1.213-3.937V8.06z" android:fillColor="@color/fluent_default_icon_tint"/>
|
||||||
|
</vector>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--~ Copyright (c) 2022. ~ Microsoft Corporation. All rights reserved.-->
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:drawable="@drawable/ic_fluent_arrow_repeat_all_24_filled" android:state_activated="true"/>
|
||||||
|
<item android:drawable="@drawable/ic_fluent_arrow_repeat_all_24_filled" android:state_checked="true"/>
|
||||||
|
<item android:drawable="@drawable/ic_fluent_arrow_repeat_all_24_filled" android:state_selected="true"/>
|
||||||
|
<item android:drawable="@drawable/ic_fluent_arrow_repeat_all_24_regular"/>
|
||||||
|
</selector>
|
||||||
@@ -9,26 +9,29 @@
|
|||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/more"
|
android:id="@+id/more"
|
||||||
android:layout_width="24dp"
|
android:layout_width="36dp"
|
||||||
android:layout_height="24dp"
|
android:layout_height="36dp"
|
||||||
android:layout_alignParentTop="true"
|
android:layout_alignParentTop="true"
|
||||||
android:layout_alignParentEnd="true"
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_marginTop="-6dp"
|
||||||
|
android:layout_marginRight="-8dp"
|
||||||
android:background="?android:selectableItemBackgroundBorderless"
|
android:background="?android:selectableItemBackgroundBorderless"
|
||||||
android:scaleType="center"
|
|
||||||
android:tint="?android:textColorSecondary"
|
|
||||||
android:contentDescription="@string/more_options"
|
android:contentDescription="@string/more_options"
|
||||||
android:src="@drawable/ic_post_more" />
|
android:scaleType="center"
|
||||||
|
android:src="@drawable/ic_post_more"
|
||||||
|
android:tint="?android:textColorSecondary" />
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/visibility"
|
android:id="@+id/visibility"
|
||||||
android:layout_width="24dp"
|
android:layout_width="36dp"
|
||||||
android:layout_height="20dp"
|
android:layout_height="36dp"
|
||||||
android:layout_alignParentEnd="true"
|
android:layout_marginTop="-6dp"
|
||||||
android:layout_below="@id/more"
|
android:layout_marginRight="6dp"
|
||||||
|
android:layout_toLeftOf="@id/more"
|
||||||
android:background="?android:selectableItemBackgroundBorderless"
|
android:background="?android:selectableItemBackgroundBorderless"
|
||||||
android:scaleType="center"
|
android:scaleType="center"
|
||||||
android:tint="?android:textColorSecondary"
|
android:src="@drawable/ic_visibility"
|
||||||
android:src="@drawable/ic_visibility" />
|
android:tint="?android:textColorSecondary" />
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/avatar"
|
android:id="@+id/avatar"
|
||||||
@@ -42,9 +45,9 @@
|
|||||||
android:id="@+id/name_wrap"
|
android:id="@+id/name_wrap"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="24dp"
|
android:layout_height="24dp"
|
||||||
android:layout_toEndOf="@id/avatar"
|
android:layout_marginEnd="8dp"
|
||||||
android:layout_toStartOf="@id/more"
|
android:layout_toStartOf="@id/visibility"
|
||||||
android:layout_marginEnd="8dp">
|
android:layout_toEndOf="@id/avatar">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/name"
|
android:id="@+id/name"
|
||||||
@@ -52,8 +55,8 @@
|
|||||||
android:layout_height="24dp"
|
android:layout_height="24dp"
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
android:textAppearance="@style/m3_title_medium"
|
|
||||||
android:textAlignment="viewStart"
|
android:textAlignment="viewStart"
|
||||||
|
android:textAppearance="@style/m3_title_medium"
|
||||||
tools:text="Eugen" />
|
tools:text="Eugen" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
@@ -62,10 +65,10 @@
|
|||||||
android:layout_height="24dp"
|
android:layout_height="24dp"
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
android:singleLine="true"
|
|
||||||
android:textAppearance="@style/m3_title_medium"
|
|
||||||
android:fontFamily="sans-serif"
|
android:fontFamily="sans-serif"
|
||||||
|
android:singleLine="true"
|
||||||
android:textAlignment="viewStart"
|
android:textAlignment="viewStart"
|
||||||
|
android:textAppearance="@style/m3_title_medium"
|
||||||
tools:text="boosted your cat picture" />
|
tools:text="boosted your cat picture" />
|
||||||
|
|
||||||
</org.joinmastodon.android.ui.views.HeaderSubtitleLinearLayout>
|
</org.joinmastodon.android.ui.views.HeaderSubtitleLinearLayout>
|
||||||
@@ -74,8 +77,9 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="20dp"
|
android:layout_height="20dp"
|
||||||
android:layout_below="@id/name_wrap"
|
android:layout_below="@id/name_wrap"
|
||||||
android:layout_toEndOf="@id/avatar"
|
android:layout_marginEnd="8dp"
|
||||||
android:layout_toStartOf="@id/visibility"
|
android:layout_toStartOf="@id/visibility"
|
||||||
|
android:layout_toEndOf="@id/avatar"
|
||||||
android:layoutDirection="locale"
|
android:layoutDirection="locale"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
@@ -94,6 +98,7 @@
|
|||||||
android:layout_height="20dp"
|
android:layout_height="20dp"
|
||||||
android:layout_marginLeft="4dp"
|
android:layout_marginLeft="4dp"
|
||||||
android:layout_marginRight="4dp"
|
android:layout_marginRight="4dp"
|
||||||
|
android:importantForAccessibility="no"
|
||||||
android:text="·"
|
android:text="·"
|
||||||
android:textAppearance="@style/m3_title_small" />
|
android:textAppearance="@style/m3_title_small" />
|
||||||
|
|
||||||
@@ -101,8 +106,8 @@
|
|||||||
android:id="@+id/timestamp"
|
android:id="@+id/timestamp"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="20dp"
|
android:layout_height="20dp"
|
||||||
android:textAppearance="@style/m3_title_small"
|
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
|
android:textAppearance="@style/m3_title_small"
|
||||||
tools:text="3h" />
|
tools:text="3h" />
|
||||||
|
|
||||||
</org.joinmastodon.android.ui.views.HeaderSubtitleLinearLayout>
|
</org.joinmastodon.android.ui.views.HeaderSubtitleLinearLayout>
|
||||||
|
|||||||
@@ -2,15 +2,16 @@
|
|||||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="-6dp"
|
android:layout_marginBottom="-12dp">
|
||||||
android:paddingLeft="16dp"
|
|
||||||
android:paddingRight="16dp"
|
|
||||||
android:paddingTop="16dp">
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/text"
|
android:id="@+id/text"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingHorizontal="16dp"
|
||||||
|
android:paddingTop="16dp"
|
||||||
|
android:paddingBottom="6dp"
|
||||||
|
android:background="?android:selectableItemBackground"
|
||||||
android:textAppearance="@style/m3_title_small"
|
android:textAppearance="@style/m3_title_small"
|
||||||
android:drawableStart="@drawable/ic_fluent_arrow_repeat_all_20_filled"
|
android:drawableStart="@drawable/ic_fluent_arrow_repeat_all_20_filled"
|
||||||
android:drawableTint="?android:textColorSecondary"
|
android:drawableTint="?android:textColorSecondary"
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:textAppearance="@style/m3_title_small"
|
android:textAppearance="@style/m3_title_small"
|
||||||
android:drawableStart="@drawable/ic_fluent_arrow_reply_20_filled"
|
android:drawableStart="@drawable/ic_fluent_arrow_reply_20_filled"
|
||||||
android:drawableEnd="@drawable/ic_fluent_earth_20_regular"
|
tools:drawableEnd="@drawable/ic_fluent_earth_20_regular"
|
||||||
android:drawableTint="?android:textColorSecondary"
|
android:drawableTint="?android:textColorSecondary"
|
||||||
android:drawablePadding="6dp"
|
android:drawablePadding="6dp"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
|
|||||||
@@ -28,8 +28,8 @@
|
|||||||
<org.joinmastodon.android.ui.views.CoverImageView
|
<org.joinmastodon.android.ui.views.CoverImageView
|
||||||
android:id="@+id/cover"
|
android:id="@+id/cover"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="229dp"
|
android:layout_height="200dp"
|
||||||
android:background="#808080"
|
android:background="?colorWindowBackground"
|
||||||
android:contentDescription="@string/profile_header"
|
android:contentDescription="@string/profile_header"
|
||||||
android:scaleType="centerCrop"/>
|
android:scaleType="centerCrop"/>
|
||||||
|
|
||||||
|
|||||||
@@ -367,5 +367,8 @@
|
|||||||
<string name="install_update">Instal·lar</string>
|
<string name="install_update">Instal·lar</string>
|
||||||
<string name="privacy_policy_title">Mastodon i la teva privacitat</string>
|
<string name="privacy_policy_title">Mastodon i la teva privacitat</string>
|
||||||
<string name="privacy_policy_subtitle">Tot i que l\'aplicació Mastodon no recull cap dada, el servidor mitjançant el qual et registres pot tenir una política diferent. Pren un minut per revisar i acceptar la política de privadesa de l\'aplicació Mastodon i la política de privadesa del teu servidor.</string>
|
<string name="privacy_policy_subtitle">Tot i que l\'aplicació Mastodon no recull cap dada, el servidor mitjançant el qual et registres pot tenir una política diferent. Pren un minut per revisar i acceptar la política de privadesa de l\'aplicació Mastodon i la política de privadesa del teu servidor.</string>
|
||||||
<string name="i_agree">Hi estic d\'acord</string>
|
<string name="i_agree">D\'acord</string>
|
||||||
|
<!-- Missing strings -->
|
||||||
|
<string name="bookmarks">Marcadors</string>
|
||||||
|
<string name="pinned_posts">Fixat</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
<attr name="colorSecondary" format="color"/>
|
<attr name="colorSecondary" format="color"/>
|
||||||
<attr name="colorBackgroundLight" format="color"/>
|
<attr name="colorBackgroundLight" format="color"/>
|
||||||
<attr name="colorBackgroundLightest" format="color"/>
|
<attr name="colorBackgroundLightest" format="color"/>
|
||||||
|
<attr name="colorBackgroundPopup" format="color"/>
|
||||||
<attr name="colorDarkIcon" format="color"/>
|
<attr name="colorDarkIcon" format="color"/>
|
||||||
<attr name="colorPollMostVoted" format="color"/>
|
<attr name="colorPollMostVoted" format="color"/>
|
||||||
<attr name="colorPollVoted" format="color"/>
|
<attr name="colorPollVoted" format="color"/>
|
||||||
|
|||||||
@@ -421,6 +421,7 @@
|
|||||||
<string name="reject_follow_request">Reject follow request</string>
|
<string name="reject_follow_request">Reject follow request</string>
|
||||||
<string name="lists_with_user">Lists with %s</string>
|
<string name="lists_with_user">Lists with %s</string>
|
||||||
<string name="empty_list">This list is empty</string>
|
<string name="empty_list">This list is empty</string>
|
||||||
|
<string name="instance_signup_closed">This server does not accept new registrations.</string>
|
||||||
<string name="settings_always_reveal_content_warnings">Always reveal content warnings</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="disable_marquee">Disable scrolling text in title bars</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
<item name="colorSecondary">#E9EDF2</item>
|
<item name="colorSecondary">#E9EDF2</item>
|
||||||
<item name="colorBackgroundLight">@color/gray_50</item>
|
<item name="colorBackgroundLight">@color/gray_50</item>
|
||||||
<item name="colorBackgroundLightest">@color/gray_25</item>
|
<item name="colorBackgroundLightest">@color/gray_25</item>
|
||||||
|
<item name="colorBackgroundPopup">?colorBackgroundLightest</item>
|
||||||
<item name="colorDarkIcon">@color/gray_900</item>
|
<item name="colorDarkIcon">@color/gray_900</item>
|
||||||
<item name="colorWindowBackground">@color/white</item>
|
<item name="colorWindowBackground">@color/white</item>
|
||||||
<item name="android:statusBarColor">@color/gray_50</item>
|
<item name="android:statusBarColor">@color/gray_50</item>
|
||||||
@@ -67,6 +68,7 @@
|
|||||||
<item name="colorSecondary">#E9EDF2</item>
|
<item name="colorSecondary">#E9EDF2</item>
|
||||||
<item name="colorBackgroundLight">@color/gray_700</item>
|
<item name="colorBackgroundLight">@color/gray_700</item>
|
||||||
<item name="colorBackgroundLightest">@color/gray_900</item>
|
<item name="colorBackgroundLightest">@color/gray_900</item>
|
||||||
|
<item name="colorBackgroundPopup">?colorBackgroundLightest</item>
|
||||||
<item name="colorDarkIcon">@color/gray_25</item>
|
<item name="colorDarkIcon">@color/gray_25</item>
|
||||||
<item name="colorWindowBackground">@color/gray_800</item>
|
<item name="colorWindowBackground">@color/gray_800</item>
|
||||||
<item name="android:statusBarColor">@color/gray_800</item>
|
<item name="android:statusBarColor">@color/gray_800</item>
|
||||||
@@ -93,15 +95,17 @@
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="Theme.Mastodon.Dark.TrueBlack">
|
<style name="Theme.Mastodon.Dark.TrueBlack">
|
||||||
<item name="android:navigationBarColor">#000</item>
|
<item name="android:navigationBarColor">@color/black</item>
|
||||||
<item name="android:colorBackground">#000</item>
|
<item name="android:colorBackground">@color/black</item>
|
||||||
<item name="android:statusBarColor">#000</item>
|
<item name="android:statusBarColor">@color/black</item>
|
||||||
<item name="android:actionBarTheme">@style/Theme.Mastodon.Toolbar.Dark.TrueBlack</item>
|
<item name="android:actionBarTheme">@style/Theme.Mastodon.Toolbar.Dark.TrueBlack</item>
|
||||||
<item name="colorBackgroundLight">#000</item>
|
<item name="colorBackgroundLight">@color/black</item>
|
||||||
<item name="colorBackgroundLightest">#000</item>
|
<item name="colorWindowBackground">@color/black</item>
|
||||||
<item name="colorWindowBackground">#000</item>
|
<item name="colorButtonText">@color/black</item>
|
||||||
<item name="colorButtonText">#000</item>
|
|
||||||
<item name="colorPollVoted">@color/gray_800</item>
|
<item name="colorPollVoted">@color/gray_800</item>
|
||||||
|
<item name="colorSearchField">@color/gray_900</item>
|
||||||
|
<item name="colorBackgroundLightest">@color/black</item>
|
||||||
|
<item name="colorBackgroundPopup">@color/gray_900</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="Theme.Mastodon.AutoLightDark" parent="Theme.Mastodon.Light"/>
|
<style name="Theme.Mastodon.AutoLightDark" parent="Theme.Mastodon.Light"/>
|
||||||
@@ -120,14 +124,14 @@
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="Theme.Mastodon.Toolbar.Dark.TrueBlack" parent="android:ThemeOverlay.Material.Dark.ActionBar">
|
<style name="Theme.Mastodon.Toolbar.Dark.TrueBlack" parent="android:ThemeOverlay.Material.Dark.ActionBar">
|
||||||
<item name="android:colorPrimary">#000</item>
|
<item name="android:colorPrimary">@color/black</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="Theme.Mastodon.Toolbar.Profile">
|
<style name="Theme.Mastodon.Toolbar.Profile">
|
||||||
<item name="android:textColorPrimary">@color/gray_50</item>
|
<item name="android:textColorPrimary">@color/gray_50</item>
|
||||||
<item name="android:textColorSecondary">@color/gray_50</item>
|
<item name="android:textColorSecondary">@color/gray_50</item>
|
||||||
<item name="android:drawableTint">@color/gray_50</item>
|
<item name="android:drawableTint">@color/gray_50</item>
|
||||||
<item name="android:popupBackground">@drawable/bg_popup</item>
|
<item name="android:popupTheme">@style/Theme.Mastodon.AutoLightDark</item>
|
||||||
<item name="android:titleTextAppearance">@style/m3_title_medium</item>
|
<item name="android:titleTextAppearance">@style/m3_title_medium</item>
|
||||||
<item name="android:titleTextColor">@color/gray_50</item>
|
<item name="android:titleTextColor">@color/gray_50</item>
|
||||||
<item name="android:subtitleTextAppearance">@style/m3_body_medium</item>
|
<item name="android:subtitleTextAppearance">@style/m3_body_medium</item>
|
||||||
|
|||||||
Reference in New Issue
Block a user