Fix search
This commit is contained in:
parent
2df5b95112
commit
a6846e8f55
|
@ -169,7 +169,7 @@ public abstract class BaseMainActivity extends BaseActivity
|
||||||
private Activity activity;
|
private Activity activity;
|
||||||
public static UpdateAccountInfoAsyncTask.SOCIAL social;
|
public static UpdateAccountInfoAsyncTask.SOCIAL social;
|
||||||
private final int PICK_IMPORT = 5556;
|
private final int PICK_IMPORT = 5556;
|
||||||
private List<ManageTimelines> timelines;
|
public static List<ManageTimelines> timelines;
|
||||||
private BroadcastReceiver hidde_menu;
|
private BroadcastReceiver hidde_menu;
|
||||||
|
|
||||||
public static HashMap<Integer, Fragment> mPageReferenceMap;
|
public static HashMap<Integer, Fragment> mPageReferenceMap;
|
||||||
|
@ -2302,10 +2302,16 @@ public abstract class BaseMainActivity extends BaseActivity
|
||||||
}
|
}
|
||||||
bundle.putInt("timelineId", tl.getId());
|
bundle.putInt("timelineId", tl.getId());
|
||||||
displayStatusFragment.setArguments(bundle);
|
displayStatusFragment.setArguments(bundle);
|
||||||
|
if( mPageReferenceMap == null){
|
||||||
|
mPageReferenceMap = new HashMap<>();
|
||||||
|
}
|
||||||
mPageReferenceMap.put(tl.getPosition(), displayStatusFragment);
|
mPageReferenceMap.put(tl.getPosition(), displayStatusFragment);
|
||||||
return displayStatusFragment;
|
return displayStatusFragment;
|
||||||
}else{
|
}else{
|
||||||
TabLayoutNotificationsFragment tabLayoutNotificationsFragment = new TabLayoutNotificationsFragment();
|
TabLayoutNotificationsFragment tabLayoutNotificationsFragment = new TabLayoutNotificationsFragment();
|
||||||
|
if( mPageReferenceMap == null){
|
||||||
|
mPageReferenceMap = new HashMap<>();
|
||||||
|
}
|
||||||
mPageReferenceMap.put(tl.getPosition(), tabLayoutNotificationsFragment);
|
mPageReferenceMap.put(tl.getPosition(), tabLayoutNotificationsFragment);
|
||||||
return tabLayoutNotificationsFragment;
|
return tabLayoutNotificationsFragment;
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,8 @@ import android.os.AsyncTask;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import com.google.android.exoplayer2.Timeline;
|
||||||
import com.google.android.material.appbar.AppBarLayout;
|
import com.google.android.material.appbar.AppBarLayout;
|
||||||
import com.google.android.material.tabs.TabLayout;
|
import com.google.android.material.tabs.TabLayout;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
@ -46,6 +48,7 @@ import android.text.style.UnderlineSpan;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.widget.ArrayAdapter;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.ImageButton;
|
import android.widget.ImageButton;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
@ -69,22 +72,26 @@ import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import app.fedilab.android.asynctasks.ManageListsAsyncTask;
|
||||||
import app.fedilab.android.client.API;
|
import app.fedilab.android.client.API;
|
||||||
import app.fedilab.android.client.APIResponse;
|
import app.fedilab.android.client.APIResponse;
|
||||||
import app.fedilab.android.client.Entities.Account;
|
import app.fedilab.android.client.Entities.Account;
|
||||||
import app.fedilab.android.client.Entities.Attachment;
|
import app.fedilab.android.client.Entities.Attachment;
|
||||||
import app.fedilab.android.client.Entities.Error;
|
import app.fedilab.android.client.Entities.Error;
|
||||||
import app.fedilab.android.client.Entities.InstanceNodeInfo;
|
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.Relationship;
|
||||||
import app.fedilab.android.client.Entities.RemoteInstance;
|
import app.fedilab.android.client.Entities.RemoteInstance;
|
||||||
import app.fedilab.android.client.Entities.Status;
|
import app.fedilab.android.client.Entities.Status;
|
||||||
import app.fedilab.android.client.HttpsConnection;
|
import app.fedilab.android.client.HttpsConnection;
|
||||||
|
import app.fedilab.android.drawers.AccountsInAListAdapter;
|
||||||
import app.fedilab.android.drawers.StatusListAdapter;
|
import app.fedilab.android.drawers.StatusListAdapter;
|
||||||
import app.fedilab.android.fragments.DisplayAccountsFragment;
|
import app.fedilab.android.fragments.DisplayAccountsFragment;
|
||||||
import app.fedilab.android.fragments.DisplayStatusFragment;
|
import app.fedilab.android.fragments.DisplayStatusFragment;
|
||||||
import app.fedilab.android.fragments.TabLayoutTootsFragment;
|
import app.fedilab.android.fragments.TabLayoutTootsFragment;
|
||||||
import app.fedilab.android.helper.CrossActions;
|
import app.fedilab.android.helper.CrossActions;
|
||||||
import app.fedilab.android.helper.Helper;
|
import app.fedilab.android.helper.Helper;
|
||||||
|
import app.fedilab.android.interfaces.OnListActionInterface;
|
||||||
import app.fedilab.android.sqlite.AccountDAO;
|
import app.fedilab.android.sqlite.AccountDAO;
|
||||||
import app.fedilab.android.sqlite.InstancesDAO;
|
import app.fedilab.android.sqlite.InstancesDAO;
|
||||||
import app.fedilab.android.sqlite.Sqlite;
|
import app.fedilab.android.sqlite.Sqlite;
|
||||||
|
@ -105,6 +112,7 @@ import app.fedilab.android.interfaces.OnRetrieveFeedsInterface;
|
||||||
import app.fedilab.android.interfaces.OnRetrieveRelationshipInterface;
|
import app.fedilab.android.interfaces.OnRetrieveRelationshipInterface;
|
||||||
|
|
||||||
import static app.fedilab.android.activities.BaseMainActivity.mutedAccount;
|
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_BLACK;
|
||||||
import static app.fedilab.android.helper.Helper.THEME_DARK;
|
import static app.fedilab.android.helper.Helper.THEME_DARK;
|
||||||
import static app.fedilab.android.helper.Helper.THEME_LIGHT;
|
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
|
* 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 List<Status> statuses;
|
||||||
private StatusListAdapter statusListAdapter;
|
private StatusListAdapter statusListAdapter;
|
||||||
private ImageButton account_follow;
|
private ImageButton account_follow;
|
||||||
|
private String addToList;
|
||||||
private ViewPager mPager;
|
private ViewPager mPager;
|
||||||
private TabLayout tabLayout;
|
private TabLayout tabLayout;
|
||||||
private TextView account_note;
|
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> accountAsync;
|
||||||
private AsyncTask<Void, Void, Void> retrieveRelationship;
|
private AsyncTask<Void, Void, Void> retrieveRelationship;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public enum action{
|
public enum action{
|
||||||
FOLLOW,
|
FOLLOW,
|
||||||
UNFOLLOW,
|
UNFOLLOW,
|
||||||
|
@ -190,6 +200,7 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
|
||||||
account_un = findViewById(R.id.account_un);
|
account_un = findViewById(R.id.account_un);
|
||||||
TextView account_type = findViewById(R.id.account_type);
|
TextView account_type = findViewById(R.id.account_type);
|
||||||
account_bot = findViewById(R.id.account_bot);
|
account_bot = findViewById(R.id.account_bot);
|
||||||
|
addToList = null;
|
||||||
switch (theme){
|
switch (theme){
|
||||||
case THEME_LIGHT:
|
case THEME_LIGHT:
|
||||||
account_pp.setBackgroundResource(R.drawable.account_pp_border_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_hide_boost).setVisible(false);
|
||||||
popup.getMenu().findItem(R.id.action_endorse).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_direct_message).setVisible(false);
|
||||||
|
popup.getMenu().findItem(R.id.action_add_to_list).setVisible(false);
|
||||||
stringArrayConf = getResources().getStringArray(R.array.more_action_owner_confirm);
|
stringArrayConf = getResources().getStringArray(R.array.more_action_owner_confirm);
|
||||||
}else {
|
}else {
|
||||||
popup.getMenu().findItem(R.id.action_block).setVisible(true);
|
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_hide_boost).setVisible(false);
|
||||||
popup.getMenu().findItem(R.id.action_endorse).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_direct_message).setVisible(false);
|
||||||
|
popup.getMenu().findItem(R.id.action_add_to_list).setVisible(false);
|
||||||
}
|
}
|
||||||
if( relationship != null){
|
if( relationship != null){
|
||||||
if( !relationship.isFollowing()) {
|
if( !relationship.isFollowing()) {
|
||||||
|
@ -1303,6 +1316,50 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
|
||||||
intent.putExtras(b);
|
intent.putExtras(b);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
return true;
|
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:
|
case R.id.action_open_browser:
|
||||||
if( accountUrl != null) {
|
if( accountUrl != null) {
|
||||||
if( !accountUrl.startsWith("http://") && ! accountUrl.startsWith("https://"))
|
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();
|
Toasty.error(getApplicationContext(), error.getError(),Toast.LENGTH_LONG).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
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);
|
Helper.manageMessageStatusCode(getApplicationContext(), statusCode, statusAction);
|
||||||
|
}
|
||||||
String target = account.getId();
|
String target = account.getId();
|
||||||
//IF action is unfollow or mute, sends an intent to remove statuses
|
//IF action is unfollow or mute, sends an intent to remove statuses
|
||||||
if( statusAction == API.StatusAction.UNFOLLOW || statusAction == API.StatusAction.MUTE){
|
if( statusAction == API.StatusAction.UNFOLLOW || statusAction == API.StatusAction.MUTE){
|
||||||
|
@ -1456,6 +1517,17 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
|
||||||
ManageAccount();
|
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(){
|
public boolean showReplies(){
|
||||||
|
|
|
@ -6,6 +6,11 @@
|
||||||
android:title="@string/direct_message"
|
android:title="@string/direct_message"
|
||||||
android:icon="@drawable/ic_mail_outline_toot"
|
android:icon="@drawable/ic_mail_outline_toot"
|
||||||
app:showAsAction="ifRoom" />
|
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
|
<item
|
||||||
android:id="@+id/action_open_browser"
|
android:id="@+id/action_open_browser"
|
||||||
android:title="@string/action_open_in_web"
|
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_title_placeholder">New list title</string>
|
||||||
<string name="action_lists_search_users">Search among people you follow</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_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 -->
|
<!-- Migration -->
|
||||||
<string name="account_moved_to">%1$s has moved to %2$s</string>
|
<string name="account_moved_to">%1$s has moved to %2$s</string>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue