pull/434/head
Thomas 2 years ago
parent 70c581ba21
commit 60b48c594a

@ -13,16 +13,15 @@
<application
android:name=".MainApplication"
tools:replace="android:allowBackup"
android:allowBackup="false"
android:configChanges="orientation|screenSize"
android:icon="@mipmap/ic_launcher"
android:usesCleartextTraffic="true"
android:label="@string/app_name"
android:configChanges="orientation|screenSize"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppThemeDark"
>
android:usesCleartextTraffic="true"
tools:replace="android:allowBackup">
<activity
android:name=".activities.MainActivity"
android:configChanges="orientation|screenSize|keyboardHidden|screenLayout|smallestScreenSize"
@ -53,12 +52,13 @@
</activity>
<activity
android:exported="true"
android:name=".activities.LoginActivity"
android:configChanges="orientation|screenSize"
android:exported="true"
android:windowSoftInputMode="stateAlwaysHidden">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
@ -112,8 +112,8 @@
<activity
android:name=".activities.SearchResultTabActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@style/AppThemeBar"
android:label="@string/search" />
android:label="@string/search"
android:theme="@style/AppThemeBar" />
<activity
android:name=".activities.TrendsActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
@ -192,8 +192,8 @@
<activity
android:name=".activities.CustomSharingActivity"
android:label="@string/settings_title_custom_sharing"
android:windowSoftInputMode="stateVisible"
android:theme="@style/AppThemeBarDark" />
android:theme="@style/AppThemeBarDark"
android:windowSoftInputMode="stateVisible" />
<activity
android:name=".activities.FilterActivity"
android:label="@string/filters"

@ -164,8 +164,6 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
Fragment currentFragment;
private AppBarConfiguration mAppBarConfiguration;
private ActivityMainBinding binding;
private Pinned pinned;
private BottomMenu bottomMenu;
private final BroadcastReceiver broadcast_error_message = new BroadcastReceiver() {
@Override
public void onReceive(android.content.Context context, Intent intent) {
@ -192,7 +190,8 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
}
}
};
private Pinned pinned;
private BottomMenu bottomMenu;
private final BroadcastReceiver broadcast_data = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {

@ -246,25 +246,25 @@ public class AdminAccountActivity extends BaseActivity {
.asDrawable()
.dontTransform()
.load(targetedUrl).into(
new CustomTarget<Drawable>() {
@Override
public void onResourceReady(@NonNull final Drawable resource, Transition<? super Drawable> transition) {
binding.profilePicture.setImageDrawable(resource);
startPostponedEnterTransition();
}
@Override
public void onLoadFailed(@Nullable Drawable errorDrawable) {
binding.profilePicture.setImageResource(R.drawable.ic_person);
startPostponedEnterTransition();
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
}
);
new CustomTarget<Drawable>() {
@Override
public void onResourceReady(@NonNull final Drawable resource, Transition<? super Drawable> transition) {
binding.profilePicture.setImageDrawable(resource);
startPostponedEnterTransition();
}
@Override
public void onLoadFailed(@Nullable Drawable errorDrawable) {
binding.profilePicture.setImageResource(R.drawable.ic_person);
startPostponedEnterTransition();
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
}
);
//Load header
MastodonHelper.loadProfileMediaMastodon(binding.bannerPp, account, MastodonHelper.MediaAccountType.HEADER);
//Redraws icon for locked accounts

@ -264,25 +264,25 @@ public class AdminReportActivity extends BaseActivity {
.asDrawable()
.dontTransform()
.load(targetedUrl).into(
new CustomTarget<Drawable>() {
@Override
public void onResourceReady(@NonNull final Drawable resource, Transition<? super Drawable> transition) {
binding.profilePicture.setImageDrawable(resource);
startPostponedEnterTransition();
}
@Override
public void onLoadFailed(@Nullable Drawable errorDrawable) {
binding.profilePicture.setImageResource(R.drawable.ic_person);
startPostponedEnterTransition();
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
}
);
new CustomTarget<Drawable>() {
@Override
public void onResourceReady(@NonNull final Drawable resource, Transition<? super Drawable> transition) {
binding.profilePicture.setImageDrawable(resource);
startPostponedEnterTransition();
}
@Override
public void onLoadFailed(@Nullable Drawable errorDrawable) {
binding.profilePicture.setImageResource(R.drawable.ic_person);
startPostponedEnterTransition();
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
}
);
//Load header
MastodonHelper.loadProfileMediaMastodon(binding.bannerPp, account, MastodonHelper.MediaAccountType.HEADER);
//Redraws icon for locked accounts

@ -163,6 +163,33 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
return 3;
}
private static String visibilityToString(int visibility) {
switch (visibility) {
case 3:
return "public";
case 2:
return "unlisted";
case 1:
return "private";
case 0:
return "direct";
}
return "public";
}
public static String getVisibility(String defaultVisibility) {
int tootVisibility = visibilityToNumber(defaultVisibility);
if (currentAccount != null && currentAccount.mastodon_account != null && currentAccount.mastodon_account.source != null) {
int userVisibility = visibilityToNumber(currentAccount.mastodon_account.source.privacy);
if (tootVisibility > userVisibility) {
return visibilityToString(userVisibility);
} else {
return visibilityToString(tootVisibility);
}
}
return defaultVisibility;
}
@Override
protected void onDestroy() {
super.onDestroy();
@ -227,7 +254,6 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
binding.recyclerView.scrollToPosition(composeAdapter.getItemCount() - 1);
}
/**
* Intialize the common view for the context
*
@ -253,7 +279,6 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
binding.recyclerView.scrollToPosition(composeAdapter.getItemCount() - 1);
}
@Override
public boolean onCreateOptionsMenu(@NonNull Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
@ -261,7 +286,6 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
return true;
}
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onOptionsItemSelected(MenuItem item) {
@ -398,7 +422,6 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
return true;
}
private void onRetrieveContact(PopupContactBinding binding, List<app.fedilab.android.client.entities.api.Account> accounts) {
binding.loader.setVisibility(View.GONE);
if (accounts == null) {
@ -414,7 +437,6 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
binding.lvAccountsSearch.setLayoutManager(new LinearLayoutManager(ComposeActivity.this));
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
@ -437,33 +459,6 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
}
}
private static String visibilityToString(int visibility) {
switch (visibility) {
case 3:
return "public";
case 2:
return "unlisted";
case 1:
return "private";
case 0:
return "direct";
}
return "public";
}
public static String getVisibility(String defaultVisibility) {
int tootVisibility = visibilityToNumber(defaultVisibility);
if (currentAccount != null && currentAccount.mastodon_account != null && currentAccount.mastodon_account.source != null) {
int userVisibility = visibilityToNumber(currentAccount.mastodon_account.source.privacy);
if (tootVisibility > userVisibility) {
return visibilityToString(userVisibility);
} else {
return visibilityToString(tootVisibility);
}
}
return defaultVisibility;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

@ -309,16 +309,16 @@ public class EditProfileActivity extends BaseActivity {
return true;
} else if (item.getItemId() == R.id.action_save) {
accountsVM.updateCredentials(BaseMainActivity.currentInstance, BaseMainActivity.currentToken,
binding.discoverable.isChecked(),
binding.bot.isChecked(),
binding.displayName.getText().toString().trim(),
binding.bio.getText().toString(),
binding.locked.isChecked(),
getPrivacy(),
binding.sensitive.isChecked(),
null,
getFields()
)
binding.discoverable.isChecked(),
binding.bot.isChecked(),
binding.displayName.getText().toString().trim(),
binding.bio.getText().toString(),
binding.locked.isChecked(),
getPrivacy(),
binding.sensitive.isChecked(),
null,
getFields()
)
.observe(EditProfileActivity.this, account -> {
if (account != null) {
currentAccount.mastodon_account = account;

@ -264,25 +264,25 @@ public class ProfileActivity extends BaseActivity {
.asDrawable()
.dontTransform()
.load(targetedUrl).into(
new CustomTarget<Drawable>() {
@Override
public void onResourceReady(@NonNull final Drawable resource, Transition<? super Drawable> transition) {
binding.profilePicture.setImageDrawable(resource);
startPostponedEnterTransition();
}
@Override
public void onLoadFailed(@Nullable Drawable errorDrawable) {
binding.profilePicture.setImageResource(R.drawable.ic_person);
startPostponedEnterTransition();
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
}
);
new CustomTarget<Drawable>() {
@Override
public void onResourceReady(@NonNull final Drawable resource, Transition<? super Drawable> transition) {
binding.profilePicture.setImageDrawable(resource);
startPostponedEnterTransition();
}
@Override
public void onLoadFailed(@Nullable Drawable errorDrawable) {
binding.profilePicture.setImageResource(R.drawable.ic_person);
startPostponedEnterTransition();
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
}
);
//Load header
MastodonHelper.loadProfileMediaMastodon(binding.bannerPp, account, MastodonHelper.MediaAccountType.HEADER);
//Redraws icon for locked accounts

@ -93,6 +93,7 @@ public class ReorderTimelinesActivity extends BaseActivity implements OnStartDra
private boolean changes;
private boolean bottomChanges;
private boolean update;
public void setChanges(boolean changes) {
this.changes = changes;
}

@ -94,6 +94,7 @@ public class SearchResultTabActivity extends BaseActivity {
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
Fragment fragment;

@ -78,6 +78,7 @@ public class Account implements Serializable {
public Date mute_expires_at;
@SerializedName("moved")
public Account moved;
public transient RelationShip relationShip;
public synchronized Spannable getSpanDisplayName(Context context, WeakReference<View> viewWeakReference) {
if (display_name == null || display_name.isEmpty()) {
@ -90,14 +91,10 @@ public class Account implements Serializable {
return SpannableHelper.convert(context, title, null, this, null, false, viewWeakReference);
}
public synchronized Spannable getSpanNote(Context context, WeakReference<View> viewWeakReference) {
return SpannableHelper.convert(context, note, null, this, null, true, viewWeakReference);
}
public transient RelationShip relationShip;
public static class AccountParams implements Serializable {
@SerializedName("discoverable")
public boolean discoverable;

@ -61,6 +61,24 @@ public class Instance implements Serializable {
@SerializedName("max_toot_chars")
public String max_toot_chars;
public static String serialize(Instance instance) {
Gson gson = new Gson();
try {
return gson.toJson(instance);
} catch (Exception e) {
return null;
}
}
public static Instance restore(String serialized) {
Gson gson = new Gson();
try {
return gson.fromJson(serialized, Instance.class);
} catch (Exception e) {
return null;
}
}
public List<String> getMimeTypeAudio() {
List<String> mimeTypes = new ArrayList<>();
if (configuration == null || configuration.media_attachments == null || configuration.media_attachments.supported_mime_types == null) {
@ -87,7 +105,6 @@ public class Instance implements Serializable {
return mimeTypes;
}
public List<String> getMimeTypeImage() {
List<String> mimeTypes = new ArrayList<>();
if (configuration == null || configuration.media_attachments == null || configuration.media_attachments.supported_mime_types == null) {
@ -114,25 +131,6 @@ public class Instance implements Serializable {
return mimeTypes;
}
public static String serialize(Instance instance) {
Gson gson = new Gson();
try {
return gson.toJson(instance);
} catch (Exception e) {
return null;
}
}
public static Instance restore(String serialized) {
Gson gson = new Gson();
try {
return gson.fromJson(serialized, Instance.class);
} catch (Exception e) {
return null;
}
}
public static class Configuration implements Serializable {
@SerializedName("statuses")
public StatusesConf statusesConf;

@ -94,18 +94,7 @@ public class Status implements Serializable, Cloneable {
public Pleroma pleroma;
@SerializedName("cached")
public boolean cached = false;
@Override
public boolean equals(@Nullable Object obj) {
boolean same = false;
if (obj instanceof Status) {
same = this.id.equals(((Status) obj).id);
}
return same;
}
public Attachment art_attachment;
public boolean isExpended = false;
public boolean isTruncated = true;
public boolean isFetchMore = false;
@ -119,6 +108,15 @@ public class Status implements Serializable, Cloneable {
public transient boolean setCursorToEnd = false;
public transient int cursorPosition = 0;
public transient boolean submitted = false;
@Override
public boolean equals(@Nullable Object obj) {
boolean same = false;
if (obj instanceof Status) {
same = this.id.equals(((Status) obj).id);
}
return same;
}
//Some extra spannable element - They will be filled automatically when fetching the status
public synchronized Spannable getSpanContent(Context context, WeakReference<View> viewWeakReference) {

@ -471,23 +471,6 @@ public class StatusCache {
return reply;
}
public enum order {
@SerializedName("ASC")
ASC("ASC"),
@SerializedName("DESC")
DESC("DESC");
private final String value;
order(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
public int count(BaseAccount account) throws DBException {
if (db == null) {
throw new DBException("db is null. Wrong initialization.");
@ -556,4 +539,20 @@ public class StatusCache {
return restoreStatusFromString(serializedStatus);
}
public enum order {
@SerializedName("ASC")
ASC("ASC"),
@SerializedName("DESC")
DESC("DESC");
private final String value;
order(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
}

@ -121,40 +121,6 @@ public class PeertubeVideo implements Serializable {
public List<StreamingPlaylist> streamingPlaylists;
}
public class StreamingPlaylist implements Serializable {
@SerializedName("id")
public String id;
@SerializedName("type")
public int type;
@SerializedName("playlistUrl")
public String playlistUrl;
@SerializedName("segmentsSha256Url")
public String segmentsSha256Url;
@SerializedName("files")
public List<File> files;
}
public class File implements Serializable {
@SerializedName("fileDownloadUrl")
public String fileDownloadUrl;
@SerializedName("fileUrl")
public String fileUrl;
@SerializedName("fps")
public int fps;
@SerializedName("magnetUri")
public String magnetUri;
@SerializedName("metadataUrl")
public String metadataUrl;
@SerializedName("resolution")
public Item resolutions;
@SerializedName("size")
public long size;
@SerializedName("torrentDownloadUrl")
public String torrentDownloadUrl;
@SerializedName("torrentUrl")
public String torrentUrl;
}
public static class PeertubeAccount implements Serializable {
@SerializedName("avatar")
public Avatar avatar;
@ -223,4 +189,38 @@ public class PeertubeVideo implements Serializable {
@SerializedName("updatedAt")
public Date updatedAt;
}
public class StreamingPlaylist implements Serializable {
@SerializedName("id")
public String id;
@SerializedName("type")
public int type;
@SerializedName("playlistUrl")
public String playlistUrl;
@SerializedName("segmentsSha256Url")
public String segmentsSha256Url;
@SerializedName("files")
public List<File> files;
}
public class File implements Serializable {
@SerializedName("fileDownloadUrl")
public String fileDownloadUrl;
@SerializedName("fileUrl")
public String fileUrl;
@SerializedName("fps")
public int fps;
@SerializedName("magnetUri")
public String magnetUri;
@SerializedName("metadataUrl")
public String metadataUrl;
@SerializedName("resolution")
public Item resolutions;
@SerializedName("size")
public long size;
@SerializedName("torrentDownloadUrl")
public String torrentDownloadUrl;
@SerializedName("torrentUrl")
public String torrentUrl;
}
}

@ -368,6 +368,7 @@ public class Helper {
};
public static int counter = 1;
private static int notificationId = 1;
static {
LinkedHashMap<PatternType, Pattern> aMap = new LinkedHashMap<>();
@ -888,7 +889,6 @@ public class Helper {
return Cyanea.getInstance().isDark() ? R.style.PopupDark : R.style.Popup;
}
/**
* Load a media into a view
*
@ -1068,7 +1068,6 @@ public class Helper {
}
/**
* Load a profile picture for the account
*
@ -1120,7 +1119,6 @@ public class Helper {
}
}
public static Proxy getProxy(Context context) {
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context);
String hostVal = sharedpreferences.getString(context.getString(R.string.SET_PROXY_HOST), "127.0.0.1");
@ -1182,7 +1180,6 @@ public class Helper {
return MultipartBody.Part.createFormData(paramName, attachment.filename, requestFile);
}
/**
* Creates MultipartBody.Part from Uri
*
@ -1235,7 +1232,6 @@ public class Helper {
return MultipartBody.Part.createFormData(paramName, attachment.filename, requestFile);
}
public static MultipartBody.Part getMultipartBody(Context context, @NonNull String paramName, @NonNull Uri uri) {
byte[] imageBytes = uriToByteArray(context, uri);
ContentResolver cR = context.getApplicationContext().getContentResolver();
@ -1419,9 +1415,6 @@ public class Helper {
imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
}
private static int notificationId = 1;
/**
* Sends notification with intent
*
@ -1635,32 +1628,6 @@ public class Helper {
return "@fedilab_fetch_more_" + uuid;
}
//Enum that described actions to replace inside a toot content
public enum PatternType {
MENTION,
MENTION_LONG,
TAG,
GROUP
}
public enum NotifType {
FOLLLOW,
MENTION,
BOOST,
FAV,
POLL,
STATUS,
BACKUP,
STORE,
TOOT
}
public interface OnAttachmentCopied {
void onAttachmentCopied(Attachment attachment);
}
public static Gson getDateBuilder() {
SimpleDateFormat[] formats = new SimpleDateFormat[]{
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.getDefault()),
@ -1693,7 +1660,6 @@ public class Helper {
.create();
}
/***
* Download method which works for http and https connections
* @param downloadUrl String download url
@ -1772,7 +1738,6 @@ public class Helper {
return null;
}
public static void displayReleaseNotesIfNeeded(Activity activity, boolean forced) {
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(activity);
int lastReleaseNoteRead = sharedpreferences.getInt(activity.getString(R.string.SET_POPUP_RELEASE_NOTES), 0);
@ -1879,4 +1844,30 @@ public class Helper {
editor.apply();
}
}
//Enum that described actions to replace inside a toot content
public enum PatternType {
MENTION,
MENTION_LONG,
TAG,
GROUP
}
public enum NotifType {
FOLLLOW,
MENTION,
BOOST,
FAV,
POLL,
STATUS,
BACKUP,
STORE,
TOOT
}
public interface OnAttachmentCopied {
void onAttachmentCopied(Attachment attachment);
}
}

@ -466,6 +466,21 @@ public class MastodonHelper {
adapter.notifyItemRangeInserted(i, statusesToInsert.size());
}
public static int getInstanceMaxChars(Context context) {
int max_car;
if (instanceInfo != null) {
max_car = instanceInfo.max_toot_chars != null ? Integer.parseInt(instanceInfo.max_toot_chars) : instanceInfo.configuration.statusesConf.max_characters;
} else {
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context);
int val = sharedpreferences.getInt(context.getString(R.string.SET_MAX_INSTANCE_CHAR) + MainActivity.currentInstance, -1);
if (val != -1) {
return val;
} else {
max_car = 500;
}
}
return max_car;
}
public enum MediaAccountType {
AVATAR,
@ -501,20 +516,4 @@ public class MastodonHelper {
public interface TimedMuted {
void onTimedMute(RelationShip relationShip);
}
public static int getInstanceMaxChars(Context context) {
int max_car;
if (instanceInfo != null) {
max_car = instanceInfo.max_toot_chars != null ? Integer.parseInt(instanceInfo.max_toot_chars) : instanceInfo.configuration.statusesConf.max_characters;
} else {
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context);
int val = sharedpreferences.getInt(context.getString(R.string.SET_MAX_INSTANCE_CHAR) + MainActivity.currentInstance, -1);
if (val != -1) {
return val;
} else {
max_car = 500;
}
}
return max_car;
}
}

@ -389,16 +389,6 @@ public class MediaHelper {
alertDialog.show();
}
//Listener for recording media
public interface ActionRecord {
void onRecorded(String file);
}
public interface OnSchedule {
void scheduledAt(String scheduledDate);
}
/**
* Returns the max height of a list of media
*
@ -416,4 +406,13 @@ public class MediaHelper {
}
return maxHeight;
}
//Listener for recording media
public interface ActionRecord {
void onRecorded(String file);
}
public interface OnSchedule {
void scheduledAt(String scheduledDate);
}
}

@ -859,7 +859,7 @@ public class PinnedTimelineHelper {
/**
* Manage long clicks on followed instances
*
* @param activity - BaseMainActivity activity
* @param activity - BaseMainActivity activity
* @param pinned - {@link Pinned}
* @param view - View
* @param position - int position of the tab

@ -112,37 +112,37 @@ public class AnnouncementAdapter extends RecyclerView.Adapter<AnnouncementAdapte
holder.binding.statusEmoji.setOnClickListener(v -> {
EmojiManager.install(new EmojiOneProvider());
final EmojiPopup emojiPopup = EmojiPopup.Builder.fromRootView(holder.binding.statusEmoji).setOnEmojiPopupDismissListener(() -> {
InputMethodManager imm = (InputMethodManager) context.getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(holder.binding.statusEmoji.getWindowToken(), 0);
}).setOnEmojiClickListener((emoji, imageView) -> {
String emojiStr = imageView.getUnicode();
boolean alreadyAdded = false;
for (Reaction reaction : announcement.reactions) {
if (reaction.name.compareTo(emojiStr) == 0) {
alreadyAdded = true;
reaction.count = (reaction.count - 1);
if (reaction.count == 0) {
announcement.reactions.remove(reaction);
InputMethodManager imm = (InputMethodManager) context.getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(holder.binding.statusEmoji.getWindowToken(), 0);
}).setOnEmojiClickListener((emoji, imageView) -> {
String emojiStr = imageView.getUnicode();
boolean alreadyAdded = false;
for (Reaction reaction : announcement.reactions) {
if (reaction.name.compareTo(emojiStr) == 0) {
alreadyAdded = true;
reaction.count = (reaction.count - 1);
if (reaction.count == 0) {
announcement.reactions.remove(reaction);
}
notifyItemChanged(position);
break;
}
}
notifyItemChanged(position);
break;
}
}
if (!alreadyAdded) {
Reaction reaction = new Reaction();
reaction.me = true;
reaction.count = 1;
reaction.name = emojiStr;
announcement.reactions.add(0, reaction);
notifyItemChanged(position);
}
announcementsVM = new ViewModelProvider((ViewModelStoreOwner) context).get(AnnouncementsVM.class);
if (alreadyAdded) {
announcementsVM.removeReaction(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, announcement.id, emojiStr);
} else {
announcementsVM.addReaction(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, announcement.id, emojiStr);
}
})
if (!alreadyAdded) {
Reaction reaction = new Reaction();
reaction.me = true;
reaction.count = 1;
reaction.name = emojiStr;
announcement.reactions.add(0, reaction);
notifyItemChanged(position);
}
announcementsVM = new ViewModelProvider((ViewModelStoreOwner) context).get(AnnouncementsVM.class);
if (alreadyAdded) {
announcementsVM.removeReaction(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, announcement.id, emojiStr);
} else {
announcementsVM.addReaction(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, announcement.id, emojiStr);
}
})
.build(holder.binding.layoutReactions.fakeEdittext);
emojiPopup.toggle();
});

@ -138,6 +138,7 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
private int statusCount;
private Context context;
private AlertDialog alertDialogEmoji;
private List<Emoji> emojisList = new ArrayList<>();
public ComposeAdapter(List<Status> statusList, int statusCount, BaseAccount account, app.fedilab.android.client.entities.api.Account mentionedAccount, String visibility) {
this.statusList = statusList;
@ -455,6 +456,7 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
public String getLastComposeContent() {
return statusList.get(statusList.size() - 1).text != null ? statusList.get(statusList.size() - 1).text : "";
}
//------- end contact ----->
//Used to write contact when composing
public void updateContent(boolean checked, String acct) {
@ -466,7 +468,6 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
}
notifyItemChanged(statusList.size() - 1);
}
//------- end contact ----->
//Put cursor to the end after changing contacts
public void putCursor() {
@ -691,7 +692,6 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
return statusList.size();
}
private List<Emoji> emojisList = new ArrayList<>();
/**
* Initialize text watcher for content writing
* It will allow to complete autocomplete edit text while starting words with @, #, : etc.

@ -147,9 +147,9 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
private final List<Status> statusList;
private final boolean minified;
private final Timeline.TimeLineEnum timelineType;
private final boolean canBeFederated;
public FetchMoreCallBack fetchMoreCallBack;
private Context context;
private final boolean canBeFederated;
public StatusAdapter(List<Status> statuses, Timeline.TimeLineEnum timelineType, boolean minified, boolean canBeFederated) {
this.statusList = statuses;
@ -304,14 +304,14 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
/**
* Manage status, this method is also reused in notifications timelines
*
* @param context Context
* @param statusesVM StatusesVM - For handling actions in background to the correct activity
* @param searchVM SearchVM - For handling remote actions
* @param holder StatusViewHolder
* @param adapter RecyclerView.Adapter<RecyclerView.ViewHolder> - General adapter that can be for {@link StatusAdapter} or {@link NotificationAdapter}
* @param statusList List<Status>
* @param timelineType Timeline.TimeLineEnum timelineTypeTimeline.TimeLineEnum
* @param status {@link Status}
* @param context Context
* @param statusesVM StatusesVM - For handling actions in background to the correct activity
* @param searchVM SearchVM - For handling remote actions
* @param holder StatusViewHolder
* @param adapter RecyclerView.Adapter<RecyclerView.ViewHolder> - General adapter that can be for {@link StatusAdapter} or {@link NotificationAdapter}
* @param statusList List<Status>
* @param timelineType Timeline.TimeLineEnum timelineTypeTimeline.TimeLineEnum
* @param status {@link Status}
*/
@SuppressLint("ClickableViewAccessibility")
public static void statusManagement(Context context,
@ -359,40 +359,40 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
holder.binding.statusEmoji.setOnClickListener(v -> {
EmojiManager.install(new EmojiOneProvider());
final EmojiPopup emojiPopup = EmojiPopup.Builder.fromRootView(holder.binding.statusEmoji).setOnEmojiPopupDismissListener(() -> {
InputMethodManager imm = (InputMethodManager) context.getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(holder.binding.statusEmoji.getWindowToken(), 0);
}).setOnEmojiClickListener((emoji, imageView) -> {
String emojiStr = imageView.getUnicode();
boolean alreadyAdded = false;
if (status.pleroma == null || status.pleroma.emoji_reactions == null) {
return;
}
for (Reaction reaction : status.pleroma.emoji_reactions) {
if (reaction.name.compareTo(emojiStr) == 0) {
alreadyAdded = true;
reaction.count = (reaction.count - 1);
if (reaction.count == 0) {
status.pleroma.emoji_reactions.remove(reaction);
InputMethodManager imm = (InputMethodManager) context.getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(holder.binding.statusEmoji.getWindowToken(), 0);
}).setOnEmojiClickListener((emoji, imageView) -> {
String emojiStr = imageView.getUnicode();
boolean alreadyAdded = false;
if (status.pleroma == null || status.pleroma.emoji_reactions == null) {
return;
}
adapter.notifyItemChanged(holder.getBindingAdapterPosition());
break;
}
}
if (!alreadyAdded) {
Reaction reaction = new Reaction();
reaction.me = true;
reaction.count = 1;
reaction.name = emojiStr;
status.pleroma.emoji_reactions.add(0, reaction);
adapter.notifyItemChanged(holder.getBindingAdapterPosition());
}
ActionsVM actionVM = new ViewModelProvider((ViewModelStoreOwner) context).get(ActionsVM.class);
if (alreadyAdded) {
actionVM.removeReaction(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, statusToDeal.id, emojiStr);
} else {
actionVM.addReaction(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, statusToDeal.id, emojiStr);
}
})
for (Reaction reaction : status.pleroma.emoji_reactions) {
if (reaction.name.compareTo(emojiStr) == 0) {
alreadyAdded = true;
reaction.count = (reaction.count - 1);
if (reaction.count == 0) {
status.pleroma.emoji_reactions.remove(reaction);
}
adapter.notifyItemChanged(holder.getBindingAdapterPosition());
break;
}
}
if (!alreadyAdded) {
Reaction reaction = new Reaction();
reaction.me = true;
reaction.count = 1;
reaction.name = emojiStr;
status.pleroma.emoji_reactions.add(0, reaction);
adapter.notifyItemChanged(holder.getBindingAdapterPosition());
}
ActionsVM actionVM = new ViewModelProvider((ViewModelStoreOwner) context).get(ActionsVM.class);
if (alreadyAdded) {
actionVM.removeReaction(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, statusToDeal.id, emojiStr);
} else {
actionVM.addReaction(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, statusToDeal.id, emojiStr);
}
})
.build(holder.binding.layoutReactions.fakeEdittext);
emojiPopup.toggle();
});

@ -68,18 +68,18 @@ public class FragmentAdminAccount extends Fragment {
private void fetchAccount(Callback callback) {
adminVM.getAccounts(
BaseMainActivity.currentInstance, BaseMainActivity.currentToken,
AdminActionActivity.local,
AdminActionActivity.remote,
byDomain,
AdminActionActivity.active,
AdminActionActivity.pending,
AdminActionActivity.disabled,
AdminActionActivity.silenced,
AdminActionActivity.suspended,
username, displayName, email, ip,
AdminActionActivity.staff, max_id, null,
MastodonHelper.statusesPerCall(requireActivity()))
BaseMainActivity.currentInstance, BaseMainActivity.currentToken,
AdminActionActivity.local,
AdminActionActivity.remote,
byDomain,
AdminActionActivity.active,
AdminActionActivity.pending,
AdminActionActivity.disabled,
AdminActionActivity.silenced,
AdminActionActivity.suspended,
username, displayName, email, ip,
AdminActionActivity.staff, max_id, null,
MastodonHelper.statusesPerCall(requireActivity()))
.observe(requireActivity(), callback::accountFetched);
}

@ -82,7 +82,7 @@ public class FragmentAdminReport extends Fragment {
binding.recyclerView.setVisibility(View.GONE);
flagLoading = false;
adminVM.getReports(
BaseMainActivity.currentInstance, BaseMainActivity.currentToken, AdminActionActivity.resolved, null, null, null)
BaseMainActivity.currentInstance, BaseMainActivity.currentToken, AdminActionActivity.resolved, null, null, null)
.observe(getViewLifecycleOwner(), this::initializeStatusesCommonView);
return binding.getRoot();
}
@ -109,7 +109,7 @@ public class FragmentAdminReport extends Fragment {
max_id = null;
flagLoading = false;
adminVM.getReports(
BaseMainActivity.currentInstance, BaseMainActivity.currentToken, AdminActionActivity.resolved, null, null, null)
BaseMainActivity.currentInstance, BaseMainActivity.currentToken, AdminActionActivity.resolved, null, null, null)
.observe(getViewLifecycleOwner(), this::initializeStatusesCommonView);
});
@ -162,7 +162,7 @@ public class FragmentAdminReport extends Fragment {
flagLoading = true;
binding.loadingNextElements.setVisibility(View.VISIBLE);
adminVM.getReports(
BaseMainActivity.currentInstance, BaseMainActivity.currentToken, AdminActionActivity.resolved, null, null, max_id)
BaseMainActivity.currentInstance, BaseMainActivity.currentToken, AdminActionActivity.resolved, null, null, max_id)
.observe(getViewLifecycleOwner(), adminReports1 -> dealWithPagination(adminReports1));
}
} else {

@ -127,77 +127,77 @@ public class FragmentMedia extends Fragment {
.asBitmap()
.dontTransform()
.load(preview_url).into(
new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull final Bitmap resource, Transition<? super Bitmap> transition) {
binding.mediaPicture.setImageBitmap(resource);
scheduleStartPostponedTransition(binding.mediaPicture);
if (attachment.type.equalsIgnoreCase("image") && !attachment.url.toLowerCase().endsWith(".gif")) {
final Handler handler = new Handler();
handler.postDelayed(() -> {
if (binding == null) {
return;
new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull final Bitmap resource, Transition<? super Bitmap> transition) {
binding.mediaPicture.setImageBitmap(resource);
scheduleStartPostponedTransition(binding.mediaPicture);
if (attachment.type.equalsIgnoreCase("image") && !attachment.url.toLowerCase().endsWith(".gif")) {
final Handler handler = new Handler();
handler.postDelayed(() -> {
if (binding == null) {
return;
}
binding.pbarInf.setScaleY(1f);
binding.mediaPicture.setVisibility(View.VISIBLE);
binding.pbarInf.setIndeterminate(true);
binding.loader.setVisibility(View.VISIBLE);
if (binding == null || !isAdded() || getActivity() == null) {
return;
}
if (Helper.isValidContextForGlide(requireActivity()) && isAdded()) {
Glide.with(requireActivity())
.asBitmap()
.dontTransform()
.load(url).into(
new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull final Bitmap resource, Transition<? super Bitmap> transition) {
if (binding != null) {
binding.loader.setVisibility(View.GONE);
if (binding.mediaPicture.getScale() < 1.1) {
binding.mediaPicture.setImageBitmap(resource);
} else {
binding.messageReady.setVisibility(View.VISIBLE);
}
binding.messageReady.setOnClickListener(view -> {
binding.mediaPicture.setImageBitmap(resource);
binding.messageReady.setVisibility(View.GONE);
});
}
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
}
);
}
}, 1000);
} else if (attachment.type.equalsIgnoreCase("image") && attachment.url.toLowerCase().endsWith(".gif")) {
binding.loader.setVisibility(View.GONE);
if (Helper.isValidContextForGlide(requireActivity())) {
Glide.with(requireActivity())
.load(url).into(binding.mediaPicture);
}
scheduleStartPostponedTransition(binding.mediaPicture);
}
binding.pbarInf.setScaleY(1f);
binding.mediaPicture.setVisibility(View.VISIBLE);
binding.pbarInf.setIndeterminate(true);
binding.loader.setVisibility(View.VISIBLE);
if (binding == null || !isAdded() || getActivity() == null) {
return;
}
if (Helper.isValidContextForGlide(requireActivity()) && isAdded()) {
Glide.with(requireActivity())
.asBitmap()
.dontTransform()
.load(url).into(
new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull final Bitmap resource, Transition<? super Bitmap> transition) {
if (binding != null) {
binding.loader.setVisibility(View.GONE);
if (binding.mediaPicture.getScale() < 1.1) {
binding.mediaPicture.setImageBitmap(resource);
} else {
binding.messageReady.setVisibility(View.VISIBLE);
}
binding.messageReady.setOnClickListener(view -> {
binding.mediaPicture.setImageBitmap(resource);
binding.messageReady.setVisibility(View.GONE);
});
}
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
}
);
}
}, 1000);
} else if (attachment.type.equalsIgnoreCase("image") && attachment.url.toLowerCase().endsWith(".gif")) {
binding.loader.setVisibility(View.GONE);
if (Helper.isValidContextForGlide(requireActivity())) {
Glide.with(requireActivity())
.load(url).into(binding.mediaPicture);
}
scheduleStartPostponedTransition(binding.mediaPicture);
}
}
@Override
public void onLoadFailed(@Nullable Drawable errorDrawable) {
scheduleStartPostponedTransition(binding.mediaPicture);
}
@Override
public void onLoadFailed(@Nullable Drawable errorDrawable) {
scheduleStartPostponedTransition(binding.mediaPicture);
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
}
);
}
}
);
}
switch (type.toLowerCase()) {
case "video":

@ -44,8 +44,8 @@ public class FedilabPageAdapter extends FragmentStatePagerAdapter {
private final Pinned pinned;
private final BottomMenu bottomMenu;
private final int toRemove;
private Fragment mCurrentFragment;
private final boolean singleBar;
private Fragment mCurrentFragment;
public FedilabPageAdapter(BaseMainActivity activity, FragmentManager fm, Pinned pinned, BottomMenu bottomMenu) {
super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);

@ -77,6 +77,7 @@ public class FedilabProfileTLPageAdapter extends FragmentStatePagerAdapter {
public int getCount() {
return 3;
}
public enum follow_type {
FOLLOWING,
FOLLOWERS

@ -352,6 +352,7 @@ public class TimelinesVM extends AndroidViewModel {
case HOME:
timelineCall = mastodonTimelinesService.getHome(timelineParams.token, timelineParams.maxId, timelineParams.sinceId, timelineParams.minId, timelineParams.limit, timelineParams.local);
break;
case REMOTE:
case LOCAL:
timelineCall = mastodonTimelinesService.getPublic(timelineParams.token, true, false, timelineParams.onlyMedia, timelineParams.maxId, timelineParams.sinceId, timelineParams.minId, timelineParams.limit);
break;
@ -378,17 +379,26 @@ public class TimelinesVM extends AndroidViewModel {
Status newestStatus = new StatusCache(getApplication().getApplicationContext()).getNewestStatus(timelineParams.slug, timelineParams.instance, timelineParams.userId);
//When refreshing/scrolling to TOP, if last statuses fetched has a greater id from newest in cache, there is potential hole
if (newestStatus != null && statusList.get(statusList.size() - 1).id.compareToIgnoreCase(newestStatus.id) > 0) {
statusList.get(statusList.size() - 1).isFetchMore = true;
Status statusFetchMore = new Status();
statusFetchMore.isFetchMore = true;
statusFetchMore.id = Helper.generateString();
statusList.add(statusFetchMore);
}
} else if (timelineParams.direction == FragmentMastodonTimeline.DIRECTION.TOP && timelineParams.fetchingMissing) {
Status topStatus = new StatusCache(getApplication().getApplicationContext()).getTopFetchMore(timelineParams.slug, timelineParams.instance, timelineParams.slug, statusList.get(0).id);
if (topStatus != null && statusList.get(0).id.compareToIgnoreCase(topStatus.id) < 0) {
statusList.get(0).isFetchMore = true;
Status statusFetchMore = new Status();
statusFetchMore.isFetchMore = true;
statusFetchMore.id = Helper.generateString();
statusList.add(0, statusFetchMore);
}
} else if (timelineParams.direction == FragmentMastodonTimeline.DIRECTION.BOTTOM && timelineParams.fetchingMissing) {
Status bottomStatus = new StatusCache(getApplication().getApplicationContext()).getBottomFetchMore(timelineParams.slug, timelineParams.instance, timelineParams.slug, statusList.get(0).id);
if (bottomStatus != null && statusList.get(statusList.size() - 1).id.compareToIgnoreCase(bottomStatus.id) > 0) {
statusList.get(statusList.size() - 1).isFetchMore = true;
Status statusFetchMore = new Status();
statusFetchMore.isFetchMore = true;
statusFetchMore.id = Helper.generateString();
statusList.add(statusFetchMore);
}
}
for (Status status : statuses.statuses) {
@ -444,62 +454,6 @@ public class TimelinesVM extends AndroidViewModel {
return statusesMutableLiveData;
}
public static class TimelineParams {
public FragmentMastodonTimeline.DIRECTION direction;
public String instance;
public String token;
public Timeline.TimeLineEnum type;
public String slug;
public String userId;
public Boolean remote;
public Boolean onlyMedia;
public String hashtagTrim;
public List<String> all;
public List<String> any;
public List<String> none;
public String listId;
public Boolean fetchingMissing;
public String maxId;
public String sinceId;
public String minId;
public int limit = 40;
public Boolean local;
public TimelineParams(@NonNull Timeline.TimeLineEnum timeLineEnum, @Nullable FragmentMastodonTimeline.DIRECTION timelineDirection, @Nullable String ident) {
if (type != Timeline.TimeLineEnum.REMOTE) {
instance = MainActivity.currentInstance;
token = MainActivity.currentToken;
userId = MainActivity.currentUserID;
}
type = timeLineEnum;
direction = timelineDirection;
String key = type.getValue();
if (ident != null) {
key += "|" + ident;
}
slug = key;
}
@NonNull
@Override
public String toString() {
return "direction: " + direction + "\n" +
"instance: " + instance + "\n" +
"token: " + token + "\n" +
"type: " + type + "\n" +
"slug: " + slug + "\n" +
"userId: " + userId + "\n" +
"remote: " + remote + "\n" +
"onlyMedia: " + onlyMedia + "\n" +
"local: " + local + "\n" +
"maxId: " + maxId + "\n" +
"sinceId: " + sinceId + "\n" +
"minId: " + minId + "\n";
}
}
/**
* Get user drafts
*
@ -523,7 +477,6 @@ public class TimelinesVM extends AndroidViewModel {
return statusDraftListMutableLiveData;
}
/**
* Show conversations
*
@ -871,4 +824,59 @@ public class TimelinesVM extends AndroidViewModel {
}
}).start();
}
public static class TimelineParams {
public FragmentMastodonTimeline.DIRECTION direction;
public String instance;
public String token;
public Timeline.TimeLineEnum type;
public String slug;
public String userId;
public Boolean remote;
public Boolean onlyMedia;
public String hashtagTrim;
public List<String> all;
public List<String> any;
public List<String> none;
public String listId;
public Boolean fetchingMissing;
public String maxId;
public String sinceId;
public String minId;
public int limit = 40;
public Boolean local;
public TimelineParams(@NonNull Timeline.TimeLineEnum timeLineEnum, @Nullable FragmentMastodonTimeline.DIRECTION timelineDirection, @Nullable String ident) {
if (type != Timeline.TimeLineEnum.REMOTE) {
instance = MainActivity.currentInstance;
token = MainActivity.currentToken;
userId = MainActivity.currentUserID;
}
type = timeLineEnum;
direction = timelineDirection;
String key = type.getValue();
if (ident != null) {
key += "|" + ident;
}
slug = key;
}
@NonNull
@Override
public String toString() {
return "direction: " + direction + "\n" +
"instance: " + instance + "\n" +
"token: " + token + "\n" +
"type: " + type + "\n" +
"slug: " + slug + "\n" +
"userId: " + userId + "\n" +
"remote: " + remote + "\n" +
"onlyMedia: " + onlyMedia + "\n" +
"local: " + local + "\n" +
"maxId: " + maxId + "\n" +
"sinceId: " + sinceId + "\n" +
"minId: " + minId + "\n";
}
}
}

@ -1,8 +1,8 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:tint="#FFFFFF"
android:viewportWidth="24"
android:viewportHeight="24">
<group
android:scaleX="0.41725722"

@ -1,10 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z" />
</vector>

@ -1,10 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M7,14l5,-5 5,5z"/>
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M7,14l5,-5 5,5z" />
</vector>

@ -1,10 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM4,12c0,-4.42 3.58,-8 8,-8 1.85,0 3.55,0.63 4.9,1.69L5.69,16.9C4.63,15.55 4,13.85 4,12zM12,20c-1.85,0 -3.55,-0.63 -4.9,-1.69L18.31,7.1C19.37,8.45 20,10.15 20,12c0,4.42 -3.58,8 -8,8z"/>
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM4,12c0,-4.42 3.58,-8 8,-8 1.85,0 3.55,0.63 4.9,1.69L5.69,16.9C4.63,15.55 4,13.85 4,12zM12,20c-1.85,0 -3.55,-0.63 -4.9,-1.69L18.31,7.1C19.37,8.45 20,10.15 20,12c0,4.42 -3.58,8 -8,8z" />
</vector>

@ -4,7 +4,7 @@
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="?attr/colorControlNormal"
android:pathData="M17,3L7,3c-1.1,0 -1.99,0.9 -1.99,2L5,21l7,-3 7,3L19,5c0,-1.1 -0.9,-2 -2,-2zM17,18l-5,-2.18L7,18L7,5h10v13z" />
<path
android:fillColor="?attr/colorControlNormal"
android:pathData="M17,3L7,3c-1.1,0 -1.99,0.9 -1.99,2L5,21l7,-3 7,3L19,5c0,-1.1 -0.9,-2 -2,-2zM17,18l-5,-2.18L7,18L7,5h10v13z" />
</vector>

@ -1,10 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z"/>
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z" />
</vector>

@ -1,10 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="@color/having_description"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="@color/having_description">
<path
android:fillColor="@android:color/white"
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM10,17l-5,-5 1.41,-1.41L10,14.17l7.59,-7.59L19,8l-9,9z" />
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM10,17l-5,-5 1.41,-1.41L10,14.17l7.59,-7.59L19,8l-9,9z" />
</vector>

@ -1,10 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z"/>
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z" />
</vector>

@ -1,10 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M21.99,8c0,-0.72 -0.37,-1.35 -0.94,-1.7L12,1 2.95,6.3C2.38,6.65 2,7.28 2,8v10c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2l-0.01,-10zM12,13L3.74,7.84 12,3l8.26,4.84L12,13z"/>
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M21.99,8c0,-0.72 -0.37,-1.35 -0.94,-1.7L12,1 2.95,6.3C2.38,6.65 2,7.28 2,8v10c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2l-0.01,-10zM12,13L3.74,7.84 12,3l8.26,4.84L12,13z" />
</vector>

@ -1,10 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z"/>
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z" />
</vector>

@ -1,8 +1,8 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"

@ -1,10 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-6h2v6zM13,9h-2L11,7h2v2z"/>
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-6h2v6zM13,9h-2L11,7h2v2z" />
</vector>

@ -1,10 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M18,8h-1L17,6c0,-2.76 -2.24,-5 -5,-5S7,3.24 7,6v2L6,8c-1.1,0 -2,0.9 -2,2v10c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L20,10c0,-1.1 -0.9,-2 -2,-2zM12,17c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2zM15.1,8L8.9,8L8.9,6c0,-1.71 1.39,-3.1 3.1,-3.1 1.71,0 3.1,1.39 3.1,3.1v2z"/>
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M18,8h-1L17,6c0,-2.76 -2.24,-5 -5,-5S7,3.24 7,6v2L6,8c-1.1,0 -2,0.9 -2,2v10c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L20,10c0,-1.1 -0.9,-2 -2,-2zM12,17c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2zM15.1,8L8.9,8L8.9,6c0,-1.71 1.39,-3.1 3.1,-3.1 1.71,0 3.1,1.39 3.1,3.1v2z" />
</vector>

@ -1,10 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M12,17c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM18,8h-1L17,6c0,-2.76 -2.24,-5 -5,-5S7,3.24 7,6h1.9c0,-1.71 1.39,-3.1 3.1,-3.1 1.71,0 3.1,1.39 3.1,3.1v2L6,8c-1.1,0 -2,0.9 -2,2v10c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L20,10c0,-1.1 -0.9,-2 -2,-2zM18,20L6,20L6,10h12v10z"/>
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M12,17c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM18,8h-1L17,6c0,-2.76 -2.24,-5 -5,-5S7,3.24 7,6h1.9c0,-1.71 1.39,-3.1 3.1,-3.1 1.71,0 3.1,1.39 3.1,3.1v2L6,8c-1.1,0 -2,0.9 -2,2v10c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L20,10c0,-1.1 -0.9,-2 -2,-2zM18,20L6,20L6,10h12v10z" />
</vector>

@ -1,10 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M20,4L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM20,8l-8,5 -8,-5L4,6l8,5 8,-5v2z"/>
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M20,4L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM20,8l-8,5 -8,-5L4,6l8,5 8,-5v2z" />
</vector>

@ -1,10 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M12,22c1.1,0 2,-0.9 2,-2h-4c0,1.1 0.89,2 2,2zM18,16v-5c0,-3.07 -1.64,-5.64 -4.5,-6.32L13.5,4c0,-0.83 -0.67,-1.5 -1.5,-1.5s-1.5,0.67 -1.5,1.5v0.68C7.63,5.36 6,7.92 6,11v5l-2,2v1h16v-1l-2,-2z"/>
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M12,22c1.1,0 2,-0.9 2,-2h-4c0,1.1 0.89,2 2,2zM18,16v-5c0,-3.07 -1.64,-5.64 -4.5,-6.32L13.5,4c0,-0.83 -0.67,-1.5 -1.5,-1.5s-1.5,0.67 -1.5,1.5v0.68C7.63,5.36 6,7.92 6,11v5l-2,2v1h16v-1l-2,-2z" />
</vector>

@ -1,10 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M10,9h4L14,6h3l-5,-5 -5,5h3v3zM9,10L6,10L6,7l-5,5 5,5v-3h3v-4zM23,12l-5,-5v3h-3v4h3v3l5,-5zM14,15h-4v3L7,18l5,5 5,-5h-3v-3z"/>
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M10,9h4L14,6h3l-5,-5 -5,5h3v3zM9,10L6,10L6,7l-5,5 5,5v-3h3v-4zM23,12l-5,-5v3h-3v4h3v3l5,-5zM14,15h-4v3L7,18l5,5 5,-5h-3v-3z" />
</vector>

@ -1,23 +1,23 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M16.67,13.13C18.04,14.06 19,15.32 19,17v3h4v-3C23,14.82 19.43,13.53 16.67,13.13z"
android:fillType="evenOdd"/>
<path
android:fillColor="@android:color/white"
android:pathData="M9,8m-4,0a4,4 0,1 1,8 0a4,4 0,1 1,-8 0"
android:fillType="evenOdd"/>
<path
android:fillColor="@android:color/white"
android:pathData="M15,12c2.21,0 4,-1.79 4,-4c0,-2.21 -1.79,-4 -4,-4c-0.47,0 -0.91,0.1 -1.33,0.24C14.5,5.27 15,6.58 15,8s-0.5,2.73 -1.33,3.76C14.09,11.9 14.53,12 15,12z"
android:fillType="evenOdd"/>
<path
android:fillColor="@android:color/white"
android:pathData="M9,13c-2.67,0 -8,1.34 -8,4v3h16v-3C17,14.34 11.67,13 9,13z"
android:fillType="evenOdd"/>
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:fillType="evenOdd"
android:pathData="M16.67,13.13C18.04,14.06 19,15.32 19,17v3h4v-3C23,14.82 19.43,13.53 16.67,13.13z" />
<path
android:fillColor="@android:color/white"
android:fillType="evenOdd"
android:pathData="M9,8m-4,0a4,4 0,1 1,8 0a4,4 0,1 1,-8 0" />
<path
android:fillColor="@android:color/white"
android:fillType="evenOdd"
android:pathData="M15,12c2.21,0 4,-1.79 4,-4c0,-2.21 -1.79,-4 -4,-4c-0.47,0 -0.91,0.1 -1.33,0.24C14.5,5.27 15,6.58 15,8s-0.5,2.73 -1.33,3.76C14.09,11.9 14.53,12 15,12z" />
<path
android:fillColor="@android:color/white"
android:fillType="evenOdd"
android:pathData="M9,13c-2.67,0 -8,1.34 -8,4v3h16v-3C17,14.34 11.67,13 9,13z" />
</vector>

@ -1,8 +1,8 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"

@ -1,10 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM11,19.93c-3.95,-0.49 -7,-3.85 -7,-7.93 0,-0.62 0.08,-1.21 0.21,-1.79L9,15v1c0,1.1 0.9,2 2,2v1.93zM17.9,17.39c-0.26,-0.81 -1,-1.39 -1.9,-1.39h-1v-3c0,-0.55 -0.45,-1 -1,-1L8,12v-2h2c0.55,0 1,-0.45 1,-1L11,7h2c1.1,0 2,-0.9 2,-2v-0.41c2.93,1.19 5,4.06 5,7.41 0,2.08 -0.8,3.97 -2.1,5.39z"/>
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM11,19.93c-3.95,-0.49 -7,-3.85 -7,-7.93 0,-0.62 0.08,-1.21 0.21,-1.79L9,15v1c0,1.1 0.9,2 2,2v1.93zM17.9,17.39c-0.26,-0.81 -1,-1.39 -1.9,-1.39h-1v-3c0,-0.55 -0.45,-1 -1,-1L8,12v-2h2c0.55,0 1,-0.45 1,-1L11,7h2c1.1,0 2,-0.9 2,-2v-0.41c2.93,1.19 5,4.06 5,7.41 0,2.08 -0.8,3.97 -2.1,5.39z" />
</vector>

@ -1,8 +1,8 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"

@ -1,8 +1,8 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"

@ -1,8 +1,8 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"

@ -1,9 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M12,17.27L18.18,21l-1.64,-7.03L22,9.24l-7.19,-0.61L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21z" />

@ -1,10 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M11.99,2c-5.52,0 -10,4.48 -10,10s4.48,10 10,10 10,-4.48 10,-10 -4.48,-10 -10,-10zM15.6,8.34c1.07,0 1.93,0.86 1.93,1.93 0,1.07 -0.86,1.93 -1.93,1.93 -1.07,0 -1.93,-0.86 -1.93,-1.93 -0.01,-1.07 0.86,-1.93 1.93,-1.93zM9.6,6.76c1.3,0 2.36,1.06 2.36,2.36 0,1.3 -1.06,2.36 -2.36,2.36s-2.36,-1.06 -2.36,-2.36c0,-1.31 1.05,-2.36 2.36,-2.36zM9.6,15.89v3.75c-2.4,-0.75 -4.3,-2.6 -5.14,-4.96 1.05,-1.12 3.67,-1.69 5.14,-1.69 0.53,0 1.2,0.08 1.9,0.22 -1.64,0.87 -1.9,2.02 -1.9,2.68zM11.99,20c-0.27,0 -0.53,-0.01 -0.79,-0.04v-4.07c0,-1.42 2.94,-2.13 4.4,-2.13 1.07,0 2.92,0.39 3.84,1.15 -1.17,2.97 -4.06,5.09 -7.45,5.09z"/>
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M11.99,2c-5.52,0 -10,4.48 -10,10s4.48,10 10,10 10,-4.48 10,-10 -4.48,-10 -10,-10zM15.6,8.34c1.07,0 1.93,0.86 1.93,1.93 0,1.07 -0.86,1.93 -1.93,1.93 -1.07,0 -1.93,-0.86 -1.93,-1.93 -0.01,-1.07 0.86,-1.93 1.93,-1.93zM9.6,6.76c1.3,0 2.36,1.06 2.36,2.36 0,1.3 -1.06,2.36 -2.36,2.36s-2.36,-1.06 -2.36,-2.36c0,-1.31 1.05,-2.36 2.36,-2.36zM9.6,15.89v3.75c-2.4,-0.75 -4.3,-2.6 -5.14,-4.96 1.05,-1.12 3.67,-1.69 5.14,-1.69 0.53,0 1.2,0.08 1.9,0.22 -1.64,0.87 -1.9,2.02 -1.9,2.68zM11.99,20c-0.27,0 -0.53,-0.01 -0.79,-0.04v-4.07c0,-1.42 2.94,-2.13 4.4,-2.13 1.07,0 2.92,0.39 3.84,1.15 -1.17,2.97 -4.06,5.09 -7.45,5.09z" />
</vector>

@ -1,8 +1,8 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"

@ -1,8 +1,8 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"

@ -4,7 +4,7 @@
android:tint="@color/no_description"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M1,21h22L12,2 1,21zM13,18h-2v-2h2v2zM13,14h-2v-4h2v4z" />
<path
android:fillColor="@android:color/white"
android:pathData="M1,21h22L12,2 1,21zM13,18h-2v-2h2v2zM13,14h-2v-4h2v4z" />
</vector>

@ -4,7 +4,7 @@
android:tint="@color/cyanea_accent_reference"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M7.41,15.41L12,10.83l4.59,4.58L18,14l-6,-6 -6,6z" />
<path
android:fillColor="@android:color/white"
android:pathData="M7.41,15.41L12,10.83l4.59,4.58L18,14l-6,-6 -6,6z" />
</vector>

@ -4,7 +4,7 @@
android:tint="@color/cyanea_accent_reference"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M7.41,8.59L12,13.17l4.59,-4.58L18,10l-6,6 -6,-6 1.41,-1.41z" />
<path
android:fillColor="@android:color/white"
android:pathData="M7.41,8.59L12,13.17l4.59,-4.58L18,10l-6,6 -6,-6 1.41,-1.41z" />
</vector>

@ -1,11 +1,11 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:width="28dp"
android:height="28dp"
android:autoMirrored="true"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24">
android:tint="?attr/iconColor"
android:viewportWidth="28"
android:viewportHeight="28">
<path
android:fillColor="?attr/colorControlNormal"
android:fillColor="?attr/iconColor"
android:pathData="M7,7h10v1.79c0,0.45 0.54,0.67 0.85,0.35l2.79,-2.79c0.2,-0.2 0.2,-0.51 0,-0.71l-2.79,-2.79c-0.31,-0.31 -0.85,-0.09 -0.85,0.36L17,5L6,5c-0.55,0 -1,0.45 -1,1v4c0,0.55 0.45,1 1,1s1,-0.45 1,-1L7,7zM17,17L7,17v-1.79c0,-0.45 -0.54,-0.67 -0.85,-0.35l-2.79,2.79c-0.2,0.2 -0.2,0.51 0,0.71l2.79,2.79c0.31,0.31 0.85,0.09 0.85,-0.36L7,19h11c0.55,0 1,-0.45 1,-1v-4c0,-0.55 -0.45,-1 -1,-1s-1,0.45 -1,1v3z" />
</vector>

@ -1,10 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24">
android:width="28dp"
android:height="28dp"
android:tint="?attr/iconColor"
android:viewportWidth="28"
android:viewportHeight="28">
<path
android:fillColor="?attr/colorControlNormal"
android:fillColor="?attr/iconColor"
android:pathData="M22,9.24l-7.19,-0.62L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21 12,17.27 18.18,21l-1.63,-7.03L22,9.24zM12,15.4l-3.76,2.27 1,-4.28 -3.32,-2.88 4.38,-0.38L12,6.1l1.71,4.04 4.38,0.38 -3.32,2.88 1,4.28L12,15.4z" />
</vector>

@ -61,12 +61,12 @@
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/acccount_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:layout_height="wrap_content"
android:orientation="horizontal"
tools:visibility="visible"
android:visibility="gone">
android:visibility="gone"
tools:visibility="visible">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/account_pp"
@ -77,16 +77,18 @@
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="0dp"
android:padding="10dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
android:orientation="vertical"
android:padding="10dp">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/account_dn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textSize="16sp" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/account_un"
android:layout_width="wrap_content"
@ -104,8 +106,8 @@
android:layout_margin="10dp"
android:contentDescription="@string/make_an_action"
android:scaleType="fitCenter"
android:visibility="gone"
android:tint="@color/white"
android:visibility="gone"
app:layout_constraintStart_toEndOf="@id/avatar_container"
app:layout_constraintTop_toBottomOf="@id/banner_container"
tools:src="@drawable/ic_baseline_person_add_24"

@ -22,8 +22,8 @@
android:textAlignment="textStart"
android:textColor="@color/cyanea_accent_dark_reference"
app:icon="@drawable/ic_baseline_navigate_next_24"
app:iconTint="@color/cyanea_accent_dark_reference"
app:iconGravity="end"
app:iconTint="@color/cyanea_accent_dark_reference"
app:strokeColor="@color/cyanea_accent_dark_reference" />
<com.google.android.material.button.MaterialButton
@ -37,8 +37,8 @@
android:textAlignment="textStart"
android:textColor="@color/cyanea_accent_dark_reference"
app:icon="@drawable/ic_baseline_navigate_next_24"
app:iconTint="@color/cyanea_accent_dark_reference"
app:iconGravity="end"
app:iconTint="@color/cyanea_accent_dark_reference"
app:strokeColor="@color/cyanea_accent_dark_reference" />
<com.google.android.material.button.MaterialButton
@ -52,8 +52,8 @@
android:textAlignment="textStart"
android:textColor="@color/cyanea_accent_dark_reference"
app:icon="@drawable/ic_baseline_navigate_next_24"
app:iconTint="@color/cyanea_accent_dark_reference"
app:iconGravity="end"
app:iconTint="@color/cyanea_accent_dark_reference"
app:strokeColor="@color/cyanea_accent_dark_reference" />
<com.google.android.material.button.MaterialButton
@ -67,8 +67,8 @@
android:textAlignment="textStart"
android:textColor="@color/cyanea_accent_dark_reference"
app:icon="@drawable/ic_baseline_navigate_next_24"
app:iconTint="@color/cyanea_accent_dark_reference"
app:iconGravity="end"
app:iconTint="@color/cyanea_accent_dark_reference"
app:strokeColor="@color/cyanea_accent_dark_reference" />
</androidx.appcompat.widget.LinearLayoutCompat>

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<?xml version="1.0" encoding="utf-8"?><!--
Copyright 2021 Thomas Schneider
This file is a part of Fedilab
@ -15,8 +14,7 @@
You should have received a copy of the GNU General Public License along with Fedilab; if not,
see <http://www.gnu.org/licenses>
-->
<androidx.drawerlayout.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
@ -24,6 +22,7 @@
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
@ -31,16 +30,16 @@
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBar"
android:background="@color/cyanea_primary_reference"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:background="@color/cyanea_primary_reference">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"
android:fitsSystemWindows="true">
android:fitsSystemWindows="true"
app:layout_scrollFlags="scroll|enterAlways">
<ImageView
android:id="@+id/profile_picture"
@ -48,21 +47,23 @@
android:layout_height="30dp"
android:layout_marginEnd="10dp"
android:contentDescription="@string/profile_picture" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_gravity="center_vertical"
android:id="@+id/title"
style="@style/TextAppearance.AppCompat.Title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:layout_height="wrap_content"
android:layout_gravity="center_vertical" />
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout>
<androidx.fragment.app.FragmentContainerView
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:id="@+id/nav_host_fragment_content_main"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true" />
app:defaultNavHost="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</androidx.drawerlayout.widget.DrawerLayout>

@ -15,8 +15,7 @@
see <http://www.gnu.org/licenses>.
-->
<androidx.drawerlayout.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
@ -24,41 +23,46 @@
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBar"
android:background="@color/cyanea_primary_reference"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
android:background="@color/cyanea_primary_reference">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"
android:fitsSystemWindows="true">
android:fitsSystemWindows="true"
app:layout_scrollFlags="scroll|enterAlways">
<ImageView
android:id="@+id/profile_picture"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginEnd="10dp"
android:contentDescription="@string/profile_picture" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_gravity="center_vertical"
android:id="@+id/title"
style="@style/TextAppearance.AppCompat.Title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:layout_height="wrap_content"
android:layout_gravity="center_vertical" />
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout>
<RelativeLayout
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<!-- Listview status -->
<androidx.recyclerview.widget.RecyclerView
@ -74,6 +78,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone">
<TextView
android:id="@+id/no_action_text"
android:layout_width="match_parent"

@ -17,12 +17,12 @@
app:layout_constraintGuide_end="?attr/actionBarSize" />
<RelativeLayout
android:id="@+id/container_image"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/rvConstraintTools"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:id="@+id/container_image"
app:layout_constraintTop_toTopOf="parent">
<ja.burhanrashid52.photoeditor.PhotoEditorView
@ -47,6 +47,7 @@
android:src="@drawable/ic_undo"
app:layout_constraintBottom_toTopOf="@+id/rvConstraintTools"
app:layout_constraintEnd_toStartOf="@+id/imgRedo" />
<ImageView
android:id="@+id/imgRedo"
android:layout_width="@dimen/top_tool_icon_width"
@ -58,7 +59,6 @@
app:layout_constraintEnd_toEndOf="parent" />
<ImageView
android:id="@+id/imgClose"
android:layout_width="wrap_content"

@ -67,13 +67,13 @@
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/cyanea_accent_dark_reference"
app:iconTint="@color/cyanea_accent_dark_reference"
app:strokeColor="@color/cyanea_accent_dark_reference"
android:text="@string/select"
android:textColor="@color/cyanea_accent_dark_reference"
app:icon="@drawable/ic_menu_gallery"
app:iconTint="@color/cyanea_accent_dark_reference"
app:layout_constraintEnd_toEndOf="@id/banner_pp_container"
app:layout_constraintTop_toBottomOf="@id/banner_pp_container" />
app:layout_constraintTop_toBottomOf="@id/banner_pp_container"
app:strokeColor="@color/cyanea_accent_dark_reference" />
<com.google.android.material.divider.MaterialDivider
android:id="@+id/header_bottom_divider"
@ -119,16 +119,16 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/avatar_select"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:textColor="@color/cyanea_accent_dark_reference"
app:iconTint="@color/cyanea_accent_dark_reference"
app:strokeColor="@color/cyanea_accent_dark_reference"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:text="@string/select"
android:textColor="@color/cyanea_accent_dark_reference"
app:icon="@drawable/ic_menu_gallery"
app:iconTint="@color/cyanea_accent_dark_reference"
app:layout_constraintBottom_toBottomOf="@id/account_pp_container"
app:layout_constraintStart_toEndOf="@id/account_pp_container" />
app:layout_constraintStart_toEndOf="@id/account_pp_container"
app:strokeColor="@color/cyanea_accent_dark_reference" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/display_name"
@ -187,13 +187,13 @@
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/cyanea_accent_dark_reference"
app:iconTint="@color/cyanea_accent_dark_reference"
app:strokeColor="@color/cyanea_accent_dark_reference"
android:layout_gravity="end"
android:layout_marginVertical="6dp"
android:text="@string/add_field"
app:icon="@drawable/ic_baseline_add_24" />
android:textColor="@color/cyanea_accent_dark_reference"
app:icon="@drawable/ic_baseline_add_24"
app:iconTint="@color/cyanea_accent_dark_reference"
app:strokeColor="@color/cyanea_accent_dark_reference" />
</androidx.appcompat.widget.LinearLayoutCompat>

@ -29,9 +29,9 @@
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBar"
android:background="@color/cyanea_primary_reference"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:background="@color/cyanea_primary_reference">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"

@ -21,8 +21,8 @@
android:layout_height="wrap_content">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:id="@+id/main_container"
android:layout_width="match_parent"
android:layout_height="420dp"
android:padding="@dimen/fab_margin"
android:paddingLeft="@dimen/drawer_padding"
@ -34,12 +34,12 @@
android:layout_height="match_parent" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_height="300dp"
android:id="@+id/instance_container"
android:layout_width="match_parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_height="300dp"
android:layout_marginTop="20dp"
android:orientation="vertical">
android:orientation="vertical"
app:layout_constraintTop_toTopOf="parent">
<!-- Instance title -->
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/instance_title"
@ -86,8 +86,6 @@
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
@ -119,13 +117,13 @@
<!-- Main Loader -->
<RelativeLayout
android:id="@+id/loader"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_width="match_parent"
android:layout_height="420dp"
android:gravity="center"
tools:visibility="visible"
android:visibility="gone">
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible">
<ProgressBar
android:layout_width="wrap_content"
@ -146,10 +144,6 @@
app:layout_constraintEnd_toEndOf="parent" />
<androidx.appcompat.widget.AppCompatButton
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/max_char_container"
android:id="@+id/close"
style="@style/Widget.AppCompat.Button.Colored"
android:layout_width="wrap_content"
@ -160,7 +154,11 @@
android:text="@string/close"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="16sp" />
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/max_char_container" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>

@ -30,9 +30,9 @@
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBar"
android:backgroundTint="?colorPrimaryDark"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:backgroundTint="?colorPrimaryDark">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
@ -47,20 +47,20 @@
android:orientation="horizontal">
<ImageView
android:layout_gravity="center"
android:id="@+id/profile_picture"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_gravity="center"
android:contentDescription="@string/open_menu" />
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabLayout"
android:layout_height="?actionBarSize"
android:background="@color/transparent"
android:layout_width="0dp"
app:tabIndicatorColor="@color/cyanea_accent_dark_reference"
android:layout_height="?actionBarSize"
android:layout_weight="1"
android:background="@color/transparent"
app:tabGravity="fill"
app:tabIndicatorColor="@color/cyanea_accent_dark_reference"
app:tabMaxWidth="0dp"
app:tabMode="scrollable" />
@ -119,9 +119,9 @@
android:id="@+id/bottom_nav_view"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
app:backgroundTint="@color/cyanea_primary_reference"
app:itemIconTint="@color/cyanea_accent_dark_reference"
app:itemTextColor="@color/cyanea_accent_dark_reference"
app:backgroundTint="@color/cyanea_primary_reference"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
@ -136,14 +136,15 @@
android:layout_marginBottom="?actionBarSize" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
app:itemIconTint="?menuIconColor"
android:background="@color/cyanea_primary_dark_reference"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@color/cyanea_primary_dark_reference"
android:fitsSystemWindows="false"
app:itemIconTint="?menuIconColor"
app:menu="@menu/activity_main_drawer" />
</androidx.drawerlayout.widget.DrawerLayout>

@ -18,10 +18,10 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/haulerView"
android:background="@color/transparent"
app:dragUpEnabled="true"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:background="@color/transparent"
app:dragUpEnabled="true">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
@ -38,22 +38,22 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/media_description"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|bottom"
android:layout_marginBottom="70dp"
android:background="#AA000000"
android:gravity="center"
android:padding="12dp"
android:textColor="#ffffffff"
android:textIsSelectable="true"
android:visibility="gone"
tools:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/translate"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/media_description"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|bottom"
android:layout_marginBottom="70dp"
android:background="#AA000000"
android:gravity="center"
android:padding="12dp"
android:textColor="#ffffffff"
android:textIsSelectable="true"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/translate"
app:layout_constraintStart_toStartOf="parent"
tools:visibility="visible" />
<TextView
android:id="@+id/media_description_translated"
@ -77,14 +77,14 @@
style="@style/Widget.App.Button.IconOnly.Outline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
tools:visibility="visible"
android:contentDescription="@string/translate"
android:visibility="gone"
app:icon="@drawable/ic_baseline_translate_24"
app:iconPadding="0dp"
app:layout_constraintBottom_toBottomOf="@+id/media_description"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/media_description" />
app:layout_constraintStart_toEndOf="@+id/media_description"
tools:visibility="visible" />
</androidx.constraintlayout.widget.ConstraintLayout>
</app.futured.hauler.HaulerView>

@ -20,8 +20,8 @@
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:layout_marginBottom="300dp"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<androidx.coordinatorlayout.widget.CoordinatorLayout
@ -31,9 +31,9 @@
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBar"
android:background="@color/cyanea_primary_reference"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:background="@color/cyanea_primary_reference">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
@ -60,12 +60,12 @@
</com.google.android.material.appbar.AppBarLayout>
<androidx.recyclerview.widget.RecyclerView
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:scrollbars="none" />
android:scrollbars="none"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</androidx.drawerlayout.widget.DrawerLayout>

@ -24,25 +24,25 @@
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBar"
android:background="@color/cyanea_primary_dark_reference"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/cyanea_primary_dark_reference"
android:fitsSystemWindows="true">
<com.google.android.material.appbar.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/cyanea_primary_dark_reference"
app:contentScrim="?colorPrimaryDark"
android:fitsSystemWindows="true"
app:contentScrim="?colorPrimaryDark"
app:expandedTitleGravity="top"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:id="@+id/profile_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="?attr/actionBarSize">
@ -345,8 +345,8 @@
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/cyanea_primary_dark_reference"
app:layout_scrollFlags="scroll|enterAlways"
app:layout_collapseMode="pin">
app:layout_collapseMode="pin"
app:layout_scrollFlags="scroll|enterAlways">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/profile_picture"

@ -18,9 +18,9 @@
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/fab_margin"
android:layout_marginEnd="@dimen/fab_margin"
android:layout_height="wrap_content">
android:layout_marginEnd="@dimen/fab_margin">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"

@ -3,14 +3,14 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_margin="@dimen/fab_margin">
android:layout_margin="@dimen/fab_margin"
android:orientation="vertical">
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/screen_reason"
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="10dp"
android:layout_weight="1"
android:orientation="vertical"
android:visibility="gone">
@ -147,9 +147,9 @@
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/screen_idontlike"
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="10dp"
android:layout_weight="1"
android:orientation="vertical"
android:visibility="gone">
@ -270,13 +270,13 @@
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_height="0dp"
android:layout_marginTop="10dp"
android:id="@+id/screen_spam"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="10dp"
android:layout_weight="1"
android:visibility="gone"
android:orientation="vertical">
android:orientation="vertical"
android:visibility="gone">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/spam_title"
@ -295,19 +295,19 @@
android:textSize="18sp" />
<androidx.fragment.app.FragmentContainerView
android:layout_marginTop="20dp"
android:id="@+id/fram_spam_container"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="20dp"
android:layout_weight="1" />
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/screen_violate_rules"
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="10dp"
android:layout_weight="1"
android:orientation="vertical"
android:visibility="gone">
@ -335,9 +335,9 @@
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/screen_something_else"
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="10dp"
android:layout_weight="1"
android:orientation="vertical"
android:visibility="gone">
@ -360,17 +360,17 @@
<androidx.fragment.app.FragmentContainerView
android:id="@+id/fram_se_container"
android:layout_height="0dp"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="20dp"
android:layout_weight="1" />
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/screen_more_details"
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="10dp"
android:layout_weight="1"
android:orientation="vertical"
android:visibility="gone">

@ -24,9 +24,9 @@
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBar"
android:background="@color/cyanea_primary_dark_reference"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/cyanea_primary_dark_reference"
android:fitsSystemWindows="true">
<androidx.appcompat.widget.Toolbar

@ -25,8 +25,8 @@
android:id="@+id/search_tabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabGravity="fill"
android:background="@color/cyanea_primary_dark_reference"
app:tabGravity="fill"
app:tabIndicatorColor="@color/cyanea_accent_dark_reference"
app:tabMode="scrollable" />

@ -14,14 +14,13 @@
You should have received a copy of the GNU General Public License along with Fedilab; if not,
see <http://www.gnu.org/licenses>
-->
<androidx.drawerlayout.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:layout_marginBottom="300dp"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<androidx.coordinatorlayout.widget.CoordinatorLayout
@ -31,9 +30,9 @@
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBar"
android:background="@color/cyanea_primary_reference"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:background="@color/cyanea_primary_reference">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
@ -70,9 +69,9 @@
</RelativeLayout>
<RelativeLayout
android:layout_marginTop="?actionBarSize"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:layout_marginTop="?actionBarSize">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/lv_accounts"
@ -87,8 +86,8 @@
android:layout_height="20dp"
android:layout_alignParentBottom="true"
android:layout_gravity="bottom|center_horizontal"
android:gravity="bottom|center_horizontal"
>
android:gravity="bottom|center_horizontal">
<ProgressBar
android:layout_width="match_parent"
android:layout_height="match_parent"

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<?xml version="1.0" encoding="utf-8"?><!--
Copyright 2021 Thomas Schneider
This file is a part of Fedilab
@ -15,8 +14,7 @@
You should have received a copy of the GNU General Public License along with Fedilab; if not,
see <http://www.gnu.org/licenses>
-->
<androidx.drawerlayout.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
@ -24,42 +22,47 @@
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activities.WebviewActivity">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/cyanea_primary_reference"
>
android:background="@color/cyanea_primary_reference">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"
android:fitsSystemWindows="true"
>
app:layout_scrollFlags="scroll|enterAlways">
<ImageView
android:id="@+id/favicon"
android:contentDescription="@string/favicon"
android:layout_width="32dp"
android:layout_height="32dp"/>
android:layout_height="32dp"
android:contentDescription="@string/favicon" />
<TextView
android:id="@+id/toolbar_title"
style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/toolbar_title"
android:textSize="14sp"
style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"/>
android:textSize="14sp" />
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout>
<LinearLayout
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_marginBottom="?attr/actionBarSize"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
android:layout_marginBottom="?attr/actionBarSize"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<ProgressBar
android:id="@+id/progress_bar"
style="?android:attr/progressBarStyleHorizontal"

@ -80,10 +80,10 @@
android:textColor="@color/no_description"
app:icon="@drawable/ic_baseline_warning_24"
app:iconGravity="end"
app:strokeColor="@color/no_description"
app:layout_constraintEnd_toStartOf="@id/button_order_down"
app:layout_constraintStart_toEndOf="@id/button_order_up"
app:layout_constraintTop_toBottomOf="@id/preview" />
app:layout_constraintTop_toBottomOf="@id/preview"
app:strokeColor="@color/no_description" />
<androidx.appcompat.widget.AppCompatImageButton

@ -20,8 +20,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="6dp"
android:backgroundTint="@color/cyanea_primary_dark_reference"
android:layout_marginTop="6dp"
android:backgroundTint="@color/cyanea_primary_dark_reference"
app:cardElevation="0dp">
<androidx.constraintlayout.widget.ConstraintLayout

@ -23,10 +23,10 @@
android:padding="2dp">
<com.google.android.material.checkbox.MaterialCheckBox
app:buttonTint="@color/cyanea_accent_dark_reference"
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
android:layout_height="wrap_content"
app:buttonTint="@color/cyanea_accent_dark_reference" />
<ImageView
android:id="@+id/account_pp"

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<?xml version="1.0" encoding="utf-8"?><!--
Copyright 2021 Thomas Schneider
This file is a part of Fedilab
@ -15,8 +14,7 @@
You should have received a copy of the GNU General Public License along with Fedilab; if not,
see <http://www.gnu.org/licenses>
-->
<androidx.appcompat.widget.LinearLayoutCompat
xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/account_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/admin_account_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="6dp"
android:id="@+id/admin_account_container"
android:padding="6dp">
<androidx.appcompat.widget.LinearLayoutCompat

@ -22,9 +22,9 @@
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/card_margin"
android:layout_marginTop="@dimen/card_margin"
android:backgroundTint="@color/cyanea_primary_dark_reference"
android:clipChildren="false"
android:clipToPadding="false"
android:backgroundTint="@color/cyanea_primary_dark_reference"
app:cardElevation="0dp">
<androidx.constraintlayout.widget.ConstraintLayout

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.checkbox.MaterialCheckBox xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:buttonTint="@color/cyanea_accent_dark_reference"
android:id="@+id/checkbox"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
android:layout_height="wrap_content"
app:buttonTint="@color/cyanea_accent_dark_reference" />

@ -17,9 +17,9 @@
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/container"
android:layout_margin="12dp"
app:cardElevation="2dp">

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<?xml version="1.0" encoding="utf-8"?><!--
Copyright 2021 Thomas Schneider
This file is a part of Fedilab

@ -43,9 +43,9 @@
style="@style/Widget.App.Button.IconOnly.Outline"
android:layout_width="36dp"
android:layout_height="36dp"
android:padding="6dp"
android:layout_margin="5dp"
android:contentDescription="@string/action_update_filter"
android:padding="6dp"
app:icon="@drawable/ic_baseline_edit_24" />
<com.google.android.material.button.MaterialButton
@ -53,8 +53,8 @@
style="@style/Widget.App.Button.IconOnly.Outline"
android:layout_width="36dp"
android:layout_height="36dp"
android:padding="6dp"
android:layout_margin="5dp"
android:contentDescription="@string/action_filter_delete"
android:padding="6dp"
app:icon="@drawable/ic_baseline_delete_24" />
</LinearLayout>

@ -19,8 +19,8 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroundTint="@color/cyanea_primary_dark_reference"
android:layout_margin="6dp"
android:backgroundTint="@color/cyanea_primary_dark_reference"
app:cardElevation="0dp">
<androidx.appcompat.widget.LinearLayoutCompat

@ -3,9 +3,9 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/cyanea_primary_dark_reference"
android:clickable="true"
android:focusable="true"
android:background="@color/cyanea_primary_dark_reference"
android:foreground="?selectableItemBackground">
<androidx.appcompat.widget.LinearLayoutCompat

@ -308,9 +308,9 @@
android:layout_marginStart="48dp"
android:layout_marginTop="6dp"
android:layout_marginEnd="6dp"
android:backgroundTint="@color/cyanea_primary_dark_reference"
android:visibility="gone"
app:cardCornerRadius="8dp"
android:backgroundTint="@color/cyanea_primary_dark_reference"
app:cardElevation="0dp"
tools:visibility="visible">
@ -521,8 +521,7 @@
<include
android:id="@+id/layout_reactions"
layout="@layout/layout_reactions"
android:visibility="gone"
tools:visibility="visible" />
android:visibility="gone" />
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/action_buttons"
@ -559,10 +558,11 @@
android:layout_width="28dp"
android:layout_height="28dp"
android:layout_marginStart="12dp"
android:layout_marginTop="2dp"
android:adjustViewBounds="true"
app:sparkbutton_activeImage="@drawable/ic_repeat"
app:sparkbutton_animationSpeed="1.5"
app:sparkbutton_iconSize="24dp"
app:sparkbutton_iconSize="28dp"
app:sparkbutton_inActiveImage="@drawable/ic_repeat"
app:sparkbutton_primaryColor="@color/boost_icon"
app:sparkbutton_secondaryColor="@color/boost_icon" />
@ -571,11 +571,13 @@
android:id="@+id/action_button_favorite"
android:layout_width="28dp"
android:layout_height="28dp"
android:layout_gravity="center"
android:layout_marginStart="12dp"
android:layout_marginTop="2dp"
android:adjustViewBounds="true"
app:sparkbutton_activeImage="@drawable/ic_baseline_star_24"
app:sparkbutton_animationSpeed="1.5"
app:sparkbutton_iconSize="24dp"
app:sparkbutton_iconSize="28dp"
app:sparkbutton_inActiveImage="@drawable/ic_star_outline"
app:sparkbutton_primaryColor="@color/marked_icon"
app:sparkbutton_secondaryColor="@color/marked_icon" />
@ -585,6 +587,7 @@
android:layout_width="28dp"
android:layout_height="28dp"
android:layout_marginStart="12dp"
android:layout_marginTop="2dp"
android:adjustViewBounds="true"
android:visibility="gone"
app:sparkbutton_activeImage="@drawable/ic_baseline_bookmark_24"
@ -598,6 +601,8 @@
android:id="@+id/cache_indicator"
android:layout_width="28dp"
android:layout_height="28dp"
android:layout_marginStart="12dp"
android:adjustViewBounds="true"
android:src="@drawable/ic_baseline_cached_24"
android:visibility="gone"
tools:visibility="visible" />
@ -610,23 +615,23 @@
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/status_add_custom_emoji"
android:layout_width="28dp"
android:visibility="gone"
tools:visibility="visible"
android:layout_height="28dp"
android:contentDescription="@string/add_reaction"
android:padding="3dp"
android:src="@drawable/ic_baseline_emoji_emotions_24" />
android:src="@drawable/ic_baseline_emoji_emotions_24"
android:visibility="gone"
tools:visibility="visible" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/status_emoji"
android:layout_width="28dp"
android:layout_height="28dp"
android:visibility="gone"
tools:visibility="visible"
android:layout_marginStart="6dp"
android:contentDescription="@string/add_reaction"
android:padding="3dp"
android:src="@drawable/ic_baseline_add_reaction_24" />
android:src="@drawable/ic_baseline_add_reaction_24"
android:visibility="gone"
tools:visibility="visible" />
<View
android:layout_width="0dp"

@ -17,9 +17,9 @@
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/cardview_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/cardview_container"
android:layout_marginHorizontal="12dp"
android:layout_marginTop="12dp"
android:clipChildren="false"
@ -49,8 +49,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="6dp"
android:inputType="textMultiLine|textCapSentences"
android:hint="@string/eg_sensitive_content"
android:inputType="textMultiLine|textCapSentences"
android:singleLine="true"
android:visibility="gone"
app:layout_constraintTop_toBottomOf="@id/add_remove_status" />
@ -59,22 +59,22 @@
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textMultiLine|textCapSentences"
android:layout_marginHorizontal="6dp"
android:gravity="top|start"
android:inputType="textMultiLine|textCapSentences"
android:minLines="6"
app:layout_constraintTop_toBottomOf="@id/content_spoiler" />
<com.google.android.material.checkbox.MaterialCheckBox
android:text="@string/toot_sensitive"
android:id="@+id/sensitive_media"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="6dp"
android:layout_marginTop="6dp"
android:minHeight="36dp"
app:buttonTint="@color/cyanea_accent_dark_reference"
android:text="@string/toot_sensitive"
android:visibility="gone"
app:buttonTint="@color/cyanea_accent_dark_reference"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintStart_toStartOf="parent"
@ -188,10 +188,10 @@
style="@style/Widget.AppCompat.Button.Borderless.Colored"
android:layout_width="48dp"
android:layout_height="48dp"
android:tint="@color/cyanea_accent_dark_reference"
android:layout_marginTop="6dp"
android:layout_marginEnd="6dp"
android:src="@drawable/ic_compose_post"
android:tint="@color/cyanea_accent_dark_reference"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/text_area_divider" />

@ -17,11 +17,11 @@
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/container"
android:backgroundTint="@color/cyanea_primary_dark_reference"
android:layout_margin="12dp"
android:backgroundTint="@color/cyanea_primary_dark_reference"
app:cardElevation="0dp">
<androidx.appcompat.widget.LinearLayoutCompat

@ -24,20 +24,20 @@
android:orientation="vertical">
<include
android:id="@+id/status"
layout="@layout/drawer_status"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
android:id="@+id/status"
layout="@layout/drawer_status" />
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/other_accounts"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/status"
android:gravity="center_vertical"
android:orientation="horizontal"
android:visibility="gone"
android:gravity="center_vertical"
app:layout_constraintTop_toBottomOf="@+id/status">
<androidx.appcompat.widget.AppCompatTextView
@ -46,9 +46,9 @@
android:layout_height="wrap_content" />
<HorizontalScrollView
android:layout_marginStart="10dp"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_weight="1">
<androidx.appcompat.widget.LinearLayoutCompat
@ -60,15 +60,15 @@
</androidx.appcompat.widget.LinearLayoutCompat>
<RelativeLayout
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_height="0dp"
android:visibility="gone"
android:id="@+id/container_transparent"
android:layout_width="match_parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_height="0dp"
android:background="@color/black"
android:elevation="5dp"
app:layout_constraintStart_toStartOf="parent" />
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

@ -7,8 +7,8 @@
<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/checkbox"
android:layout_width="wrap_content"
app:buttonTint="@color/cyanea_accent_dark_reference"
android:layout_height="wrap_content"
app:buttonTint="@color/cyanea_accent_dark_reference"
app:layout_constraintBottom_toBottomOf="@+id/status_container"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

@ -17,9 +17,9 @@
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/cardview_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/cardview_container"
android:layout_marginHorizontal="12dp"
android:layout_marginTop="12dp"
android:clipChildren="false"

@ -25,10 +25,10 @@
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingStart="@dimen/fab_margin"
android:paddingTop="5dp"
android:paddingEnd="@dimen/fab_margin"
android:orientation="horizontal">
android:paddingEnd="@dimen/fab_margin">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="0dp"

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<?xml version="1.0" encoding="utf-8"?><!--
Copyright 2021 Thomas Schneider
This file is a part of Fedilab
@ -15,11 +14,11 @@
You should have received a copy of the GNU General Public License along with Fedilab; if not,
see <http://www.gnu.org/licenses>
-->
<androidx.appcompat.widget.LinearLayoutCompat
xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/tag_name"
android:layout_width="match_parent"

@ -1,10 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:minWidth="60dp"
android:layout_width="wrap_content"
android:layout_height="?actionBarSize">
android:layout_height="?actionBarSize"
android:minWidth="60dp">
<TextView
android:id="@+id/name"
@ -13,22 +12,20 @@
android:padding="5dp"
android:textAlignment="center"
android:textSize="18sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
/>
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/underline"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_marginTop="2dp"
android:minWidth="60dp"
android:background="@color/cyanea_accent_dark_reference"
app:layout_constraintTop_toBottomOf="@+id/name"
android:minWidth="60dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
/>
app:layout_constraintTop_toBottomOf="@+id/name" />
</androidx.constraintlayout.widget.ConstraintLayout>

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<?xml version="1.0" encoding="utf-8"?><!--
Copyright 2021 Thomas Schneider
This file is a part of Fedilab

@ -52,9 +52,9 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/continue_button"
style="@style/MyButtonColored"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyButtonColored"
android:text="@string/keepon"
android:textAllCaps="false"
app:layout_constraintBottom_toBottomOf="parent"

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save