#193 comment - change layout

This commit is contained in:
tom79 2019-06-08 12:49:29 +02:00
parent 606459d01e
commit 61541fb43e
10 changed files with 283 additions and 141 deletions

View File

@ -54,6 +54,7 @@ import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.webkit.URLUtil;
import android.webkit.WebView;
import android.webkit.WebViewClient;
@ -365,7 +366,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
LinearLayout status_peertube_container;
TextView status_peertube_reply, status_peertube_delete, show_more_content;
ImageView cached_status, status_account_bot;
ImageView fedilab_features;
//Poll
LinearLayout poll_container, single_choice, multiple_choice, rated;
RadioGroup radio_group;
@ -461,7 +462,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
status_peertube_container = itemView.findViewById(R.id.status_peertube_container);
status_peertube_reply = itemView.findViewById(R.id.status_peertube_reply);
status_peertube_delete = itemView.findViewById(R.id.status_peertube_delete);
fedilab_features = itemView.findViewById(R.id.fedilab_features);
poll_container = itemView.findViewById(R.id.poll_container);
single_choice = itemView.findViewById(R.id.single_choice);
multiple_choice = itemView.findViewById(R.id.multiple_choice);
@ -473,6 +474,8 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
refresh_poll = itemView.findViewById(R.id.refresh_poll);
cached_status = itemView.findViewById(R.id.cached_status);
status_account_bot = itemView.findViewById(R.id.status_account_bot);
}
}
@ -580,10 +583,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
}
}
if (type != RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE && !isCompactMode && !isConsoleMode && displayBookmarkButton)
holder.status_bookmark.setVisibility(View.VISIBLE);
else
holder.status_bookmark.setVisibility(View.GONE);
holder.status_reply.setText("");
//Display a preview for accounts that have replied *if enabled and only for home timeline*
@ -939,22 +939,102 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
holder.status_account_displayname.setTextColor(ContextCompat.getColor(context, R.color.action_light_header));
holder.status_toot_date.setTextColor(ContextCompat.getColor(context, R.color.light_black));
}
if (status.isBookmarked())
holder.status_bookmark.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.ic_bookmark));
else
holder.status_bookmark.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.ic_bookmark_border));
if( status.iscached()){
holder.cached_status.setVisibility(View.VISIBLE);
}else{
holder.cached_status.setVisibility(View.GONE);
if( holder.status_bookmark != null) {
if (status.isBookmarked())
holder.status_bookmark.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.ic_bookmark));
else
holder.status_bookmark.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.ic_bookmark_border));
if (type != RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE && !isCompactMode && !isConsoleMode && displayBookmarkButton)
holder.status_bookmark.setVisibility(View.VISIBLE);
else
holder.status_bookmark.setVisibility(View.GONE);
holder.status_bookmark.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (type != RetrieveFeedsAsyncTask.Type.CACHE_BOOKMARKS) {
status.setBookmarked(!status.isBookmarked());
try {
final SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
if (status.isBookmarked()) {
new StatusCacheDAO(context, db).insertStatus(StatusCacheDAO.BOOKMARK_CACHE, status);
Toasty.success(context, context.getString(R.string.status_bookmarked), Toast.LENGTH_LONG).show();
} else {
new StatusCacheDAO(context, db).remove(StatusCacheDAO.BOOKMARK_CACHE, status);
Toasty.success(context, context.getString(R.string.status_unbookmarked), Toast.LENGTH_LONG).show();
}
notifyStatusChanged(status);
} catch (Exception e) {
e.printStackTrace();
Toasty.error(context, context.getString(R.string.toast_error), Toast.LENGTH_LONG).show();
}
} else {
int position = 0;
for (Status statustmp : statuses) {
if (statustmp.getId().equals(status.getId())) {
statuses.remove(status);
statusListAdapter.notifyItemRemoved(position);
final SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
new StatusCacheDAO(context, db).remove(StatusCacheDAO.BOOKMARK_CACHE, statustmp);
Toasty.success(context, context.getString(R.string.status_unbookmarked), Toast.LENGTH_LONG).show();
break;
}
position++;
}
}
}
});
holder.status_bookmark.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
CrossActions.doCrossBookmark(context, status, statusListAdapter);
return false;
}
});
}
holder.cached_status.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new ManageCachedStatusAsyncTask(context, status.getId(), StatusListAdapter.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
if( holder.cached_status != null) {
if (status.iscached()) {
holder.cached_status.setVisibility(View.VISIBLE);
} else {
holder.cached_status.setVisibility(View.GONE);
}
});
holder.cached_status.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new ManageCachedStatusAsyncTask(context, status.getId(), StatusListAdapter.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
});
}
if( holder.fedilab_features != null) {
holder.fedilab_features.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int style;
if (theme == Helper.THEME_DARK) {
style = R.style.DialogDark;
} else if (theme == Helper.THEME_BLACK) {
style = R.style.DialogBlack;
} else {
style = R.style.Dialog;
}
AlertDialog.Builder dialogBuilderFeatures = new AlertDialog.Builder(context, style);
LayoutInflater inflaterBoost = ((Activity) context).getLayoutInflater();
@SuppressLint("InflateParams") View dialogViewBoost = inflaterBoost.inflate(R.layout.custom_fedilab_features, null);
dialogBuilderFeatures.setView(dialogViewBoost);
AlertDialog dialogFeatures = dialogBuilderFeatures.create();
dialogFeatures.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialogFeatures.setCancelable(true);
dialogFeatures.show();
}
});
}
//Redraws top icons (boost/reply)
final float scale = context.getResources().getDisplayMetrics().density;
@ -1107,14 +1187,39 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
});
}
if( holder.status_translate != null) {
holder.status_translate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
translateToot(status);
}
});
boolean differentLanguage;
if (status.getReblog() == null)
differentLanguage = status.getLanguage() != null && !status.getLanguage().trim().equals(currentLocale);
else
differentLanguage = status.getReblog().getLanguage() != null && !status.getReblog().getLanguage().trim().equals(currentLocale);
holder.status_translate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
translateToot(status);
if ((getItemViewType(viewHolder.getAdapterPosition()) != COMPACT_STATUS) && getItemViewType(viewHolder.getAdapterPosition()) != CONSOLE_STATUS && (trans_forced || (translator != Helper.TRANS_NONE && currentLocale != null && differentLanguage))) {
if (status.getSpoiler_text() != null && status.getSpoiler_text().length() > 0) {
if (status.isSpoilerShown() || expand_cw || getItemViewType(viewHolder.getAdapterPosition()) == FOCUSED_STATUS) {
holder.status_translate.setVisibility(View.VISIBLE);
} else {
holder.status_translate.setVisibility(View.GONE);
}
} else if (status.getReblog() != null && status.getReblog().getSpoiler_text() != null && status.getReblog().getSpoiler_text().length() > 0) {
if (status.isSpoilerShown() || expand_cw || getItemViewType(viewHolder.getAdapterPosition()) == FOCUSED_STATUS) {
holder.status_translate.setVisibility(View.VISIBLE);
} else {
holder.status_translate.setVisibility(View.GONE);
}
} else {
holder.status_translate.setVisibility(View.VISIBLE);
}
} else {
holder.status_translate.setVisibility(View.GONE);
}
});
}
if( isConsoleMode){
String starting = "";
@ -1223,6 +1328,9 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
holder.status_content.setText(status.getContentSpan(), TextView.BufferType.SPANNABLE);
holder.status_spoiler.setText(status.getContentSpanCW(), TextView.BufferType.SPANNABLE);
}
holder.status_content.setMovementMethod(LinkMovementMethod.getInstance());
holder.status_spoiler.setMovementMethod(LinkMovementMethod.getInstance());
if (truncate_toots_size > 0) {
@ -1260,48 +1368,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
}
});
holder.status_bookmark.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (type != RetrieveFeedsAsyncTask.Type.CACHE_BOOKMARKS) {
status.setBookmarked(!status.isBookmarked());
try {
final SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
if (status.isBookmarked()) {
new StatusCacheDAO(context, db).insertStatus(StatusCacheDAO.BOOKMARK_CACHE, status);
Toasty.success(context, context.getString(R.string.status_bookmarked), Toast.LENGTH_LONG).show();
} else {
new StatusCacheDAO(context, db).remove(StatusCacheDAO.BOOKMARK_CACHE, status);
Toasty.success(context, context.getString(R.string.status_unbookmarked), Toast.LENGTH_LONG).show();
}
notifyStatusChanged(status);
} catch (Exception e) {
e.printStackTrace();
Toasty.error(context, context.getString(R.string.toast_error), Toast.LENGTH_LONG).show();
}
} else {
int position = 0;
for (Status statustmp : statuses) {
if (statustmp.getId().equals(status.getId())) {
statuses.remove(status);
statusListAdapter.notifyItemRemoved(position);
final SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
new StatusCacheDAO(context, db).remove(StatusCacheDAO.BOOKMARK_CACHE, statustmp);
Toasty.success(context, context.getString(R.string.status_unbookmarked), Toast.LENGTH_LONG).show();
break;
}
position++;
}
}
}
});
holder.status_bookmark.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
CrossActions.doCrossBookmark(context, status, statusListAdapter);
return false;
}
});
holder.status_content_translated.setMovementMethod(LinkMovementMethod.getInstance());
//-------- END -> Manages translations
@ -1513,31 +1580,8 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
Helper.loadGiF(context, status.getConversationProfilePicture().get(3), holder.conversation_pp_4);
}
}
boolean differentLanguage;
if (status.getReblog() == null)
differentLanguage = status.getLanguage() != null && !status.getLanguage().trim().equals(currentLocale);
else
differentLanguage = status.getReblog().getLanguage() != null && !status.getReblog().getLanguage().trim().equals(currentLocale);
if ((getItemViewType(viewHolder.getAdapterPosition()) != COMPACT_STATUS) && getItemViewType(viewHolder.getAdapterPosition()) != CONSOLE_STATUS && (trans_forced || (translator != Helper.TRANS_NONE && currentLocale != null && differentLanguage))) {
if (status.getSpoiler_text() != null && status.getSpoiler_text().length() > 0) {
if (status.isSpoilerShown() || expand_cw || getItemViewType(viewHolder.getAdapterPosition()) == FOCUSED_STATUS) {
holder.status_translate.setVisibility(View.VISIBLE);
} else {
holder.status_translate.setVisibility(View.GONE);
}
} else if (status.getReblog() != null && status.getReblog().getSpoiler_text() != null && status.getReblog().getSpoiler_text().length() > 0) {
if (status.isSpoilerShown() || expand_cw || getItemViewType(viewHolder.getAdapterPosition()) == FOCUSED_STATUS) {
holder.status_translate.setVisibility(View.VISIBLE);
} else {
holder.status_translate.setVisibility(View.GONE);
}
} else {
holder.status_translate.setVisibility(View.VISIBLE);
}
} else {
holder.status_translate.setVisibility(View.GONE);
}
/*if (expand_cw)
holder.status_spoiler_button.setVisibility(View.GONE);*/
String contentCheck = "";

