mirror of
				https://github.com/KokaKiwi/BarInsta
				synced 2025-11-03 21:15:35 +00:00 
			
		
		
		
	close #1267 and also simplify FriendshipService
This commit is contained in:
		
							parent
							
								
									e726ba3ccf
								
							
						
					
					
						commit
						ec9e28bc09
					
				@ -132,7 +132,7 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
 | 
				
			|||||||
    private HighlightsAdapter highlightsAdapter;
 | 
					    private HighlightsAdapter highlightsAdapter;
 | 
				
			||||||
    private HighlightsViewModel highlightsViewModel;
 | 
					    private HighlightsViewModel highlightsViewModel;
 | 
				
			||||||
    private MenuItem blockMenuItem, restrictMenuItem, chainingMenuItem;
 | 
					    private MenuItem blockMenuItem, restrictMenuItem, chainingMenuItem;
 | 
				
			||||||
    private MenuItem muteStoriesMenuItem, mutePostsMenuItem;
 | 
					    private MenuItem muteStoriesMenuItem, mutePostsMenuItem, removeFollowerMenuItem;
 | 
				
			||||||
    private boolean accountIsUpdated = false;
 | 
					    private boolean accountIsUpdated = false;
 | 
				
			||||||
    private boolean postsSetupDone = false;
 | 
					    private boolean postsSetupDone = false;
 | 
				
			||||||
    private Set<Media> selectedFeedModels;
 | 
					    private Set<Media> selectedFeedModels;
 | 
				
			||||||
