Add entity for params

This commit is contained in:
tom79 2020-03-07 08:46:48 +01:00
parent cfc0704806
commit 7bd52ca212
12 changed files with 516 additions and 428 deletions

View File

@ -53,6 +53,7 @@ import app.fedilab.android.client.API;
import app.fedilab.android.client.APIResponse;
import app.fedilab.android.client.Entities.Account;
import app.fedilab.android.client.Entities.Status;
import app.fedilab.android.client.Entities.StatusDrawerParams;
import app.fedilab.android.drawers.StatusListAdapter;
import app.fedilab.android.helper.Helper;
import app.fedilab.android.interfaces.OnRetrieveFeedsInterface;
@ -181,7 +182,12 @@ public class BookmarkActivity extends BaseActivity implements OnRetrieveFeedsInt
statuses = apiResponse.getStatuses();
if (statuses != null && statuses.size() > 0) {
LinearLayoutManager mLayoutManager = new LinearLayoutManager(BookmarkActivity.this);
statusListAdapter = new StatusListAdapter(RetrieveFeedsAsyncTask.Type.CACHE_BOOKMARKS, null, isOnWifi, this.statuses);
StatusDrawerParams statusDrawerParams = new StatusDrawerParams();
statusDrawerParams.setType(RetrieveFeedsAsyncTask.Type.CACHE_BOOKMARKS);
statusDrawerParams.setTargetedId(null);
statusDrawerParams.setOnWifi(isOnWifi);
statusDrawerParams.setStatuses(this.statuses);
statusListAdapter = new StatusListAdapter(statusDrawerParams);
lv_status.setAdapter(statusListAdapter);
lv_status.setLayoutManager(mLayoutManager);
} else {
@ -206,7 +212,12 @@ public class BookmarkActivity extends BaseActivity implements OnRetrieveFeedsInt
.setPositiveButton(R.string.yes, (dialogConfirm, which) -> {
statuses = new ArrayList<>();
statuses.clear();
statusListAdapter = new StatusListAdapter(RetrieveFeedsAsyncTask.Type.CACHE_BOOKMARKS, null, isOnWifi, statuses);
StatusDrawerParams statusDrawerParams = new StatusDrawerParams();
statusDrawerParams.setType(RetrieveFeedsAsyncTask.Type.CACHE_BOOKMARKS);
statusDrawerParams.setTargetedId(null);
statusDrawerParams.setOnWifi(isOnWifi);
statusDrawerParams.setStatuses(this.statuses);
statusListAdapter = new StatusListAdapter(statusDrawerParams);
lv_status.setAdapter(statusListAdapter);
statusListAdapter.notifyDataSetChanged();
textviewNoAction.setVisibility(View.VISIBLE);
@ -225,7 +236,12 @@ public class BookmarkActivity extends BaseActivity implements OnRetrieveFeedsInt
statuses.clear();
statuses.addAll(bookmarks);
final boolean isOnWifi = Helper.isOnWIFI(BookmarkActivity.this);
statusListAdapter = new StatusListAdapter(RetrieveFeedsAsyncTask.Type.CACHE_BOOKMARKS, null, isOnWifi, statuses);
StatusDrawerParams statusDrawerParams = new StatusDrawerParams();
statusDrawerParams.setType(RetrieveFeedsAsyncTask.Type.CACHE_BOOKMARKS);
statusDrawerParams.setTargetedId(null);
statusDrawerParams.setOnWifi(isOnWifi);
statusDrawerParams.setStatuses(this.statuses);
statusListAdapter = new StatusListAdapter(statusDrawerParams);
lv_status.setAdapter(statusListAdapter);
statusListAdapter.notifyDataSetChanged();
if (statuses.size() == 0) {

View File

@ -39,6 +39,7 @@ import app.fedilab.android.R;
import app.fedilab.android.asynctasks.RetrieveFeedsAsyncTask;
import app.fedilab.android.client.APIResponse;
import app.fedilab.android.client.Entities.Status;
import app.fedilab.android.client.Entities.StatusDrawerParams;
import app.fedilab.android.drawers.StatusListAdapter;
import app.fedilab.android.helper.Helper;
import app.fedilab.android.interfaces.OnRetrieveFeedsInterface;
@ -120,7 +121,12 @@ public class GroupActivity extends BaseActivity implements OnRetrieveFeedsInterf
textviewNoAction = findViewById(R.id.no_action);
mainLoader.setVisibility(View.VISIBLE);
nextElementLoader.setVisibility(View.GONE);
statusListAdapter = new StatusListAdapter(RetrieveFeedsAsyncTask.Type.GNU_GROUP_TIMELINE, null, isOnWifi, this.statuses);
StatusDrawerParams statusDrawerParams = new StatusDrawerParams();
statusDrawerParams.setType(RetrieveFeedsAsyncTask.Type.GNU_GROUP_TIMELINE);
statusDrawerParams.setTargetedId(null);
statusDrawerParams.setOnWifi(isOnWifi);
statusDrawerParams.setStatuses(this.statuses);
statusListAdapter = new StatusListAdapter(statusDrawerParams);
lv_status.setAdapter(statusListAdapter);
setTitle(String.format("!%s", groupname));
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {

View File

@ -41,6 +41,7 @@ import app.fedilab.android.R;
import app.fedilab.android.asynctasks.RetrieveFeedsAsyncTask;
import app.fedilab.android.client.APIResponse;
import app.fedilab.android.client.Entities.Status;
import app.fedilab.android.client.Entities.StatusDrawerParams;
import app.fedilab.android.drawers.StatusListAdapter;
import app.fedilab.android.helper.Helper;
import app.fedilab.android.interfaces.OnRetrieveFeedsInterface;
@ -119,7 +120,12 @@ public class HashTagActivity extends BaseActivity implements OnRetrieveFeedsInte
textviewNoAction = findViewById(R.id.no_action);
mainLoader.setVisibility(View.VISIBLE);
nextElementLoader.setVisibility(View.GONE);
statusListAdapter = new StatusListAdapter(RetrieveFeedsAsyncTask.Type.TAG, null, isOnWifi, this.statuses);
StatusDrawerParams statusDrawerParams = new StatusDrawerParams();
statusDrawerParams.setType(RetrieveFeedsAsyncTask.Type.TAG);
statusDrawerParams.setTargetedId(null);
statusDrawerParams.setOnWifi(isOnWifi);
statusDrawerParams.setStatuses(this.statuses);
statusListAdapter = new StatusListAdapter(statusDrawerParams);
lv_status.setAdapter(statusListAdapter);
setTitle(String.format("#%s", tag));
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {

View File

@ -48,6 +48,7 @@ import app.fedilab.android.asynctasks.ManageListsAsyncTask;
import app.fedilab.android.asynctasks.RetrieveFeedsAsyncTask;
import app.fedilab.android.client.APIResponse;
import app.fedilab.android.client.Entities.Status;
import app.fedilab.android.client.Entities.StatusDrawerParams;
import app.fedilab.android.drawers.StatusListAdapter;
import app.fedilab.android.helper.Helper;
import app.fedilab.android.interfaces.OnListActionInterface;
@ -121,8 +122,12 @@ public class ListActivity extends BaseActivity implements OnListActionInterface
mainLoader.setVisibility(View.VISIBLE);
nextElementLoader.setVisibility(View.GONE);
boolean isOnWifi = Helper.isOnWIFI(ListActivity.this);
statusListAdapter = new StatusListAdapter(RetrieveFeedsAsyncTask.Type.LIST, null, isOnWifi, this.statuses);
StatusDrawerParams statusDrawerParams = new StatusDrawerParams();
statusDrawerParams.setType(RetrieveFeedsAsyncTask.Type.LIST);
statusDrawerParams.setTargetedId(null);
statusDrawerParams.setOnWifi(isOnWifi);
statusDrawerParams.setStatuses(this.statuses);
statusListAdapter = new StatusListAdapter(statusDrawerParams);
lv_status.setAdapter(statusListAdapter);
mLayoutManager = new LinearLayoutManager(ListActivity.this);

View File

@ -70,6 +70,7 @@ import app.fedilab.android.client.APIResponse;
import app.fedilab.android.client.Entities.Account;
import app.fedilab.android.client.Entities.Statistics;
import app.fedilab.android.client.Entities.Status;
import app.fedilab.android.client.Entities.StatusDrawerParams;
import app.fedilab.android.drawers.StatusListAdapter;
import app.fedilab.android.helper.FilterToots;
import app.fedilab.android.helper.Helper;
@ -204,7 +205,12 @@ public class OwnerStatusActivity extends BaseActivity implements OnRetrieveFeeds
boolean isOnWifi = Helper.isOnWIFI(OwnerStatusActivity.this);
String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null);
statusListAdapter = new StatusListAdapter(RetrieveFeedsAsyncTask.Type.CACHE_STATUS, userId, isOnWifi, this.statuses);
StatusDrawerParams statusDrawerParams = new StatusDrawerParams();
statusDrawerParams.setType(RetrieveFeedsAsyncTask.Type.CACHE_STATUS);
statusDrawerParams.setTargetedId(userId);
statusDrawerParams.setOnWifi(isOnWifi);
statusDrawerParams.setStatuses(this.statuses);
statusListAdapter = new StatusListAdapter(statusDrawerParams);
lv_status.setAdapter(statusListAdapter);
mLayoutManager = new LinearLayoutManager(OwnerStatusActivity.this);
lv_status.setLayoutManager(mLayoutManager);

View File

@ -95,6 +95,7 @@ import app.fedilab.android.client.Entities.Error;
import app.fedilab.android.client.Entities.Peertube;
import app.fedilab.android.client.Entities.Playlist;
import app.fedilab.android.client.Entities.Status;
import app.fedilab.android.client.Entities.StatusDrawerParams;
import app.fedilab.android.client.TLSSocketFactory;
import app.fedilab.android.drawers.StatusListAdapter;
import app.fedilab.android.helper.CrossActions;
@ -765,7 +766,12 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE);
boolean isOnWifi = Helper.isOnWIFI(PeertubeActivity.this);
String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null);
StatusListAdapter statusListAdapter = new StatusListAdapter(RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE, userId, isOnWifi, statuses);
StatusDrawerParams statusDrawerParams = new StatusDrawerParams();
statusDrawerParams.setType(RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE);
statusDrawerParams.setTargetedId(userId);
statusDrawerParams.setOnWifi(isOnWifi);
statusDrawerParams.setStatuses(statuses);
StatusListAdapter statusListAdapter = new StatusListAdapter(statusDrawerParams);
LinearLayoutManager mLayoutManager = new LinearLayoutManager(PeertubeActivity.this);
lv_comments.setLayoutManager(mLayoutManager);
lv_comments.setNestedScrollingEnabled(false);

View File

@ -94,6 +94,7 @@ import app.fedilab.android.client.Entities.ManageTimelines;
import app.fedilab.android.client.Entities.Relationship;
import app.fedilab.android.client.Entities.RemoteInstance;
import app.fedilab.android.client.Entities.Status;
import app.fedilab.android.client.Entities.StatusDrawerParams;
import app.fedilab.android.client.Entities.UserNote;
import app.fedilab.android.client.HttpsConnection;
import app.fedilab.android.drawers.IdentityProofsAdapter;
@ -214,7 +215,12 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
show_replies = true;
statuses = new ArrayList<>();
boolean isOnWifi = Helper.isOnWIFI(getApplicationContext());
statusListAdapter = new StatusListAdapter(RetrieveFeedsAsyncTask.Type.USER, accountId, isOnWifi, this.statuses);
StatusDrawerParams statusDrawerParams = new StatusDrawerParams();
statusDrawerParams.setType(RetrieveFeedsAsyncTask.Type.USER);
statusDrawerParams.setTargetedId(accountId);
statusDrawerParams.setOnWifi(isOnWifi);
statusDrawerParams.setStatuses(statuses);
statusListAdapter = new StatusListAdapter(statusDrawerParams);
showMediaOnly = false;
showPinned = false;

View File

@ -46,6 +46,7 @@ import app.fedilab.android.asynctasks.UpdateAccountInfoAsyncTask;
import app.fedilab.android.client.APIResponse;
import app.fedilab.android.client.Entities.Account;
import app.fedilab.android.client.Entities.Status;
import app.fedilab.android.client.Entities.StatusDrawerParams;
import app.fedilab.android.drawers.StatusListAdapter;
import app.fedilab.android.helper.Helper;
import app.fedilab.android.interfaces.OnRetrieveContextInterface;
@ -233,7 +234,13 @@ public class ShowConversationActivity extends BaseActivity implements OnRetrieve
statuses.add(initialStatus);
else
statuses.add(detailsStatus);
statusListAdapter = new StatusListAdapter(0, null, isOnWifi, statuses);
StatusDrawerParams statusDrawerParams = new StatusDrawerParams();
statusDrawerParams.setPosition(0);
statusDrawerParams.setTargetedId(null);
statusDrawerParams.setOnWifi(isOnWifi);
statusDrawerParams.setStatuses(statuses);
statusListAdapter = new StatusListAdapter(statusDrawerParams);
final LinearLayoutManager mLayoutManager;
mLayoutManager = new LinearLayoutManager(this);
@ -361,7 +368,12 @@ public class ShowConversationActivity extends BaseActivity implements OnRetrieve
for (Status status : apiResponse.getContext().getAncestors()) {
statuses.add(0, status);
}
statusListAdapter = new StatusListAdapter((statuses.size() - 1 - i), null, isOnWifi, statuses);
StatusDrawerParams statusDrawerParams = new StatusDrawerParams();
statusDrawerParams.setPosition((statuses.size() - 1 - i));
statusDrawerParams.setTargetedId(null);
statusDrawerParams.setOnWifi(isOnWifi);
statusDrawerParams.setStatuses(statuses);
statusListAdapter = new StatusListAdapter(statusDrawerParams);
statusListAdapter.setConversationPosition((statuses.size() - 1 - i));
decorate(0);
final LinearLayoutManager mLayoutManager;

View File

@ -1,4 +1,86 @@
package app.fedilab.android.client.Entities;
import java.util.List;
import app.fedilab.android.asynctasks.RetrieveFeedsAsyncTask;
/* Copyright 2020 Thomas Schneider
*
* This file is a part of Fedilab
*
* This program is free software; you can redistribute it and/or modify it under the terms of the
* GNU General Public License as published by the Free Software Foundation; either version 3 of the
* License, or (at your option) any later version.
*
* Fedilab is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
* Public License for more details.
*
* You should have received a copy of the GNU General Public License along with Fedilab; if not,
* see <http://www.gnu.org/licenses>. */
public class StatusDrawerParams {
private List<Status> statuses;
private RetrieveFeedsAsyncTask.Type type;
private String targetedId;
private boolean isOnWifi;
private String instanceType;
private TagTimeline tagTimeline;
private int position;
public List<Status> getStatuses() {
return statuses;
}
public void setStatuses(List<Status> statuses) {
this.statuses = statuses;
}
public RetrieveFeedsAsyncTask.Type getType() {
return type;
}
public void setType(RetrieveFeedsAsyncTask.Type type) {
this.type = type;
}
public String getTargetedId() {
return targetedId;
}
public void setTargetedId(String targetedId) {
this.targetedId = targetedId;
}
public boolean isOnWifi() {
return isOnWifi;
}
public void setOnWifi(boolean onWifi) {
isOnWifi = onWifi;
}
public String getInstanceType() {
return instanceType;
}
public void setInstanceType(String instanceType) {
this.instanceType = instanceType;
}
public TagTimeline getTagTimeline() {
return tagTimeline;
}
public void setTagTimeline(TagTimeline tagTimeline) {
this.tagTimeline = tagTimeline;
}
public int getPosition() {
return position;
}
public void setPosition(int position) {
this.position = position;
}
}

View File

@ -94,6 +94,7 @@ import app.fedilab.android.client.Entities.Emojis;
import app.fedilab.android.client.Entities.Error;
import app.fedilab.android.client.Entities.Notification;
import app.fedilab.android.client.Entities.Status;
import app.fedilab.android.client.Entities.StatusDrawerParams;
import app.fedilab.android.helper.CrossActions;
import app.fedilab.android.helper.Helper;
import app.fedilab.android.helper.MastalabAutoCompleteTextView;
@ -456,7 +457,12 @@ public class PixelfedListAdapter extends RecyclerView.Adapter implements OnPostA
holder.pixelfed_comments.setVisibility(View.VISIBLE);
in_reply_to_status = status.getReblog() != null ? status.getReblog().getId() : status.getId();
if (status.isCommentsFetched()) {
StatusListAdapter statusListAdapter = new StatusListAdapter(0, status.getId(), true, status.getComments());
StatusDrawerParams statusDrawerParams = new StatusDrawerParams();
statusDrawerParams.setPosition(0);
statusDrawerParams.setTargetedId(status.getId());
statusDrawerParams.setOnWifi(true);
statusDrawerParams.setStatuses(status.getComments());
StatusListAdapter statusListAdapter = new StatusListAdapter(statusDrawerParams);
final LinearLayoutManager mLayoutManager;
mLayoutManager = new LinearLayoutManager(context);
holder.lv_comments.setLayoutManager(mLayoutManager);

View File

@ -19,7 +19,6 @@ import android.app.Activity;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.sqlite.SQLiteDatabase;
@ -56,7 +55,6 @@ import android.webkit.WebViewClient;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.FrameLayout;
@ -144,6 +142,7 @@ import app.fedilab.android.client.Entities.Poll;
import app.fedilab.android.client.Entities.PollOptions;
import app.fedilab.android.client.Entities.Relationship;
import app.fedilab.android.client.Entities.Status;
import app.fedilab.android.client.Entities.StatusDrawerParams;
import app.fedilab.android.client.Entities.StoredStatus;
import app.fedilab.android.client.Entities.TagTimeline;
import app.fedilab.android.fragments.DisplayStatusFragment;
@ -225,6 +224,26 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
private Status statusForQuickReply;
private String instanceType;
public StatusListAdapter(StatusDrawerParams statusDrawerParams){
statuses = statusDrawerParams.getStatuses();
isOnWifi = statusDrawerParams.isOnWifi();
statusListAdapter = this;
type = statusDrawerParams.getType();
targetedId = statusDrawerParams.getTargetedId();
tagTimeline = statusDrawerParams.getTagTimeline();
conversationPosition = statusDrawerParams.getPosition();
redraft = false;
lstHolders = new ArrayList<>();
toot_content = null;
toot_cw_content = null;
tootReply = null;
currentToId = -1;
instanceType = statusDrawerParams.getInstanceType();
}
private Runnable updateAnimatedEmoji = new Runnable() {
@Override
public void run() {
@ -248,86 +267,6 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
private Handler mHandler = new Handler();
public StatusListAdapter(RetrieveFeedsAsyncTask.Type type, String targetedId, boolean isOnWifi, List<Status> statuses) {
super();
this.statuses = statuses;
this.isOnWifi = isOnWifi;
statusListAdapter = this;
this.type = type;
this.targetedId = targetedId;
redraft = false;
lstHolders = new ArrayList<>();
toot_content = null;
toot_cw_content = null;
tootReply = null;
currentToId = -1;
}
public StatusListAdapter(String instanceType, RetrieveFeedsAsyncTask.Type type, String targetedId, boolean isOnWifi, List<Status> statuses) {
super();
this.statuses = statuses;
this.isOnWifi = isOnWifi;
statusListAdapter = this;
this.type = type;
this.targetedId = targetedId;
redraft = false;
lstHolders = new ArrayList<>();
toot_content = null;
toot_cw_content = null;
tootReply = null;
currentToId = -1;
this.instanceType = instanceType;
}
public StatusListAdapter(TagTimeline tagTimeline, String targetedId, boolean isOnWifi, List<Status> statuses) {
super();
this.statuses = statuses;
this.isOnWifi = isOnWifi;
statusListAdapter = this;
this.type = RetrieveFeedsAsyncTask.Type.TAG;
this.targetedId = targetedId;
redraft = false;
this.tagTimeline = tagTimeline;
lstHolders = new ArrayList<>();
toot_content = null;
toot_cw_content = null;
tootReply = null;
currentToId = -1;
}
public StatusListAdapter(String instanceType, TagTimeline tagTimeline, String targetedId, boolean isOnWifi, List<Status> statuses) {
super();
this.statuses = statuses;
this.isOnWifi = isOnWifi;
statusListAdapter = this;
this.type = RetrieveFeedsAsyncTask.Type.TAG;
this.targetedId = targetedId;
redraft = false;
this.tagTimeline = tagTimeline;
this.instanceType = instanceType;
lstHolders = new ArrayList<>();
toot_content = null;
toot_cw_content = null;
tootReply = null;
currentToId = -1;
}
public StatusListAdapter(int position, String targetedId, boolean isOnWifi, List<Status> statuses) {
this.statuses = statuses;
this.isOnWifi = isOnWifi;
statusListAdapter = this;
this.type = RetrieveFeedsAsyncTask.Type.CONTEXT;
this.conversationPosition = position;
this.targetedId = targetedId;
redraft = false;
lstHolders = new ArrayList<>();
toot_content = null;
toot_cw_content = null;
tootReply = null;
currentToId = -1;
}
@Override
public void onAttachedToRecyclerView(@NotNull RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
@ -1041,7 +980,6 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
holder.status_toot_date.setTextSize(TypedValue.COMPLEX_UNIT_SP, (float)(12 * textSizePercent) / 100);
holder.status_content_translated.setTextSize(TypedValue.COMPLEX_UNIT_SP, (float)(14 * textSizePercent) / 100);
}
boolean disableAnimatedEmoji = sharedpreferences.getBoolean(Helper.SET_DISABLE_ANIMATED_EMOJI, false);
holder.status_spoiler.setTextSize(TypedValue.COMPLEX_UNIT_SP, (float)(14 * textSizePercent) / 100);
@ -1348,7 +1286,6 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
holder.status_spoiler.setOnClickListener(v -> {
if (type != RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE && type != RetrieveFeedsAsyncTask.Type.NEWS) {
Intent intent = new Intent(context, ShowConversationActivity.class);
int position = closePanels();
Bundle b = new Bundle();
if (social == UpdateAccountInfoAsyncTask.SOCIAL.GNU || social == UpdateAccountInfoAsyncTask.SOCIAL.FRIENDICA)
b.putString("conversationId", status.getConversationId());
@ -1569,15 +1506,12 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
accountForUrl = status.getReblog().getAccount();
holder.status_account_displayname.setVisibility(View.VISIBLE);
holder.status_account_displayname.setText(context.getResources().getString(R.string.reblog_by, status.getAccount().getUsername()));
holder.status_account_displayname.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
holder.status_account_displayname.setOnClickListener(v -> {
Intent intent = new Intent(context, ShowAccountActivity.class);
Bundle b = new Bundle();
b.putParcelable("account", status.getAccount());
intent.putExtras(b);
context.startActivity(intent);
}
});
if (status.getReblog().getAccount().getDisplay_name().length() > 0)
holder.status_account_displayname_owner.setText(status.getDisplayNameSpan(), TextView.BufferType.SPANNABLE);
@ -2285,9 +2219,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
holder.status_cardview_video.setVisibility(View.GONE);
}
});
holder.webview_preview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
holder.webview_preview.setOnClickListener(v -> {
String url = finalSrc;
if (url != null) {
boolean invidious = sharedpreferences.getBoolean(Helper.SET_INVIDIOUS, false);
@ -2310,7 +2242,6 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
status.getReblog().setWebviewURL(url);
}
notifyStatusChanged(status);
}
});
} else {
holder.status_cardview.setVisibility(View.GONE);
@ -2736,15 +2667,11 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
popup.getMenu().findItem(R.id.action_custom_sharing).setVisible(true);
MenuItem itemBookmark = popup.getMenu().findItem(R.id.action_bookmark);
if (itemBookmark.getActionView() != null)
itemBookmark.getActionView().setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
itemBookmark.getActionView().setOnLongClickListener(v1 -> {
CrossActions.doCrossBookmark(context, status, statusListAdapter, true);
return true;
}
});
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
popup.setOnMenuItemClickListener(item -> {
AlertDialog.Builder builderInner;
final API.StatusAction doAction;
switch (item.getItemId()) {
@ -2963,16 +2890,9 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
input.setLayoutParams(lp);
builderInner.setView(input);
}
builderInner.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builderInner.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss());
final EditText finalInput = input;
builderInner.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
builderInner.setPositiveButton(R.string.yes, (dialog, which) -> {
if (doAction == API.StatusAction.UNSTATUS) {
String targetedId = status.getId();
new PostActionAsyncTask(context, doAction, targetedId, StatusListAdapter.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
@ -3030,11 +2950,9 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
new PostActionAsyncTask(context, doAction, targetedId, StatusListAdapter.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
dialog.dismiss();
}
});
builderInner.show();
return true;
}
});
popup.show();
});

View File

@ -73,6 +73,7 @@ import app.fedilab.android.client.Entities.Peertube;
import app.fedilab.android.client.Entities.RemoteInstance;
import app.fedilab.android.client.Entities.RetrieveFeedsParam;
import app.fedilab.android.client.Entities.Status;
import app.fedilab.android.client.Entities.StatusDrawerParams;
import app.fedilab.android.client.Entities.TagTimeline;
import app.fedilab.android.drawers.ArtListAdapter;
import app.fedilab.android.drawers.PeertubeAdapter;
@ -233,12 +234,24 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
List<TagTimeline> tagTimelines = new SearchDAO(context, db).getTimelineInfo(tag);
if (tagTimelines != null && tagTimelines.size() > 0) {
tagTimeline = tagTimelines.get(0);
statusListAdapter = new StatusListAdapter(tagTimeline, targetedId, isOnWifi, this.statuses);
StatusDrawerParams statusDrawerParams = new StatusDrawerParams();
statusDrawerParams.setTagTimeline(tagTimelines.get(0));
statusDrawerParams.setTargetedId(targetedId);
statusDrawerParams.setOnWifi(isOnWifi);
statusDrawerParams.setStatuses(this.statuses);
statusListAdapter = new StatusListAdapter(statusDrawerParams);
lv_status.setAdapter(statusListAdapter);
}
} else {
BaseMainActivity.displayPeertube = null;
statusListAdapter = new StatusListAdapter(instanceType, type, targetedId, isOnWifi, this.statuses);
StatusDrawerParams statusDrawerParams = new StatusDrawerParams();
statusDrawerParams.setType(type);
statusDrawerParams.setInstanceType(instanceType);
statusDrawerParams.setTargetedId(targetedId);
statusDrawerParams.setOnWifi(isOnWifi);
statusDrawerParams.setStatuses(this.statuses);
statusListAdapter = new StatusListAdapter(statusDrawerParams);
lv_status.setAdapter(statusListAdapter);
}
} else if (instanceType.equals("PEERTUBE")) {
@ -546,7 +559,13 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
//If no item were inserted previously the adapter is created
if (previousPosition == 0) {
boolean isOnWifi = Helper.isOnWIFI(context);
statusListAdapter = new StatusListAdapter(instanceType, type, targetedId, isOnWifi, this.statuses);
StatusDrawerParams statusDrawerParams = new StatusDrawerParams();
statusDrawerParams.setInstanceType(instanceType);
statusDrawerParams.setType(type);
statusDrawerParams.setTargetedId(targetedId);
statusDrawerParams.setOnWifi(isOnWifi);
statusDrawerParams.setStatuses(this.statuses);
statusListAdapter = new StatusListAdapter(statusDrawerParams);
lv_status.setAdapter(statusListAdapter);
} else {
statusListAdapter.notifyItemRangeInserted(previousPosition, apiResponse.getStatuses().size());