View File

@ -2333,6 +2333,8 @@ public class Helper {
* @param hexaColor example 0xffff00
*/
public static void changeDrawableColor(Context context, ImageView imageView, int hexaColor){
if( imageView == null)
return;
imageView.setColorFilter(context.getResources().getColor(hexaColor));
}
@ -2342,6 +2344,8 @@ public class Helper {
* @param hexaColor example 0xffff00
*/
public static void changeDrawableColor(Context context, ImageButton imageButton, int hexaColor){
if( imageButton == null)
return;
imageButton.setColorFilter(context.getResources().getColor(hexaColor));
}
@ -2351,6 +2355,8 @@ public class Helper {
* @param hexaColor example 0xffff00
*/
public static void changeButtonTextColor(Context context, Button button, int hexaColor){
if( button == null)
return;
button.setTextColor(context.getResources().getColor(hexaColor));
}
/**

View File

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#FFFFFF"
android:viewportHeight="24.0" android:viewportWidth="24.0"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" 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>

View File

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#FFFFFF"
android:viewportHeight="24.0" android:viewportWidth="24.0"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M17,3H7c-1.1,0 -1.99,0.9 -1.99,2L5,21l7,-3 7,3V5c0,-1.1 -0.9,-2 -2,-2z"/>
</vector>

View File

@ -0,0 +1,33 @@
<vector android:height="108dp" android:viewportHeight="264.59"
android:viewportWidth="264.59" android:width="108dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#000"
android:pathData="m70.935,100.888a21.594,21.594 0,0 1,-9.236 9.193l50.704,50.902 12.224,-6.195zM137.811,168.025 L125.587,174.219 151.277,200.011a21.594,21.594 0,0 1,9.237 -9.194z" android:strokeWidth="3.7795"/>
<path android:fillColor="#000"
android:pathData="m196.484,121.029 l-28.704,14.547 2.116,13.538 32.478,-16.46a21.594,21.594 0,0 1,-5.89 -11.624zM151.118,144.021 L83.25,178.417a21.594,21.594 0,0 1,5.891 11.626l64.094,-32.483z" android:strokeWidth="3.7795"/>
<path android:fillColor="#000"
android:pathData="m129.266,59.296 l-32.749,63.932 9.669,9.706 34.674,-67.69a21.594,21.594 0,0 1,-11.594 -5.949zM87.999,139.86 L71.411,172.243a21.594,21.594 0,0 1,11.593 5.949l14.663,-28.626z" android:strokeWidth="3.7795"/>
<path android:fillColor="#000"
android:pathData="m61.427,110.223a21.594,21.594 0,0 1,-10.788 2.255,21.594 21.594,0 0,1 -2.085,-0.218l9.686,61.956a21.594,21.594 0,0 1,10.788 -2.255,21.594 21.594,0 0,1 2.083,0.218z" android:strokeWidth="3.7795"/>
<path android:fillColor="#000"
android:pathData="m89.166,190.348a21.594,21.594 0,0 1,0.226 4.35,21.594 21.594,0 0,1 -2.278,8.519l61.944,9.94a21.594,21.594 0,0 1,-0.227 -4.35,21.594 21.594,0 0,1 2.279,-8.519z" android:strokeWidth="3.7795"/>
<path android:fillColor="#000"
android:pathData="m202.561,132.881 l-28.592,55.817a21.594,21.594 0,0 1,11.595 5.95l28.592,-55.817a21.594,21.594 0,0 1,-11.595 -5.95z" android:strokeWidth="3.7795"/>
<path android:fillColor="#000"
android:pathData="m163.578,53.934a21.594,21.594 0,0 1,-9.237 9.194l44.279,44.449a21.594,21.594 45,0 1,9.237 -9.194z" android:strokeWidth="3.7795"/>
<path android:fillColor="#000"
android:pathData="m123.147,47.444 l-55.974,28.366a21.594,21.594 0,0 1,5.891 11.624l55.974,-28.368a21.594,21.594 0,0 1,-5.89 -11.623z" android:strokeWidth="3.7795"/>
<path android:fillColor="#000"
android:pathData="m154.235,63.178a21.594,21.594 135,0 1,-10.965 2.345,21.594 21.594,45 0,1 -1.89,-0.198l4.958,31.749 13.529,2.171zM149.22,115.531 L160.943,190.596a21.594,21.594 0,0 1,10.63 -2.176,21.594 21.594,0 0,1 2.259,0.248l-11.082,-70.964z" android:strokeWidth="3.7795"/>
<path android:fillColor="#000"
android:pathData="m73.126,87.672a21.594,21.594 0,0 1,0.238 4.418,21.594 21.594,0 0,1 -2.244,8.457l31.774,5.103 6.245,-12.195zM127.583,96.417 L121.337,108.614 196.411,120.671a21.594,21.594 0,0 1,-0.218 -4.3,21.594 21.594,135 0,1 2.304,-8.564z" android:strokeWidth="3.7795"/>
<path android:fillColor="#000"
android:pathData="M144.457,43.962m-19.602,-1.068a19.631,19.631 48.118,1 1,39.203 2.135a19.631,19.631 48.118,1 1,-39.203 -2.135" android:strokeWidth="3.7795"/>
<path android:fillColor="#000"
android:pathData="M217.745,117.549m-19.602,-1.068a19.631,19.631 48.118,1 1,39.203 2.135a19.631,19.631 48.118,1 1,-39.203 -2.135" android:strokeWidth="3.7795"/>
<path android:fillColor="#000"
android:pathData="M170.398,209.982m-19.602,-1.068a19.631,19.631 48.118,1 1,39.203 2.135a19.631,19.631 48.118,1 1,-39.203 -2.135" android:strokeWidth="3.7795"/>
<path android:fillColor="#000"
android:pathData="M67.833,193.523m-19.602,-1.068a19.631,19.631 48.118,1 1,39.203 2.135a19.631,19.631 48.118,1 1,-39.203 -2.135" android:strokeWidth="3.7795"/>
<path android:fillColor="#000"
android:pathData="M51.81,90.919m-19.602,-1.068a19.631,19.631 48.118,1 1,39.203 2.135a19.631,19.631 48.118,1 1,-39.203 -2.135" android:strokeWidth="3.7795"/>
</vector>

View File

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#FFFFFF"
android:viewportHeight="24.0" android:viewportWidth="24.0"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M16.24,7.76C15.07,6.59 13.54,6 12,6v6l-4.24,4.24c2.34,2.34 6.14,2.34 8.49,0 2.34,-2.34 2.34,-6.14 -0.01,-8.48zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8z"/>
</vector>

View File

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#FFFFFF"
android:viewportHeight="24.0" android:viewportWidth="24.0"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M12.87,15.07l-2.54,-2.51 0.03,-0.03c1.74,-1.94 2.98,-4.17 3.71,-6.53L17,6L17,4h-7L10,2L8,2v2L1,4v1.99h11.17C11.5,7.92 10.44,9.75 9,11.35 8.07,10.32 7.3,9.19 6.69,8h-2c0.73,1.63 1.73,3.17 2.98,4.56l-5.09,5.02L4,19l5,-5 3.11,3.11 0.76,-2.04zM18.5,10h-2L12,22h2l1.12,-3h4.75L21,22h2l-4.5,-12zM15.88,17l1.62,-4.33L19.12,17h-3.24z"/>
</vector>

View File

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="horizontal">
<ImageButton
android:id="@+id/custom_feature_translate"
android:src="@drawable/ic_translate_white"
style="@style/Widget.AppCompat.Button.Colored"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_margin="10dp"
android:tooltipText="@string/translate"
android:contentDescription="@string/translate"/>
<ImageButton
android:id="@+id/custom_feature_bookmark"
android:src="@drawable/ic_bookmark_white"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_margin="10dp"
android:tooltipText="@string/bookmark_add"
style="@style/Widget.AppCompat.Button.Colored"
android:contentDescription="@string/bookmark_add"/>
<ImageButton
android:id="@+id/custom_feature_timed_mute"
android:src="@drawable/ic_timelapse"
android:layout_width="40dp"
style="@style/Widget.AppCompat.Button.Colored"
android:layout_height="40dp"
android:layout_margin="10dp"
android:tooltipText="@string/timed_mute"
android:contentDescription="@string/timed_mute"/>
<ImageButton
android:id="@+id/custom_feature_schedule"
android:src="@drawable/ic_schedule"
android:layout_width="40dp"
style="@style/Widget.AppCompat.Button.Colored"
android:layout_height="40dp"
android:layout_margin="10dp"
android:tooltipText="@string/schedule_boost"
android:contentDescription="@string/schedule"/>
<ImageButton
android:id="@+id/custom_feature_mention"
android:src="@drawable/ic_schedule"
android:layout_width="40dp"
style="@style/Widget.AppCompat.Button.Colored"
android:layout_height="40dp"
android:layout_margin="10dp"
android:tooltipText="@string/mention_account"
android:contentDescription="@string/mention_account"/>
<ImageButton
android:id="@+id/custom_feature_cache"
android:src="@drawable/ic_refresh"
android:layout_width="40dp"
style="@style/Widget.AppCompat.Button.Colored"
android:layout_height="40dp"
android:layout_margin="10dp"
android:tooltipText="@string/action_cache"
android:contentDescription="@string/action_cache"/>
</LinearLayout>

View File

@ -36,7 +36,7 @@
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_height="wrap_content"
android:layout_height="60dp"
android:layout_width="match_parent"
>
<ImageView
@ -137,6 +137,16 @@
android:background="@drawable/bot_background_round_corner"
android:id="@+id/status_account_bot"
android:layout_alignParentStart="true" />
<ImageView
android:id="@+id/new_element"
android:src="@drawable/ic_fiber_new"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:contentDescription="@string/new_toot"
/>
</RelativeLayout>
<LinearLayout
android:id="@+id/left_buttons"
@ -144,57 +154,20 @@
android:layout_width="60dp"
android:paddingLeft="3dp"
android:paddingRight="3dp"
android:layout_gravity="center"
android:gravity="center"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
<ImageView
android:id="@+id/fedilab_features"
android:padding="2dp"
android:gravity="center"
android:layout_marginTop="5dp"
android:gravity="center_horizontal"
android:orientation="horizontal">
<ImageView
android:id="@+id/cached_status"
android:visibility="gone"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginRight="3dp"
android:layout_marginEnd="3dp"
android:src="@drawable/ic_cached_black"
android:contentDescription="@string/cached_status" />
<ImageView
android:id="@+id/new_element"
android:src="@drawable/ic_fiber_new"
android:layout_width="24dp"
android:layout_height="24dp"
android:contentDescription="@string/new_toot" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center_horizontal"
android:orientation="horizontal">
<ImageView
android:id="@+id/status_translate"
android:padding="2dp"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginRight="3dp"
android:layout_marginEnd="3dp"
android:background="#FF2b90d9"
android:src="@drawable/ic_translate"
android:contentDescription="@string/translate" />
<ImageView
android:id="@+id/status_bookmark"
android:tint="@android:color/white"
android:padding="2dp"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginRight="3dp"
android:layout_marginEnd="3dp"
android:background="#FF2b90d9"
android:contentDescription="@string/bookmarks"
android:src="@drawable/ic_bookmark_border" />
</LinearLayout>
android:layout_width="24dp"
android:layout_height="24dp"
android:background="#FF2b90d9"
android:src="@drawable/ic_logo_button"
android:contentDescription="@string/app_features" />
<ImageView
android:id="@+id/status_remove"

View File

@ -983,6 +983,9 @@
<string name="unmute_conversation">Unmute conversation</string>
<string name="toast_unmute_conversation">The conversation is no longer muted!</string>
<string name="toast_mute_conversation">The conversation is muted</string>
<string name="app_features">Open application features</string>
<string name="timed_mute">Timed mute</string>
<string name="mention_account">Mention the account</string>
<plurals name="number_of_vote">
<item quantity="one">%d vote</item>
<item quantity="other">%d votes</item>