@ -141,6 +141,23 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
 | 
				
			|||||||
    private long myId;
 | 
					    private long myId;
 | 
				
			||||||
    private PostsLayoutPreferences layoutPreferences = Utils.getPostsLayoutPreferences(Constants.PREF_PROFILE_POSTS_LAYOUT);
 | 
					    private PostsLayoutPreferences layoutPreferences = Utils.getPostsLayoutPreferences(Constants.PREF_PROFILE_POSTS_LAYOUT);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private final ServiceCallback<FriendshipChangeResponse> changeCb = new ServiceCallback<FriendshipChangeResponse>() {
 | 
				
			||||||
 | 
					        @Override
 | 
				
			||||||
 | 
					        public void onSuccess(final FriendshipChangeResponse result) {
 | 
				
			||||||
 | 
					            if (result.getFriendshipStatus() != null) {
 | 
				
			||||||
 | 
					                profileModel.setFriendshipStatus(result.getFriendshipStatus());
 | 
				
			||||||
 | 
					                setProfileDetails();
 | 
				
			||||||
 | 
					                return;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            fetchProfileDetails();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        @Override
 | 
				
			||||||
 | 
					        public void onFailure(final Throwable t) {
 | 
				
			||||||
 | 
					            Log.e(TAG, "Error editing relationship", t);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private final Runnable usernameSettingRunnable = () -> {
 | 
					    private final Runnable usernameSettingRunnable = () -> {
 | 
				
			||||||
        final ActionBar actionBar = fragmentActivity.getSupportActionBar();
 | 
					        final ActionBar actionBar = fragmentActivity.getSupportActionBar();
 | 
				
			||||||
        if (actionBar != null && !TextUtils.isEmpty(username)) {
 | 
					        if (actionBar != null && !TextUtils.isEmpty(username)) {
 | 
				
			||||||
@ -374,8 +391,9 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
 | 
				
			|||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void onCreateOptionsMenu(@NonNull final Menu menu, @NonNull final MenuInflater inflater) {
 | 
					    public void onCreateOptionsMenu(@NonNull final Menu menu, @NonNull final MenuInflater inflater) {
 | 
				
			||||||
        inflater.inflate(R.menu.profile_menu, menu);
 | 
					        inflater.inflate(R.menu.profile_menu, menu);
 | 
				
			||||||
 | 
					        final boolean isNotMe = profileModel != null && isLoggedIn
 | 
				
			||||||
 | 
					                                && !Objects.equals(profileModel.getPk(), CookieUtils.getUserIdFromCookie(cookie));
 | 
				
			||||||
        blockMenuItem = menu.findItem(R.id.block);
 | 
					        blockMenuItem = menu.findItem(R.id.block);
 | 
				
			||||||
        final boolean isNotMe = profileModel != null && !Objects.equals(profileModel.getPk(), CookieUtils.getUserIdFromCookie(cookie));
 | 
					 | 
				
			||||||
        if (blockMenuItem != null) {
 | 
					        if (blockMenuItem != null) {
 | 
				
			||||||
            if (isNotMe) {
 | 
					            if (isNotMe) {
 | 
				
			||||||
                blockMenuItem.setVisible(true);
 | 
					                blockMenuItem.setVisible(true);
 | 
				
			||||||
@ -415,6 +433,10 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
 | 
				
			|||||||
        if (chainingMenuItem != null) {
 | 
					        if (chainingMenuItem != null) {
 | 
				
			||||||
            chainingMenuItem.setVisible(isNotMe && profileModel.hasChaining());
 | 
					            chainingMenuItem.setVisible(isNotMe && profileModel.hasChaining());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        removeFollowerMenuItem = menu.findItem(R.id.remove_follower);
 | 
				
			||||||
 | 
					        if (removeFollowerMenuItem != null) {
 | 
				
			||||||
 | 
					            removeFollowerMenuItem.setVisible(isNotMe && profileModel.getFriendshipStatus().isFollowedBy());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
@ -445,37 +467,7 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        if (item.getItemId() == R.id.block) {
 | 
					        if (item.getItemId() == R.id.block) {
 | 
				
			||||||
            if (!isLoggedIn) return false;
 | 
					            if (!isLoggedIn) return false;
 | 
				
			||||||
            if (profileModel.getFriendshipStatus().isBlocking()) {
 | 
					            friendshipService.changeBlock(profileModel.getFriendshipStatus().isBlocking(), profileModel.getPk(), changeCb);
 | 
				
			||||||
                friendshipService.unblock(
 | 
					 | 
				
			||||||
                        profileModel.getPk(),
 | 
					 | 
				
			||||||
                        new ServiceCallback<FriendshipChangeResponse>() {
 | 
					 | 
				
			||||||
                            @Override
 | 
					 | 
				
			||||||
                            public void onSuccess(final FriendshipChangeResponse result) {
 | 
					 | 
				
			||||||
                                Log.d(TAG, "Unblock success: " + result);
 | 
					 | 
				
			||||||
                                fetchProfileDetails();
 | 
					 | 
				
			||||||
                            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                            @Override
 | 
					 | 
				
			||||||
                            public void onFailure(final Throwable t) {
 | 
					 | 
				
			||||||
                                Log.e(TAG, "Error unblocking", t);
 | 
					 | 
				
			||||||
                            }
 | 
					 | 
				
			||||||
                        });
 | 
					 | 
				
			||||||
                return true;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            friendshipService.block(
 | 
					 | 
				
			||||||
                    profileModel.getPk(),
 | 
					 | 
				
			||||||
                    new ServiceCallback<FriendshipChangeResponse>() {
 | 
					 | 
				
			||||||
                        @Override
 | 
					 | 
				
			||||||
                        public void onSuccess(final FriendshipChangeResponse result) {
 | 
					 | 
				
			||||||
                            Log.d(TAG, "Block success: " + result);
 | 
					 | 
				
			||||||
                            fetchProfileDetails();
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                        @Override
 | 
					 | 
				
			||||||
                        public void onFailure(final Throwable t) {
 | 
					 | 
				
			||||||
                            Log.e(TAG, "Error blocking", t);
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    });
 | 
					 | 
				
			||||||
            return true;
 | 
					            return true;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (item.getItemId() == R.id.chaining) {
 | 
					        if (item.getItemId() == R.id.chaining) {
 | 
				
			||||||
@ -493,18 +485,7 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
 | 
				
			|||||||
                    profileModel.getFriendshipStatus().isMutingReel(),
 | 
					                    profileModel.getFriendshipStatus().isMutingReel(),
 | 
				
			||||||
                    profileModel.getPk(),
 | 
					                    profileModel.getPk(),
 | 
				
			||||||
                    true,
 | 
					                    true,
 | 
				
			||||||
                    new ServiceCallback<FriendshipChangeResponse>() {
 | 
					                    changeCb);
 | 
				
			||||||
                        @Override
 | 
					 | 
				
			||||||
                        public void onSuccess(final FriendshipChangeResponse result) {
 | 
					 | 
				
			||||||
                            Log.d(TAG, action + " success: " + result);
 | 
					 | 
				
			||||||
                            fetchProfileDetails();
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                        @Override
 | 
					 | 
				
			||||||
                        public void onFailure(final Throwable t) {
 | 
					 | 
				
			||||||
                            Log.e(TAG, "Error while performing " + action, t);
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    });
 | 
					 | 
				
			||||||
            return true;
 | 
					            return true;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (item.getItemId() == R.id.mute_posts) {
 | 
					        if (item.getItemId() == R.id.mute_posts) {
 | 
				
			||||||
@ -514,18 +495,12 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
 | 
				
			|||||||
                    profileModel.getFriendshipStatus().isMuting(),
 | 
					                    profileModel.getFriendshipStatus().isMuting(),
 | 
				
			||||||
                    profileModel.getPk(),
 | 
					                    profileModel.getPk(),
 | 
				
			||||||
                    false,
 | 
					                    false,
 | 
				
			||||||
                    new ServiceCallback<FriendshipChangeResponse>() {
 | 
					                    changeCb);
 | 
				
			||||||
                        @Override
 | 
					            return true;
 | 
				
			||||||
                        public void onSuccess(final FriendshipChangeResponse result) {
 | 
					 | 
				
			||||||
                            Log.d(TAG, action + " success: " + result);
 | 
					 | 
				
			||||||
                            fetchProfileDetails();
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        if (item.getItemId() == R.id.remove_follower) {
 | 
				
			||||||
                        @Override
 | 
					            if (!isLoggedIn) return false;
 | 
				
			||||||
                        public void onFailure(final Throwable t) {
 | 
					            friendshipService.removeFollower(profileModel.getPk(), changeCb);
 | 
				
			||||||
                            Log.e(TAG, "Error while performing " + action, t);
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    });
 | 
					 | 
				
			||||||
            return true;
 | 
					            return true;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return super.onOptionsItemSelected(item);
 | 
					        return super.onOptionsItemSelected(item);
 | 
				
			||||||
@ -973,6 +948,7 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
 | 
				
			|||||||
                    profileDetailsBinding.mainStatus.setText(R.string.status_mutual);
 | 
					                    profileDetailsBinding.mainStatus.setText(R.string.status_mutual);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            else profileDetailsBinding.mainStatus.setVisibility(View.GONE);
 | 
				
			||||||
            if (profileModel.getFriendshipStatus().isFollowing()) {
 | 
					            if (profileModel.getFriendshipStatus().isFollowing()) {
 | 
				
			||||||
                profileDetailsBinding.btnFollow.setText(R.string.unfollow);
 | 
					                profileDetailsBinding.btnFollow.setText(R.string.unfollow);
 | 
				
			||||||
                profileDetailsBinding.btnFollow.setChipIconResource(R.drawable.ic_outline_person_add_disabled_24);
 | 
					                profileDetailsBinding.btnFollow.setChipIconResource(R.drawable.ic_outline_person_add_disabled_24);
 | 
				
			||||||
@ -1002,6 +978,9 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
 | 
				
			|||||||
            if (chainingMenuItem != null) {
 | 
					            if (chainingMenuItem != null) {
 | 
				
			||||||
                chainingMenuItem.setVisible(profileModel.hasChaining());
 | 
					                chainingMenuItem.setVisible(profileModel.hasChaining());
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            if (removeFollowerMenuItem != null) {
 | 
				
			||||||
 | 
					                removeFollowerMenuItem.setVisible(profileModel.getFriendshipStatus().isFollowedBy());
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1069,52 +1048,13 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
 | 
				
			|||||||
                        .setTitle(R.string.priv_acc)
 | 
					                        .setTitle(R.string.priv_acc)
 | 
				
			||||||
                        .setMessage(R.string.priv_acc_confirm)
 | 
					                        .setMessage(R.string.priv_acc_confirm)
 | 
				
			||||||
                        .setPositiveButton(R.string.confirm, (d, w) ->
 | 
					                        .setPositiveButton(R.string.confirm, (d, w) ->
 | 
				
			||||||
                                friendshipService.unfollow(
 | 
					                                friendshipService.unfollow(profileModel.getPk(), changeCb))
 | 
				
			||||||
                                        profileModel.getPk(),
 | 
					 | 
				
			||||||
                                        new ServiceCallback<FriendshipChangeResponse>() {
 | 
					 | 
				
			||||||
                                            @Override
 | 
					 | 
				
			||||||
                                            public void onSuccess(final FriendshipChangeResponse result) {
 | 
					 | 
				
			||||||
                                                // Log.d(TAG, "Unfollow success: " + result);
 | 
					 | 
				
			||||||
                                                fetchProfileDetails();
 | 
					 | 
				
			||||||
                                            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                                            @Override
 | 
					 | 
				
			||||||
                                            public void onFailure(final Throwable t) {
 | 
					 | 
				
			||||||
                                                Log.e(TAG, "Error unfollowing", t);
 | 
					 | 
				
			||||||
                                            }
 | 
					 | 
				
			||||||
                                        }))
 | 
					 | 
				
			||||||
                        .setNegativeButton(R.string.cancel, null)
 | 
					                        .setNegativeButton(R.string.cancel, null)
 | 
				
			||||||
                        .show();
 | 
					                        .show();
 | 
				
			||||||
            } else if (profileModel.getFriendshipStatus().isFollowing() || profileModel.getFriendshipStatus().isOutgoingRequest()) {
 | 
					            } else if (profileModel.getFriendshipStatus().isFollowing() || profileModel.getFriendshipStatus().isOutgoingRequest()) {
 | 
				
			||||||
                friendshipService.unfollow(
 | 
					                friendshipService.unfollow(profileModel.getPk(), changeCb);
 | 
				
			||||||
                        profileModel.getPk(),
 | 
					 | 
				
			||||||
                        new ServiceCallback<FriendshipChangeResponse>() {
 | 
					 | 
				
			||||||
                            @Override
 | 
					 | 
				
			||||||
                            public void onSuccess(final FriendshipChangeResponse result) {
 | 
					 | 
				
			||||||
                                // Log.d(TAG, "Unfollow success: " + result);
 | 
					 | 
				
			||||||
                                fetchProfileDetails();
 | 
					 | 
				
			||||||
                            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                            @Override
 | 
					 | 
				
			||||||
                            public void onFailure(final Throwable t) {
 | 
					 | 
				
			||||||
                                Log.e(TAG, "Error unfollowing", t);
 | 
					 | 
				
			||||||
                            }
 | 
					 | 
				
			||||||
                        });
 | 
					 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                friendshipService.follow(
 | 
					                friendshipService.follow(profileModel.getPk(), changeCb);
 | 
				
			||||||
                        profileModel.getPk(),
 | 
					 | 
				
			||||||
                        new ServiceCallback<FriendshipChangeResponse>() {
 | 
					 | 
				
			||||||
                            @Override
 | 
					 | 
				
			||||||
                            public void onSuccess(final FriendshipChangeResponse result) {
 | 
					 | 
				
			||||||
                                // Log.d(TAG, "Follow success: " + result);
 | 
					 | 
				
			||||||
                                fetchProfileDetails();
 | 
					 | 
				
			||||||
                            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                            @Override
 | 
					 | 
				
			||||||
                            public void onFailure(final Throwable t) {
 | 
					 | 
				
			||||||
                                Log.e(TAG, "Error following", t);
 | 
					 | 
				
			||||||
                            }
 | 
					 | 
				
			||||||
                        });
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        profileDetailsBinding.btnSaved.setOnClickListener(v -> {
 | 
					        profileDetailsBinding.btnSaved.setOnClickListener(v -> {
 | 
				
			||||||
 | 
				
			|||||||
@ -1597,7 +1597,7 @@ public final class ThreadManager {
 | 
				
			|||||||
    public LiveData<Resource<Object>> blockUser(final User user) {
 | 
					    public LiveData<Resource<Object>> blockUser(final User user) {
 | 
				
			||||||
        final MutableLiveData<Resource<Object>> data = new MutableLiveData<>();
 | 
					        final MutableLiveData<Resource<Object>> data = new MutableLiveData<>();
 | 
				
			||||||
        if (user == null) return data;
 | 
					        if (user == null) return data;
 | 
				
			||||||
        friendshipService.block(user.getPk(), new ServiceCallback<FriendshipChangeResponse>() {
 | 
					        friendshipService.changeBlock(false, user.getPk(), new ServiceCallback<FriendshipChangeResponse>() {
 | 
				
			||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
            public void onSuccess(final FriendshipChangeResponse result) {
 | 
					            public void onSuccess(final FriendshipChangeResponse result) {
 | 
				
			||||||
                refreshChats();
 | 
					                refreshChats();
 | 
				
			||||||
@ -1615,7 +1615,7 @@ public final class ThreadManager {
 | 
				
			|||||||
    public LiveData<Resource<Object>> unblockUser(final User user) {
 | 
					    public LiveData<Resource<Object>> unblockUser(final User user) {
 | 
				
			||||||
        final MutableLiveData<Resource<Object>> data = new MutableLiveData<>();
 | 
					        final MutableLiveData<Resource<Object>> data = new MutableLiveData<>();
 | 
				
			||||||
        if (user == null) return data;
 | 
					        if (user == null) return data;
 | 
				
			||||||
        friendshipService.unblock(user.getPk(), new ServiceCallback<FriendshipChangeResponse>() {
 | 
					        friendshipService.changeBlock(true, user.getPk(), new ServiceCallback<FriendshipChangeResponse>() {
 | 
				
			||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
            public void onSuccess(final FriendshipChangeResponse result) {
 | 
					            public void onSuccess(final FriendshipChangeResponse result) {
 | 
				
			||||||
                refreshChats();
 | 
					                refreshChats();
 | 
				
			||||||
 | 
				
			|||||||
@ -78,14 +78,10 @@ public class FriendshipService extends BaseService {
 | 
				
			|||||||
        change("destroy", targetUserId, callback);
 | 
					        change("destroy", targetUserId, callback);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void block(final long targetUserId,
 | 
					    public void changeBlock(final boolean unblock,
 | 
				
			||||||
 | 
					                            final long targetUserId,
 | 
				
			||||||
                            final ServiceCallback<FriendshipChangeResponse> callback) {
 | 
					                            final ServiceCallback<FriendshipChangeResponse> callback) {
 | 
				
			||||||
        change("block", targetUserId, callback);
 | 
					        change(unblock ? "unblock" : "block", targetUserId, callback);
 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void unblock(final long targetUserId,
 | 
					 | 
				
			||||||
                        final ServiceCallback<FriendshipChangeResponse> callback) {
 | 
					 | 
				
			||||||
        change("unblock", targetUserId, callback);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void toggleRestrict(final long targetUserId,
 | 
					    public void toggleRestrict(final long targetUserId,
 | 
				
			||||||
@ -126,6 +122,11 @@ public class FriendshipService extends BaseService {
 | 
				
			|||||||
        change("ignore", targetUserId, callback);
 | 
					        change("ignore", targetUserId, callback);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void removeFollower(final long targetUserId,
 | 
				
			||||||
 | 
					                               final ServiceCallback<FriendshipChangeResponse> callback) {
 | 
				
			||||||
 | 
					        change("remove_follower", targetUserId, callback);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private void change(final String action,
 | 
					    private void change(final String action,
 | 
				
			||||||
                        final long targetUserId,
 | 
					                        final long targetUserId,
 | 
				
			||||||
                        final ServiceCallback<FriendshipChangeResponse> callback) {
 | 
					                        final ServiceCallback<FriendshipChangeResponse> callback) {
 | 
				
			||||||
 | 
				
			|||||||
@ -7,6 +7,12 @@
 | 
				
			|||||||
        android:title="@string/layout"
 | 
					        android:title="@string/layout"
 | 
				
			||||||
        app:showAsAction="never" />
 | 
					        app:showAsAction="never" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <item
 | 
				
			||||||
 | 
					        android:id="@+id/chaining"
 | 
				
			||||||
 | 
					        android:title="@string/action_ayml"
 | 
				
			||||||
 | 
					        android:visible="false"
 | 
				
			||||||
 | 
					        app:showAsAction="never" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <item
 | 
					    <item
 | 
				
			||||||
        android:id="@+id/block"
 | 
					        android:id="@+id/block"
 | 
				
			||||||
        android:icon="@drawable/ic_block_24"
 | 
					        android:icon="@drawable/ic_block_24"
 | 
				
			||||||
@ -22,8 +28,9 @@
 | 
				
			|||||||
        app:showAsAction="never" />
 | 
					        app:showAsAction="never" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <item
 | 
					    <item
 | 
				
			||||||
        android:id="@+id/chaining"
 | 
					        android:id="@+id/remove_follower"
 | 
				
			||||||
        android:title="@string/action_ayml"
 | 
					        android:icon="@drawable/ic_block_24"
 | 
				
			||||||
 | 
					        android:title="@string/remove_follower"
 | 
				
			||||||
        android:visible="false"
 | 
					        android:visible="false"
 | 
				
			||||||
        app:showAsAction="never" />
 | 
					        app:showAsAction="never" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -126,6 +126,7 @@
 | 
				
			|||||||
    <string name="mute_posts">Mute posts</string>
 | 
					    <string name="mute_posts">Mute posts</string>
 | 
				
			||||||
    <string name="unmute_stories">Unmute stories</string>
 | 
					    <string name="unmute_stories">Unmute stories</string>
 | 
				
			||||||
    <string name="unmute_posts">Unmute posts</string>
 | 
					    <string name="unmute_posts">Unmute posts</string>
 | 
				
			||||||
 | 
					    <string name="remove_follower">Remove follower</string>
 | 
				
			||||||
    <string name="bio_copy">Copy bio</string>
 | 
					    <string name="bio_copy">Copy bio</string>
 | 
				
			||||||
    <string name="bio_translate">Translate bio</string>
 | 
					    <string name="bio_translate">Translate bio</string>
 | 
				
			||||||
    <string name="status_mutual">Mutual</string>
 | 
					    <string name="status_mutual">Mutual</string>
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user