bug fix, added reply count to status item, moved status bookmark option to menu
This commit is contained in:
parent
413e5dca54
commit
3ddd0e92ed
|
@ -97,7 +97,7 @@ public class StatusLoader extends AsyncExecutor<StatusLoader.StatusParameter, St
|
|||
db.saveBookmarkTimeline(statuses, request.id);
|
||||
}
|
||||
} else {
|
||||
statuses = connection.getUserBookmarks(request.minId, request.maxId);
|
||||
statuses = connection.getUserBookmarks(0L, request.maxId);
|
||||
if (request.maxId == 0L) {
|
||||
db.saveBookmarkTimeline(statuses, request.id);
|
||||
position = CLEAR_LIST; // clear previous items
|
||||
|
|
|
@ -1,10 +1,5 @@
|
|||
package org.nuclearfog.twidda.ui.activities;
|
||||
|
||||
import static android.view.View.GONE;
|
||||
import static android.view.View.OnClickListener;
|
||||
import static android.view.View.OnLongClickListener;
|
||||
import static android.view.View.VISIBLE;
|
||||
import static android.widget.Toast.LENGTH_SHORT;
|
||||
import static org.nuclearfog.twidda.ui.activities.SearchActivity.KEY_SEARCH_QUERY;
|
||||
import static org.nuclearfog.twidda.ui.activities.StatusEditor.KEY_STATUS_EDITOR_REPLYID;
|
||||
import static org.nuclearfog.twidda.ui.activities.StatusEditor.KEY_STATUS_EDITOR_TEXT;
|
||||
|
@ -29,6 +24,8 @@ import android.view.Menu;
|
|||
import android.view.MenuItem;
|
||||
import android.view.SubMenu;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.View.OnLongClickListener;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageView;
|
||||
|
@ -40,7 +37,6 @@ import androidx.annotation.Nullable;
|
|||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.core.widget.NestedScrollView;
|
||||
import androidx.core.widget.NestedScrollView.OnScrollChangeListener;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
@ -95,8 +91,7 @@ import jp.wasabeef.picasso.transformations.RoundedCornersTransformation;
|
|||
*
|
||||
* @author nuclearfog
|
||||
*/
|
||||
public class StatusActivity extends AppCompatActivity implements OnClickListener, OnScrollChangeListener,
|
||||
OnLongClickListener, OnTagClickListener, OnConfirmListener, OnCardClickListener {
|
||||
public class StatusActivity extends AppCompatActivity implements OnClickListener, OnLongClickListener, OnTagClickListener, OnConfirmListener, OnCardClickListener {
|
||||
|
||||
/**
|
||||
* Activity result code to update existing status information
|
||||
|
@ -192,9 +187,9 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
private MetricsDialog metricsDialog;
|
||||
|
||||
private NestedScrollView container;
|
||||
private ViewGroup root, header, body;
|
||||
private ViewGroup root, body;
|
||||
private TextView statusApi, createdAt, statusText, screenName, userName, locationName, sensitive_media;
|
||||
private Button replyButton, repostButton, likeButton, replyName, locationButton, repostNameButton, bookmarkButton;
|
||||
private Button replyButton, repostButton, likeButton, replyName, locationButton, repostNameButton;
|
||||
private ImageView profileImage;
|
||||
private RecyclerView cardList;
|
||||
private Toolbar toolbar;
|
||||
|
@ -217,14 +212,12 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
super.onCreate(b);
|
||||
setContentView(R.layout.page_status);
|
||||
root = findViewById(R.id.page_status_root);
|
||||
header = findViewById(R.id.page_status_header);
|
||||
body = findViewById(R.id.page_status_body);
|
||||
container = findViewById(R.id.page_status_scroll);
|
||||
toolbar = findViewById(R.id.page_status_toolbar);
|
||||
replyButton = findViewById(R.id.page_status_reply);
|
||||
repostButton = findViewById(R.id.page_status_repost);
|
||||
likeButton = findViewById(R.id.page_status_favorite);
|
||||
bookmarkButton = findViewById(R.id.page_status_bookmark);
|
||||
userName = findViewById(R.id.page_status_username);
|
||||
screenName = findViewById(R.id.page_status_screenname);
|
||||
profileImage = findViewById(R.id.page_status_profile);
|
||||
|
@ -289,7 +282,6 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
sensitive_media.setCompoundDrawablesWithIntrinsicBounds(R.drawable.sensitive, 0, 0, 0);
|
||||
replyName.setCompoundDrawablesWithIntrinsicBounds(R.drawable.back, 0, 0, 0);
|
||||
repostNameButton.setCompoundDrawablesWithIntrinsicBounds(R.drawable.repost, 0, 0, 0);
|
||||
bookmarkButton.setCompoundDrawablesWithIntrinsicBounds(R.drawable.bookmark, 0, 0, 0);
|
||||
statusText.setMovementMethod(LinkAndScrollMovement.getInstance());
|
||||
statusText.setLinkTextColor(settings.getHighlightColor());
|
||||
cardList.setLayoutManager(new LinearLayoutManager(this, RecyclerView.HORIZONTAL, false));
|
||||
|
@ -317,8 +309,6 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
likeButton.setOnLongClickListener(this);
|
||||
repostNameButton.setOnLongClickListener(this);
|
||||
locationButton.setOnLongClickListener(this);
|
||||
bookmarkButton.setOnLongClickListener(this);
|
||||
container.setOnScrollChangeListener(this);
|
||||
}
|
||||
|
||||
|
||||
|
@ -395,49 +385,55 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
|
||||
@Override
|
||||
public boolean onPrepareOptionsMenu(@NonNull Menu m) {
|
||||
if (status == null)
|
||||
return super.onPrepareOptionsMenu(m);
|
||||
|
||||
MenuItem optDelete = m.findItem(R.id.menu_status_delete);
|
||||
MenuItem optHide = m.findItem(R.id.menu_status_hide);
|
||||
MenuItem optCopy = m.findItem(R.id.menu_status_copy);
|
||||
MenuItem optMetrics = m.findItem(R.id.menu_status_metrics);
|
||||
MenuItem optDismiss = m.findItem(R.id.menu_notification_dismiss);
|
||||
MenuItem menuBookmark = m.findItem(R.id.menu_status_bookmark);
|
||||
SubMenu copyMenu = optCopy.getSubMenu();
|
||||
|
||||
Status status = this.status;
|
||||
if (status.getEmbeddedStatus() != null) {
|
||||
status = status.getEmbeddedStatus();
|
||||
}
|
||||
Configuration config = settings.getLogin().getConfiguration();
|
||||
// set notification options
|
||||
if (notification != null) {
|
||||
optHide.setVisible(false);
|
||||
} else if (status.getRepliedUserId() == settings.getLogin().getId() && status.getAuthor().getId() != settings.getLogin().getId()) {
|
||||
optDismiss.setVisible(config.NotificationDismissEnabled());
|
||||
}
|
||||
// set status options
|
||||
if (status != null) {
|
||||
Status currentStatus = status;
|
||||
if (currentStatus.getEmbeddedStatus() != null) {
|
||||
currentStatus = currentStatus.getEmbeddedStatus();
|
||||
}
|
||||
// enable/disable status reply hide
|
||||
long currentUserId = settings.getLogin().getId();
|
||||
if (currentStatus.getRepliedUserId() == currentUserId && currentStatus.getAuthor().getId() != currentUserId) {
|
||||
optHide.setTitle(hidden ? R.string.menu_status_hide : R.string.menu_status_unhide);
|
||||
optHide.setVisible(true);
|
||||
if (hidden) {
|
||||
optHide.setTitle(R.string.menu_status_unhide);
|
||||
}
|
||||
// enable/disable bookmark
|
||||
if (currentStatus.isBookmarked()) {
|
||||
menuBookmark.setTitle(R.string.menu_bookmark_remove);
|
||||
} else {
|
||||
optHide.setTitle(R.string.menu_status_hide);
|
||||
menuBookmark.setTitle(R.string.menu_bookmark_add);
|
||||
}
|
||||
}
|
||||
if (status.getAuthor().isCurrentUser()) {
|
||||
// enable/disable status hide option
|
||||
if (currentStatus.getAuthor().isCurrentUser()) {
|
||||
optDelete.setVisible(true);
|
||||
}
|
||||
if (status.getMetrics() != null) {
|
||||
// enable/disable status metrics option
|
||||
if (currentStatus.getMetrics() != null) {
|
||||
optMetrics.setVisible(true);
|
||||
}
|
||||
if (settings.getLogin().getConfiguration().NotificationDismissEnabled()) {
|
||||
optDismiss.setVisible(true);
|
||||
}
|
||||
// add media link items
|
||||
// check if menu doesn't contain media links already
|
||||
if (copyMenu.size() == 2) {
|
||||
int mediaCount = status.getMedia().length;
|
||||
for (int i = 0; i < mediaCount; i++) {
|
||||
for (int i = 0; i < currentStatus.getMedia().length; i++) {
|
||||
// create sub menu entry and use array index as item ID
|
||||
String text = getString(R.string.menu_media_link) + ' ' + (i + 1);
|
||||
copyMenu.add(MENU_GROUP_COPY, i, Menu.NONE, text);
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -454,6 +450,13 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
if (item.getItemId() == R.id.menu_status_delete) {
|
||||
confirmDialog.show(ConfirmDialog.DELETE_STATUS);
|
||||
}
|
||||
// add/remove bookmark
|
||||
if (item.getItemId() == R.id.menu_status_bookmark) {
|
||||
Toast.makeText(getApplicationContext(), R.string.info_loading, Toast.LENGTH_SHORT).show();
|
||||
int mode = status.isBookmarked() ? StatusParam.UNBOOKMARK : StatusParam.BOOKMARK;
|
||||
StatusParam param = new StatusParam(mode, status.getId());
|
||||
statusAsync.execute(param, this::onStatusResult);
|
||||
}
|
||||
// hide status
|
||||
else if (item.getItemId() == R.id.menu_status_hide) {
|
||||
int mode = hidden ? StatusParam.UNHIDE : StatusParam.HIDE;
|
||||
|
@ -466,7 +469,7 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
try {
|
||||
startActivity(intent);
|
||||
} catch (ActivityNotFoundException err) {
|
||||
Toast.makeText(getApplicationContext(), R.string.error_connection_failed, LENGTH_SHORT).show();
|
||||
Toast.makeText(getApplicationContext(), R.string.error_connection_failed, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
// copy status link to clipboard
|
||||
|
@ -474,7 +477,7 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
if (clip != null) {
|
||||
ClipData linkClip = ClipData.newPlainText("status text", status.getText());
|
||||
clip.setPrimaryClip(linkClip);
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_text_copied, LENGTH_SHORT).show();
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_text_copied, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
// copy status link to clipboard
|
||||
|
@ -482,7 +485,7 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
if (clip != null) {
|
||||
ClipData linkClip = ClipData.newPlainText("status link", status.getUrl());
|
||||
clip.setPrimaryClip(linkClip);
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_link_copied, LENGTH_SHORT).show();
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_link_copied, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
// open status metrics page
|
||||
|
@ -503,7 +506,7 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
if (clip != null) {
|
||||
ClipData linkClip = ClipData.newPlainText("status media link", medias[index].getUrl());
|
||||
clip.setPrimaryClip(linkClip);
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_medialink_copied, LENGTH_SHORT).show();
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_medialink_copied, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -561,7 +564,7 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
try {
|
||||
startActivity(intent);
|
||||
} catch (ActivityNotFoundException err) {
|
||||
Toast.makeText(getApplicationContext(), R.string.error_no_card_app, LENGTH_SHORT).show();
|
||||
Toast.makeText(getApplicationContext(), R.string.error_no_card_app, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -580,7 +583,7 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
if (status != null && statusAsync.isIdle()) {
|
||||
// repost this status
|
||||
if (v.getId() == R.id.page_status_repost) {
|
||||
Toast.makeText(getApplicationContext(), R.string.info_loading, LENGTH_SHORT).show();
|
||||
Toast.makeText(getApplicationContext(), R.string.info_loading, Toast.LENGTH_SHORT).show();
|
||||
int mode = status.isReposted() ? StatusParam.UNREPOST : StatusParam.REPOST;
|
||||
StatusParam param = new StatusParam(mode, status.getId());
|
||||
statusAsync.execute(param, this::onStatusResult);
|
||||
|
@ -588,20 +591,12 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
}
|
||||
// favorite this status
|
||||
else if (v.getId() == R.id.page_status_favorite) {
|
||||
Toast.makeText(getApplicationContext(), R.string.info_loading, LENGTH_SHORT).show();
|
||||
Toast.makeText(getApplicationContext(), R.string.info_loading, Toast.LENGTH_SHORT).show();
|
||||
int mode = status.isFavorited() ? StatusParam.UNFAVORITE : StatusParam.FAVORITE;
|
||||
StatusParam param = new StatusParam(mode, status.getId());
|
||||
statusAsync.execute(param, this::onStatusResult);
|
||||
return true;
|
||||
}
|
||||
// bookmark status
|
||||
else if (v.getId() == R.id.page_status_bookmark) {
|
||||
Toast.makeText(getApplicationContext(), R.string.info_loading, LENGTH_SHORT).show();
|
||||
int mode = status.isBookmarked() ? StatusParam.UNBOOKMARK : StatusParam.BOOKMARK;
|
||||
StatusParam param = new StatusParam(mode, status.getId());
|
||||
statusAsync.execute(param, this::onStatusResult);
|
||||
return true;
|
||||
}
|
||||
// go to original status
|
||||
else if (v.getId() == R.id.page_status_reposter_reference) {
|
||||
Status embeddedStatus = status.getEmbeddedStatus();
|
||||
|
@ -623,7 +618,7 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
if (clip != null && location != null) {
|
||||
ClipData linkClip = ClipData.newPlainText("Status location coordinates", location.getCoordinates());
|
||||
clip.setPrimaryClip(linkClip);
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_location_copied, LENGTH_SHORT).show();
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_location_copied, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -632,16 +627,6 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onScrollChange(@NonNull NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
|
||||
if (scrollY == header.getMeasuredHeight()) {
|
||||
// unlock child scrolling
|
||||
} else {
|
||||
// lock child view from scrolling
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onConfirm(int type, boolean rememberChoice) {
|
||||
switch (type) {
|
||||
|
@ -691,7 +676,7 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
try {
|
||||
startActivity(intent);
|
||||
} catch (ActivityNotFoundException err) {
|
||||
Toast.makeText(getApplicationContext(), R.string.error_connection_failed, LENGTH_SHORT).show();
|
||||
Toast.makeText(getApplicationContext(), R.string.error_connection_failed, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
} else if (type == OnCardClickListener.TYPE_IMAGE) {
|
||||
String imageUrl = card.getImageUrl();
|
||||
|
@ -763,7 +748,7 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
try {
|
||||
startActivity(intent);
|
||||
} catch (ActivityNotFoundException err) {
|
||||
Toast.makeText(getApplicationContext(), R.string.error_connection_failed, LENGTH_SHORT).show();
|
||||
Toast.makeText(getApplicationContext(), R.string.error_connection_failed, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -785,11 +770,11 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
public void setStatus(@NonNull Status status) {
|
||||
this.status = status;
|
||||
if (status.getEmbeddedStatus() != null) {
|
||||
repostNameButton.setVisibility(VISIBLE);
|
||||
repostNameButton.setVisibility(View.VISIBLE);
|
||||
repostNameButton.setText(status.getAuthor().getScreenname());
|
||||
status = status.getEmbeddedStatus();
|
||||
} else {
|
||||
repostNameButton.setVisibility(GONE);
|
||||
repostNameButton.setVisibility(View.GONE);
|
||||
}
|
||||
User author = status.getAuthor();
|
||||
Location location = status.getLocation();
|
||||
|
@ -805,11 +790,6 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
} else {
|
||||
AppStyles.setDrawableColor(likeButton, settings.getIconColor());
|
||||
}
|
||||
if (status.isBookmarked()) {
|
||||
AppStyles.setDrawableColor(bookmarkButton, settings.getBookmarkColor());
|
||||
} else {
|
||||
AppStyles.setDrawableColor(bookmarkButton, settings.getIconColor());
|
||||
}
|
||||
if (author.isVerified()) {
|
||||
userName.setCompoundDrawablesWithIntrinsicBounds(R.drawable.verify, 0, 0, 0);
|
||||
AppStyles.setDrawableColor(userName, settings.getIconColor());
|
||||
|
@ -831,30 +811,30 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
if (!status.getSource().isEmpty()) {
|
||||
statusApi.setText(R.string.status_sent_from);
|
||||
statusApi.append(status.getSource());
|
||||
statusApi.setVisibility(VISIBLE);
|
||||
statusApi.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
statusApi.setVisibility(GONE);
|
||||
statusApi.setVisibility(View.GONE);
|
||||
}
|
||||
if (!status.getText().isEmpty()) {
|
||||
Spannable spannableText = Tagger.makeTextWithLinks(status.getText(), settings.getHighlightColor(), this);
|
||||
statusText.setVisibility(VISIBLE);
|
||||
statusText.setVisibility(View.VISIBLE);
|
||||
statusText.setText(spannableText);
|
||||
} else {
|
||||
statusText.setVisibility(GONE);
|
||||
statusText.setVisibility(View.GONE);
|
||||
}
|
||||
if (status.getRepliedStatusId() > 0) {
|
||||
if (!status.getReplyName().isEmpty())
|
||||
replyName.setText(status.getReplyName());
|
||||
else
|
||||
replyName.setText(R.string.status_replyname_empty);
|
||||
replyName.setVisibility(VISIBLE);
|
||||
replyName.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
replyName.setVisibility(GONE);
|
||||
replyName.setVisibility(View.GONE);
|
||||
}
|
||||
if (status.isSensitive()) {
|
||||
sensitive_media.setVisibility(VISIBLE);
|
||||
sensitive_media.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
sensitive_media.setVisibility(GONE);
|
||||
sensitive_media.setVisibility(View.GONE);
|
||||
}
|
||||
String profileImageUrl = author.getProfileImageThumbnailUrl();
|
||||
if (settings.imagesEnabled() && !profileImageUrl.isEmpty()) {
|
||||
|
@ -865,37 +845,32 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
}
|
||||
if (location != null) {
|
||||
if (!location.getPlace().isEmpty()) {
|
||||
locationName.setVisibility(VISIBLE);
|
||||
locationName.setVisibility(View.VISIBLE);
|
||||
locationName.setText(location.getFullName());
|
||||
} else {
|
||||
locationName.setVisibility(GONE);
|
||||
locationName.setVisibility(View.GONE);
|
||||
}
|
||||
if (!location.getCoordinates().isEmpty()) {
|
||||
locationButton.setVisibility(VISIBLE);
|
||||
locationButton.setVisibility(View.VISIBLE);
|
||||
locationButton.setText(location.getCoordinates());
|
||||
} else {
|
||||
locationButton.setVisibility(GONE);
|
||||
locationButton.setVisibility(View.GONE);
|
||||
}
|
||||
} else {
|
||||
locationName.setVisibility(GONE);
|
||||
locationButton.setVisibility(GONE);
|
||||
locationName.setVisibility(View.GONE);
|
||||
locationButton.setVisibility(View.GONE);
|
||||
}
|
||||
if (repostButton.getVisibility() != VISIBLE) {
|
||||
if (settings.getLogin().getConfiguration() == Configuration.MASTODON) {
|
||||
bookmarkButton.setVisibility(VISIBLE);
|
||||
} else {
|
||||
bookmarkButton.setVisibility(GONE);
|
||||
}
|
||||
repostButton.setVisibility(VISIBLE);
|
||||
likeButton.setVisibility(VISIBLE);
|
||||
replyButton.setVisibility(VISIBLE);
|
||||
if (repostButton.getVisibility() != View.VISIBLE) {
|
||||
repostButton.setVisibility(View.VISIBLE);
|
||||
likeButton.setVisibility(View.VISIBLE);
|
||||
replyButton.setVisibility(View.VISIBLE);
|
||||
}
|
||||
if ((status.getCards().length > 0 || status.getMedia().length > 0) || status.getPoll() != null) {
|
||||
cardList.setVisibility(VISIBLE);
|
||||
cardList.setVisibility(View.VISIBLE);
|
||||
adapter.replaceAll(status);
|
||||
statusText.setMaxLines(5);
|
||||
} else {
|
||||
cardList.setVisibility(GONE);
|
||||
cardList.setVisibility(View.GONE);
|
||||
statusText.setMaxLines(10);
|
||||
}
|
||||
}
|
||||
|
@ -916,50 +891,50 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
break;
|
||||
|
||||
case StatusResult.REPOST:
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_reposted, LENGTH_SHORT).show();
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_reposted, Toast.LENGTH_SHORT).show();
|
||||
break;
|
||||
|
||||
case StatusResult.UNREPOST:
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_unreposted, LENGTH_SHORT).show();
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_unreposted, Toast.LENGTH_SHORT).show();
|
||||
break;
|
||||
|
||||
case StatusResult.FAVORITE:
|
||||
if (settings.likeEnabled())
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_liked, LENGTH_SHORT).show();
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_liked, Toast.LENGTH_SHORT).show();
|
||||
else
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_favored, LENGTH_SHORT).show();
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_favored, Toast.LENGTH_SHORT).show();
|
||||
break;
|
||||
|
||||
case StatusResult.UNFAVORITE:
|
||||
if (settings.likeEnabled())
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_unliked, LENGTH_SHORT).show();
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_unliked, Toast.LENGTH_SHORT).show();
|
||||
else
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_unfavored, LENGTH_SHORT).show();
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_unfavored, Toast.LENGTH_SHORT).show();
|
||||
break;
|
||||
|
||||
case StatusResult.BOOKMARK:
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_bookmarked, LENGTH_SHORT).show();
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_bookmarked, Toast.LENGTH_SHORT).show();
|
||||
break;
|
||||
|
||||
case StatusResult.UNBOOKMARK:
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_unbookmarked, LENGTH_SHORT).show();
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_unbookmarked, Toast.LENGTH_SHORT).show();
|
||||
break;
|
||||
|
||||
case StatusResult.HIDE:
|
||||
hidden = true;
|
||||
invalidateOptionsMenu();
|
||||
Toast.makeText(getApplicationContext(), R.string.info_reply_hidden, LENGTH_SHORT).show();
|
||||
Toast.makeText(getApplicationContext(), R.string.info_reply_hidden, Toast.LENGTH_SHORT).show();
|
||||
break;
|
||||
|
||||
case StatusResult.UNHIDE:
|
||||
hidden = false;
|
||||
invalidateOptionsMenu();
|
||||
Toast.makeText(getApplicationContext(), R.string.info_reply_unhidden, LENGTH_SHORT).show();
|
||||
Toast.makeText(getApplicationContext(), R.string.info_reply_unhidden, Toast.LENGTH_SHORT).show();
|
||||
break;
|
||||
|
||||
case StatusResult.DELETE:
|
||||
if (status != null) {
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_removed, LENGTH_SHORT).show();
|
||||
Toast.makeText(getApplicationContext(), R.string.info_status_removed, Toast.LENGTH_SHORT).show();
|
||||
Intent intent = new Intent();
|
||||
if (status.getEmbeddedStatus() != null)
|
||||
intent.putExtra(INTENT_STATUS_REMOVED_ID, status.getEmbeddedStatus().getId());
|
||||
|
@ -1014,7 +989,7 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
intent.putExtra(INTENT_NOTIFICATION_REMOVED_ID, notification.getId());
|
||||
setResult(RETURN_NOTIFICATION_REMOVED, intent);
|
||||
}
|
||||
Toast.makeText(getApplicationContext(), R.string.info_notification_dismiss, LENGTH_SHORT).show();
|
||||
Toast.makeText(getApplicationContext(), R.string.info_notification_dismiss, Toast.LENGTH_SHORT).show();
|
||||
finish();
|
||||
break;
|
||||
|
||||
|
|
|
@ -42,8 +42,8 @@ import jp.wasabeef.picasso.transformations.RoundedCornersTransformation;
|
|||
*/
|
||||
public class StatusHolder extends ViewHolder implements OnClickListener {
|
||||
|
||||
private ImageView profile, rpUser, verifiedIcon, lockedIcon, rtIcon, favIcon, replyIcon;
|
||||
private TextView username, screenname, text, repost, favorite, reposter, created, replyname, label;
|
||||
private ImageView profile, repostUserIcon, verifiedIcon, lockedIcon, repostIcon, favoriteIcon, replyStatus;
|
||||
private TextView username, screenname, text, repost, favorite, reply, reposter, created, replyname, label;
|
||||
private RecyclerView iconList;
|
||||
|
||||
private GlobalSettings settings;
|
||||
|
@ -64,16 +64,17 @@ public class StatusHolder extends ViewHolder implements OnClickListener {
|
|||
profile = itemView.findViewById(R.id.item_status_profile_image);
|
||||
verifiedIcon = itemView.findViewById(R.id.item_status_verified_icon);
|
||||
lockedIcon = itemView.findViewById(R.id.item_status_locked_icon);
|
||||
rpUser = itemView.findViewById(R.id.item_status_reposter_icon);
|
||||
rtIcon = itemView.findViewById(R.id.item_status_repost_icon);
|
||||
favIcon = itemView.findViewById(R.id.item_status_favorite_icon);
|
||||
repostUserIcon = itemView.findViewById(R.id.item_status_reposter_icon);
|
||||
repostIcon = itemView.findViewById(R.id.item_status_repost_icon);
|
||||
favoriteIcon = itemView.findViewById(R.id.item_status_favorite_icon);
|
||||
iconList = itemView.findViewById(R.id.item_status_attachment_list);
|
||||
replyIcon = itemView.findViewById(R.id.item_status_reply);
|
||||
replyStatus = itemView.findViewById(R.id.item_status_reply);
|
||||
username = itemView.findViewById(R.id.item_status_author_username);
|
||||
screenname = itemView.findViewById(R.id.item_status_author_screenname);
|
||||
text = itemView.findViewById(R.id.item_status_text);
|
||||
repost = itemView.findViewById(R.id.item_status_repost_count);
|
||||
favorite = itemView.findViewById(R.id.item_status_favorite_count);
|
||||
reply = itemView.findViewById(R.id.item_status_reply_count);
|
||||
reposter = itemView.findViewById(R.id.item_status_reposter_name);
|
||||
created = itemView.findViewById(R.id.item_status_created_at);
|
||||
replyname = itemView.findViewById(R.id.item_status_reply_name);
|
||||
|
@ -83,9 +84,9 @@ public class StatusHolder extends ViewHolder implements OnClickListener {
|
|||
iconList.setAdapter(adapter);
|
||||
|
||||
if (settings.likeEnabled()) {
|
||||
favIcon.setImageResource(R.drawable.like);
|
||||
favoriteIcon.setImageResource(R.drawable.like);
|
||||
} else {
|
||||
favIcon.setImageResource(R.drawable.favorite);
|
||||
favoriteIcon.setImageResource(R.drawable.favorite);
|
||||
}
|
||||
AppStyles.setTheme(container, Color.TRANSPARENT);
|
||||
cardLayout.setCardBackgroundColor(settings.getCardColor());
|
||||
|
@ -117,17 +118,18 @@ public class StatusHolder extends ViewHolder implements OnClickListener {
|
|||
if (status.getEmbeddedStatus() != null) {
|
||||
reposter.setText(user.getScreenname());
|
||||
reposter.setVisibility(View.VISIBLE);
|
||||
rpUser.setVisibility(View.VISIBLE);
|
||||
repostUserIcon.setVisibility(View.VISIBLE);
|
||||
status = status.getEmbeddedStatus();
|
||||
user = status.getAuthor();
|
||||
} else {
|
||||
reposter.setVisibility(View.GONE);
|
||||
rpUser.setVisibility(View.GONE);
|
||||
repostUserIcon.setVisibility(View.GONE);
|
||||
}
|
||||
username.setText(user.getUsername());
|
||||
screenname.setText(user.getScreenname());
|
||||
repost.setText(StringTools.NUMBER_FORMAT.format(status.getRepostCount()));
|
||||
favorite.setText(StringTools.NUMBER_FORMAT.format(status.getFavoriteCount()));
|
||||
reply.setText(StringTools.NUMBER_FORMAT.format(status.getReplyCount()));
|
||||
created.setText(StringTools.formatCreationTime(itemView.getResources(), status.getTimestamp()));
|
||||
if (!status.getText().trim().isEmpty()) {
|
||||
Spanned textSpan = Tagger.makeTextWithLinks(status.getText(), settings.getHighlightColor());
|
||||
|
@ -137,14 +139,14 @@ public class StatusHolder extends ViewHolder implements OnClickListener {
|
|||
text.setVisibility(View.GONE);
|
||||
}
|
||||
if (status.isReposted()) {
|
||||
rtIcon.setColorFilter(settings.getRepostIconColor());
|
||||
repostIcon.setColorFilter(settings.getRepostIconColor());
|
||||
} else {
|
||||
rtIcon.setColorFilter(settings.getIconColor());
|
||||
repostIcon.setColorFilter(settings.getIconColor());
|
||||
}
|
||||
if (status.isFavorited()) {
|
||||
favIcon.setColorFilter(settings.getFavoriteIconColor());
|
||||
favoriteIcon.setColorFilter(settings.getFavoriteIconColor());
|
||||
} else {
|
||||
favIcon.setColorFilter(settings.getIconColor());
|
||||
favoriteIcon.setColorFilter(settings.getIconColor());
|
||||
}
|
||||
if (user.isVerified()) {
|
||||
verifiedIcon.setVisibility(View.VISIBLE);
|
||||
|
@ -164,14 +166,14 @@ public class StatusHolder extends ViewHolder implements OnClickListener {
|
|||
profile.setImageResource(0);
|
||||
}
|
||||
if (status.getRepliedStatusId() > 0) {
|
||||
replyIcon.setVisibility(View.VISIBLE);
|
||||
replyStatus.setVisibility(View.VISIBLE);
|
||||
replyname.setVisibility(View.VISIBLE);
|
||||
if (!status.getReplyName().isEmpty())
|
||||
replyname.setText(status.getReplyName());
|
||||
else
|
||||
replyname.setText(R.string.status_replyname_empty);
|
||||
} else {
|
||||
replyIcon.setVisibility(View.GONE);
|
||||
replyStatus.setVisibility(View.GONE);
|
||||
replyname.setVisibility(View.GONE);
|
||||
}
|
||||
if (settings.statusIndicatorsEnabled()) {
|
||||
|
|
|
@ -98,10 +98,8 @@ public abstract class ListFragment extends Fragment implements OnRefreshListener
|
|||
* @param adapter adapter for the list
|
||||
*/
|
||||
protected void setAdapter(Adapter<? extends ViewHolder> adapter) {
|
||||
if (list != null) {
|
||||
list.setAdapter(adapter);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* called to reset all data
|
||||
|
|
|
@ -185,8 +185,34 @@
|
|||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/item_status_icon_size"
|
||||
android:layout_marginTop="@dimen/item_status_layout_margin"
|
||||
app:layout_constraintHorizontal_weight="2"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/item_status_attachment_list"
|
||||
app:layout_constraintEnd_toStartOf="@id/item_status_reply_icon" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/item_status_reply_icon"
|
||||
android:layout_width="@dimen/item_status_icon_size"
|
||||
android:layout_height="@dimen/item_status_icon_size"
|
||||
android:src="@drawable/answer"
|
||||
android:layout_marginTop="@dimen/item_status_layout_margin"
|
||||
app:layout_constraintStart_toEndOf="@id/item_status_indicator_placeholder"
|
||||
app:layout_constraintTop_toBottomOf="@id/item_status_attachment_list"
|
||||
app:layout_constraintEnd_toStartOf="@id/item_status_reply_count"
|
||||
tools:ignore="ContentDescription" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/item_status_reply_count"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/item_status_text_margin"
|
||||
android:layout_marginEnd="@dimen/item_status_text_margin"
|
||||
android:lines="1"
|
||||
android:textSize="@dimen/item_status_textsize_button"
|
||||
app:layout_constraintHorizontal_weight="3"
|
||||
app:layout_constraintStart_toEndOf="@id/item_status_reply_icon"
|
||||
app:layout_constraintTop_toBottomOf="@id/item_status_attachment_list"
|
||||
app:layout_constraintBottom_toBottomOf="@id/item_status_reply_icon"
|
||||
app:layout_constraintEnd_toStartOf="@id/item_status_repost_icon" />
|
||||
|
||||
<ImageView
|
||||
|
@ -195,7 +221,7 @@
|
|||
android:layout_height="@dimen/item_status_icon_size"
|
||||
android:src="@drawable/repost"
|
||||
android:layout_marginTop="@dimen/item_status_layout_margin"
|
||||
app:layout_constraintStart_toEndOf="@id/item_status_indicator_placeholder"
|
||||
app:layout_constraintStart_toEndOf="@id/item_status_reply_count"
|
||||
app:layout_constraintTop_toBottomOf="@id/item_status_attachment_list"
|
||||
app:layout_constraintEnd_toStartOf="@id/item_status_repost_count"
|
||||
tools:ignore="ContentDescription" />
|
||||
|
@ -208,8 +234,9 @@
|
|||
android:layout_marginEnd="@dimen/item_status_text_margin"
|
||||
android:lines="1"
|
||||
android:textSize="@dimen/item_status_textsize_button"
|
||||
app:layout_constraintHorizontal_weight="3"
|
||||
app:layout_constraintStart_toEndOf="@id/item_status_repost_icon"
|
||||
app:layout_constraintTop_toTopOf="@id/item_status_repost_icon"
|
||||
app:layout_constraintTop_toBottomOf="@id/item_status_attachment_list"
|
||||
app:layout_constraintBottom_toBottomOf="@id/item_status_repost_icon"
|
||||
app:layout_constraintEnd_toStartOf="@id/item_status_favorite_icon" />
|
||||
|
||||
|
@ -232,8 +259,9 @@
|
|||
android:layout_marginEnd="@dimen/item_status_text_margin"
|
||||
android:lines="1"
|
||||
android:textSize="@dimen/item_status_textsize_button"
|
||||
app:layout_constraintHorizontal_weight="3"
|
||||
app:layout_constraintStart_toEndOf="@id/item_status_favorite_icon"
|
||||
app:layout_constraintTop_toTopOf="@id/item_status_favorite_icon"
|
||||
app:layout_constraintTop_toBottomOf="@id/item_status_attachment_list"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
|
|
@ -239,22 +239,6 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="400dp">
|
||||
|
||||
<Button
|
||||
android:id="@+id/page_status_bookmark"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/page_status_button_height"
|
||||
android:visibility="invisible"
|
||||
android:paddingLeft="@dimen/page_status_button_padding"
|
||||
android:paddingRight="@dimen/page_status_button_padding"
|
||||
android:drawablePadding="@dimen/page_status_padding_drawable"
|
||||
android:layout_margin="@dimen/page_status_button_margin"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toTopOf="@id/page_status_reply_fragment"
|
||||
app:layout_constraintEnd_toStartOf="@id/page_status_reply"
|
||||
app:layout_constraintHorizontal_weight="1"
|
||||
style="@style/FeedbackButton" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/page_status_reply"
|
||||
android:layout_width="0dp"
|
||||
|
@ -265,7 +249,7 @@
|
|||
android:drawablePadding="@dimen/page_status_padding_drawable"
|
||||
android:layout_margin="@dimen/page_status_button_margin"
|
||||
android:lines="1"
|
||||
app:layout_constraintStart_toEndOf="@id/page_status_bookmark"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toTopOf="@id/page_status_reply_fragment"
|
||||
app:layout_constraintEnd_toStartOf="@id/page_status_repost"
|
||||
|
|
|
@ -20,6 +20,10 @@
|
|||
</menu>
|
||||
</item>
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_status_bookmark"
|
||||
android:title="@string/menu_bookmark_add" />
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_status_metrics"
|
||||
android:title="@string/menu_status_metrics"
|
||||
|
|
|
@ -272,7 +272,6 @@
|
|||
<string name="info_status_unbookmarked">Status aus Lesezeichen entfernt</string>
|
||||
<string name="settings_bookmark_color">Lesezeichen symbol</string>
|
||||
<string name="info_poll_voted">Umfrage abgestimmt!</string>
|
||||
<string name="error_database_cleared">Fehler beim löschen der Datenbank!</string>
|
||||
<string name="menu_notification_dismiss">entfernen</string>
|
||||
<string name="confirm_dismiss_notification">Nachricht verwerfen?</string>
|
||||
</resources>
|
|
@ -107,7 +107,6 @@
|
|||
<string name="error_wrong_connection_settings">wrong connection settings! Discarc changes?</string>
|
||||
<string name="error_invalid_media">Invalid media file!</string>
|
||||
<string name="error_not_defined">Not specified error!</string>
|
||||
<string name="error_database_cleared">Error while clearing database!</string>
|
||||
<string name="error_forbidden_api_access">API does not support this operation!</string>
|
||||
<string name="error_adding_media">Error occurred while adding media!</string>
|
||||
<string name="error_media_init">Error while preparing media files for upload!</string>
|
||||
|
@ -125,6 +124,8 @@
|
|||
<string name="menu_app_info">About</string>
|
||||
<string name="menu_licenses">Licenses</string>
|
||||
<string name="menu_block_user">block</string>
|
||||
<string name="menu_bookmark_add">bookmark</string>
|
||||
<string name="menu_bookmark_remove">remove bookmark</string>
|
||||
<string name="menu_unmute_user">unmute</string>
|
||||
<string name="menu_follow_requested">follow requested</string>
|
||||
<string name="menu_status_delete">delete</string>
|
||||
|
|
Loading…
Reference in New Issue