Fix search
This commit is contained in:
parent
2df5b95112
commit
a6846e8f55
|
@ -169,7 +169,7 @@ public abstract class BaseMainActivity extends BaseActivity
|
|||
private Activity activity;
|
||||
public static UpdateAccountInfoAsyncTask.SOCIAL social;
|
||||
private final int PICK_IMPORT = 5556;
|
||||
private List<ManageTimelines> timelines;
|
||||
public static List<ManageTimelines> timelines;
|
||||
private BroadcastReceiver hidde_menu;
|
||||
|
||||
public static HashMap<Integer, Fragment> mPageReferenceMap;
|
||||
|
@ -2302,10 +2302,16 @@ public abstract class BaseMainActivity extends BaseActivity
|
|||
}
|
||||
bundle.putInt("timelineId", tl.getId());
|
||||
displayStatusFragment.setArguments(bundle);
|
||||
if( mPageReferenceMap == null){
|
||||
mPageReferenceMap = new HashMap<>();
|
||||
}
|
||||
mPageReferenceMap.put(tl.getPosition(), displayStatusFragment);
|
||||
return displayStatusFragment;
|
||||
}else{
|
||||
TabLayoutNotificationsFragment tabLayoutNotificationsFragment = new TabLayoutNotificationsFragment();
|
||||
if( mPageReferenceMap == null){
|
||||
mPageReferenceMap = new HashMap<>();
|
||||
}
|
||||
mPageReferenceMap.put(tl.getPosition(), tabLayoutNotificationsFragment);
|
||||
return tabLayoutNotificationsFragment;
|
||||
}
|
||||
|
|
|
@ -27,6 +27,8 @@ import android.os.AsyncTask;
|
|||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.google.android.exoplayer2.Timeline;
|
||||
import com.google.android.material.appbar.AppBarLayout;
|
||||
import com.google.android.material.tabs.TabLayout;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
@ -46,6 +48,7 @@ import android.text.style.UnderlineSpan;
|
|||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ImageView;
|
||||
|
@ -69,22 +72,26 @@ import java.util.concurrent.Executors;
|
|||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import app.fedilab.android.asynctasks.ManageListsAsyncTask;
|
||||
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.Attachment;
|
||||
import app.fedilab.android.client.Entities.Error;
|
||||
import app.fedilab.android.client.Entities.InstanceNodeInfo;
|
||||
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.HttpsConnection;
|
||||
import app.fedilab.android.drawers.AccountsInAListAdapter;
|
||||
import app.fedilab.android.drawers.StatusListAdapter;
|
||||
import app.fedilab.android.fragments.DisplayAccountsFragment;
|
||||
import app.fedilab.android.fragments.DisplayStatusFragment;
|
||||
import app.fedilab.android.fragments.TabLayoutTootsFragment;
|
||||
import app.fedilab.android.helper.CrossActions;
|
||||
import app.fedilab.android.helper.Helper;
|
||||
import app.fedilab.android.interfaces.OnListActionInterface;
|
||||
import app.fedilab.android.sqlite.AccountDAO;
|
||||
import app.fedilab.android.sqlite.InstancesDAO;
|
||||
import app.fedilab.android.sqlite.Sqlite;
|
||||
|
@ -105,6 +112,7 @@ import app.fedilab.android.interfaces.OnRetrieveFeedsInterface;
|
|||
import app.fedilab.android.interfaces.OnRetrieveRelationshipInterface;
|
||||
|
||||
import static app.fedilab.android.activities.BaseMainActivity.mutedAccount;
|
||||
import static app.fedilab.android.activities.BaseMainActivity.timelines;
|
||||
import static app.fedilab.android.helper.Helper.THEME_BLACK;
|
||||
import static app.fedilab.android.helper.Helper.THEME_DARK;
|
||||
import static app.fedilab.android.helper.Helper.THEME_LIGHT;
|
||||
|
@ -117,13 +125,13 @@ import static app.fedilab.android.helper.Helper.getLiveInstance;
|
|||
* Show account activity class
|
||||
*/
|
||||
|
||||
public class ShowAccountActivity extends BaseActivity implements OnPostActionInterface, OnRetrieveAccountInterface, OnRetrieveFeedsAccountInterface, OnRetrieveRelationshipInterface, OnRetrieveFeedsInterface, OnRetrieveEmojiAccountInterface {
|
||||
public class ShowAccountActivity extends BaseActivity implements OnPostActionInterface, OnRetrieveAccountInterface, OnRetrieveFeedsAccountInterface, OnRetrieveRelationshipInterface, OnRetrieveFeedsInterface, OnRetrieveEmojiAccountInterface, OnListActionInterface {
|
||||
|
||||
|
||||
private List<Status> statuses;
|
||||
private StatusListAdapter statusListAdapter;
|
||||
private ImageButton account_follow;
|
||||
|
||||
private String addToList;
|
||||
private ViewPager mPager;
|
||||
private TabLayout tabLayout;
|
||||
private TextView account_note;
|
||||
|
@ -149,6 +157,8 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
|
|||
private AsyncTask<Void, Void, Void> accountAsync;
|
||||
private AsyncTask<Void, Void, Void> retrieveRelationship;
|
||||
|
||||
|
||||
|
||||
public enum action{
|
||||
FOLLOW,
|
||||
UNFOLLOW,
|
||||
|
@ -190,6 +200,7 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
|
|||
account_un = findViewById(R.id.account_un);
|
||||
TextView account_type = findViewById(R.id.account_type);
|
||||
account_bot = findViewById(R.id.account_bot);
|
||||
addToList = null;
|
||||
switch (theme){
|
||||
case THEME_LIGHT:
|
||||
account_pp.setBackgroundResource(R.drawable.account_pp_border_light);
|
||||
|
@ -1138,6 +1149,7 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
|
|||
popup.getMenu().findItem(R.id.action_hide_boost).setVisible(false);
|
||||
popup.getMenu().findItem(R.id.action_endorse).setVisible(false);
|
||||
popup.getMenu().findItem(R.id.action_direct_message).setVisible(false);
|
||||
popup.getMenu().findItem(R.id.action_add_to_list).setVisible(false);
|
||||
stringArrayConf = getResources().getStringArray(R.array.more_action_owner_confirm);
|
||||
}else {
|
||||
popup.getMenu().findItem(R.id.action_block).setVisible(true);
|
||||
|
@ -1149,6 +1161,7 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
|
|||
popup.getMenu().findItem(R.id.action_hide_boost).setVisible(false);
|
||||
popup.getMenu().findItem(R.id.action_endorse).setVisible(false);
|
||||
popup.getMenu().findItem(R.id.action_direct_message).setVisible(false);
|
||||
popup.getMenu().findItem(R.id.action_add_to_list).setVisible(false);
|
||||
}
|
||||
if( relationship != null){
|
||||
if( !relationship.isFollowing()) {
|
||||
|
@ -1303,6 +1316,50 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
|
|||
intent.putExtras(b);
|
||||
startActivity(intent);
|
||||
return true;
|
||||
case R.id.action_add_to_list:
|
||||
if( timelines!= null){
|
||||
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(ShowAccountActivity.this, android.R.layout.select_dialog_item);
|
||||
boolean hasLists = false;
|
||||
for(ManageTimelines timeline: timelines){
|
||||
if( timeline.getListTimeline() != null){
|
||||
arrayAdapter.add(timeline.getListTimeline().getTitle());
|
||||
hasLists = true;
|
||||
}
|
||||
}
|
||||
if(! hasLists){
|
||||
Toasty.info(getApplicationContext(), getString(R.string.action_lists_empty), Toast.LENGTH_SHORT).show();
|
||||
return true;
|
||||
}
|
||||
AlertDialog.Builder builderSingle = new AlertDialog.Builder(ShowAccountActivity.this, style);
|
||||
builderSingle.setTitle(getString(R.string.action_lists_add_to));
|
||||
builderSingle.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
});
|
||||
|
||||
builderSingle.setAdapter(arrayAdapter, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
String listTitle = arrayAdapter.getItem(which);
|
||||
for(ManageTimelines timeline: timelines){
|
||||
if( timeline.getListTimeline() != null && timeline.getListTimeline().getTitle().equals(listTitle)){
|
||||
app.fedilab.android.client.Entities.List list = timeline.getListTimeline();
|
||||
if( relationship == null || !relationship.isFollowing()){
|
||||
addToList = list.getId();
|
||||
new PostActionAsyncTask(getApplicationContext(), API.StatusAction.FOLLOW, account.getId(), ShowAccountActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||
}else{
|
||||
new ManageListsAsyncTask(ShowAccountActivity.this, ManageListsAsyncTask.action.ADD_USERS, new String[]{account.getId()}, null, list.getId(), null, ShowAccountActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
builderSingle.show();
|
||||
}
|
||||
return true;
|
||||
case R.id.action_open_browser:
|
||||
if( accountUrl != null) {
|
||||
if( !accountUrl.startsWith("http://") && ! accountUrl.startsWith("https://"))
|
||||
|
@ -1427,7 +1484,11 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
|
|||
Toasty.error(getApplicationContext(), error.getError(),Toast.LENGTH_LONG).show();
|
||||
return;
|
||||
}
|
||||
Helper.manageMessageStatusCode(getApplicationContext(), statusCode, statusAction);
|
||||
if( addToList != null){
|
||||
new ManageListsAsyncTask(ShowAccountActivity.this, ManageListsAsyncTask.action.ADD_USERS, new String[]{account.getId()}, null, addToList, null, ShowAccountActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||
}else {
|
||||
Helper.manageMessageStatusCode(getApplicationContext(), statusCode, statusAction);
|
||||
}
|
||||
String target = account.getId();
|
||||
//IF action is unfollow or mute, sends an intent to remove statuses
|
||||
if( statusAction == API.StatusAction.UNFOLLOW || statusAction == API.StatusAction.MUTE){
|
||||
|
@ -1456,6 +1517,17 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
|
|||
ManageAccount();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActionDone(ManageListsAsyncTask.action actionType, APIResponse apiResponse, int statusCode) {
|
||||
if (apiResponse.getError() != null) {
|
||||
if ( !apiResponse.getError().getError().startsWith("404 -"))
|
||||
Toasty.error(ShowAccountActivity.this, apiResponse.getError().getError(), Toast.LENGTH_LONG).show();
|
||||
return;
|
||||
}
|
||||
if( actionType == ManageListsAsyncTask.action.ADD_USERS) {
|
||||
Toasty.success(ShowAccountActivity.this, getString(R.string.action_lists_add_user), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public boolean showReplies(){
|
||||
|
|
|
@ -6,6 +6,11 @@
|
|||
android:title="@string/direct_message"
|
||||
android:icon="@drawable/ic_mail_outline_toot"
|
||||
app:showAsAction="ifRoom" />
|
||||
<item
|
||||
android:id="@+id/action_add_to_list"
|
||||
android:title="@string/action_lists_add_to"
|
||||
android:icon="@drawable/ic_list"
|
||||
app:showAsAction="ifRoom" />
|
||||
<item
|
||||
android:id="@+id/action_open_browser"
|
||||
android:title="@string/action_open_in_web"
|
||||
|
|
|
@ -525,7 +525,8 @@
|
|||
<string name="action_lists_title_placeholder">New list title</string>
|
||||
<string name="action_lists_search_users">Search among people you follow</string>
|
||||
<string name="action_lists_owner">Your lists</string>
|
||||
|
||||
<string name="action_lists_add_user">The account was added to the list!</string>
|
||||
<string name="action_lists_empty">You don\'t have any lists yet!</string>
|
||||
<!-- Migration -->
|
||||
<string name="account_moved_to">%1$s has moved to %2$s</string>
|
||||
|
||||
|
|
Loading…
Reference in New Issue