mirror of
https://github.com/overte-org/overte.git
synced 2025-04-12 09:22:10 +02:00
Android - People - Remove connection (from People) working with API
This commit is contained in:
parent
dd5bd0229a
commit
81e24bb28e
2 changed files with 48 additions and 4 deletions
|
@ -2,7 +2,9 @@ package io.highfidelity.hifiinterface.fragment;
|
||||||
|
|
||||||
|
|
||||||
import android.app.Fragment;
|
import android.app.Fragment;
|
||||||
|
import android.content.DialogInterface;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.support.v7.app.AlertDialog;
|
||||||
import android.support.v7.widget.GridLayoutManager;
|
import android.support.v7.widget.GridLayoutManager;
|
||||||
import android.support.v7.widget.RecyclerView;
|
import android.support.v7.widget.RecyclerView;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
@ -13,6 +15,7 @@ import android.view.ViewGroup;
|
||||||
import com.sothree.slidinguppanel.SlidingUpPanelLayout;
|
import com.sothree.slidinguppanel.SlidingUpPanelLayout;
|
||||||
|
|
||||||
import io.highfidelity.hifiinterface.R;
|
import io.highfidelity.hifiinterface.R;
|
||||||
|
import io.highfidelity.hifiinterface.provider.EndpointUsersProvider;
|
||||||
import io.highfidelity.hifiinterface.provider.UsersProvider;
|
import io.highfidelity.hifiinterface.provider.UsersProvider;
|
||||||
import io.highfidelity.hifiinterface.view.UserListAdapter;
|
import io.highfidelity.hifiinterface.view.UserListAdapter;
|
||||||
|
|
||||||
|
@ -26,6 +29,8 @@ public class FriendsFragment extends Fragment {
|
||||||
private View mUserActions;
|
private View mUserActions;
|
||||||
private UserListAdapter mUsersAdapter;
|
private UserListAdapter mUsersAdapter;
|
||||||
private SlidingUpPanelLayout mSlidingUpPanelLayout;
|
private SlidingUpPanelLayout mSlidingUpPanelLayout;
|
||||||
|
private EndpointUsersProvider mUsersProvider;
|
||||||
|
private String mSelectedUsername;
|
||||||
|
|
||||||
public FriendsFragment() {
|
public FriendsFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
|
@ -42,6 +47,7 @@ public class FriendsFragment extends Fragment {
|
||||||
View rootView = inflater.inflate(R.layout.fragment_friends, container, false);
|
View rootView = inflater.inflate(R.layout.fragment_friends, container, false);
|
||||||
|
|
||||||
String accessToken = nativeGetAccessToken();
|
String accessToken = nativeGetAccessToken();
|
||||||
|
mUsersProvider = new EndpointUsersProvider(accessToken);
|
||||||
|
|
||||||
Log.d("[USERS]", "token : [" + accessToken + "]");
|
Log.d("[USERS]", "token : [" + accessToken + "]");
|
||||||
|
|
||||||
|
@ -49,16 +55,21 @@ public class FriendsFragment extends Fragment {
|
||||||
int numberOfColumns = 1;
|
int numberOfColumns = 1;
|
||||||
GridLayoutManager gridLayoutMgr = new GridLayoutManager(getContext(), numberOfColumns);
|
GridLayoutManager gridLayoutMgr = new GridLayoutManager(getContext(), numberOfColumns);
|
||||||
mUsersView.setLayoutManager(gridLayoutMgr);
|
mUsersView.setLayoutManager(gridLayoutMgr);
|
||||||
mUsersAdapter = new UserListAdapter(getContext(), accessToken);
|
|
||||||
|
mUsersAdapter = new UserListAdapter(getContext(), mUsersProvider);
|
||||||
|
|
||||||
mUserActions = rootView.findViewById(R.id.userActionsLayout);
|
mUserActions = rootView.findViewById(R.id.userActionsLayout);
|
||||||
|
|
||||||
mSlidingUpPanelLayout = rootView.findViewById(R.id.sliding_layout);
|
mSlidingUpPanelLayout = rootView.findViewById(R.id.sliding_layout);
|
||||||
mSlidingUpPanelLayout.setPanelHeight(0);
|
mSlidingUpPanelLayout.setPanelHeight(0);
|
||||||
|
|
||||||
|
rootView.findViewById(R.id.userActionDelete).setOnClickListener(view -> onRemoveConnectionClick());
|
||||||
|
|
||||||
mUsersAdapter.setClickListener(new UserListAdapter.ItemClickListener() {
|
mUsersAdapter.setClickListener(new UserListAdapter.ItemClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onItemClick(View view, int position, UserListAdapter.User user) {
|
public void onItemClick(View view, int position, UserListAdapter.User user) {
|
||||||
// 1. 'select' user
|
// 1. 'select' user
|
||||||
|
mSelectedUsername = user.name;
|
||||||
// ..
|
// ..
|
||||||
// 2. adapt options
|
// 2. adapt options
|
||||||
// ..
|
// ..
|
||||||
|
@ -73,12 +84,44 @@ public class FriendsFragment extends Fragment {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
mSlidingUpPanelLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED);
|
mSlidingUpPanelLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED);
|
||||||
|
mSelectedUsername = null;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return rootView;
|
return rootView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void onRemoveConnectionClick() {
|
||||||
|
if (mSelectedUsername == null) return;
|
||||||
|
|
||||||
|
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
||||||
|
builder.setMessage("Remove this user from People?");
|
||||||
|
builder.setPositiveButton("Remove", new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialogInterface, int i) {
|
||||||
|
mUsersProvider.removeConnection(mSelectedUsername, new UsersProvider.UserActionCallback() {
|
||||||
|
@Override
|
||||||
|
public void requestOk() {
|
||||||
|
// CLD: Show success message
|
||||||
|
mUsersAdapter.loadUsers();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void requestError(Exception e, String message) {
|
||||||
|
// CLD: Show error message?
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialogInterface, int i) {
|
||||||
|
// Cancelled, nothing to do
|
||||||
|
}
|
||||||
|
});
|
||||||
|
builder.show();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Processes the back pressed event and returns true if it was managed by this Fragment
|
* Processes the back pressed event and returns true if it was managed by this Fragment
|
||||||
* @return
|
* @return
|
||||||
|
@ -86,6 +129,7 @@ public class FriendsFragment extends Fragment {
|
||||||
public boolean onBackPressed() {
|
public boolean onBackPressed() {
|
||||||
if (mSlidingUpPanelLayout.getPanelState().equals(SlidingUpPanelLayout.PanelState.EXPANDED)) {
|
if (mSlidingUpPanelLayout.getPanelState().equals(SlidingUpPanelLayout.PanelState.EXPANDED)) {
|
||||||
mSlidingUpPanelLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED);
|
mSlidingUpPanelLayout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED);
|
||||||
|
mSelectedUsername = null;
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -38,14 +38,14 @@ public class UserListAdapter extends RecyclerView.Adapter<UserListAdapter.ViewHo
|
||||||
private List<User> mUsers = new ArrayList<>();
|
private List<User> mUsers = new ArrayList<>();
|
||||||
private ItemClickListener mClickListener;
|
private ItemClickListener mClickListener;
|
||||||
|
|
||||||
public UserListAdapter(Context c, String accessToken) {
|
public UserListAdapter(Context c, UsersProvider usersProvider) {
|
||||||
mContext = c;
|
mContext = c;
|
||||||
mInflater = LayoutInflater.from(mContext);
|
mInflater = LayoutInflater.from(mContext);
|
||||||
mProvider = new EndpointUsersProvider(accessToken);
|
mProvider = usersProvider;
|
||||||
loadUsers();
|
loadUsers();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadUsers() {
|
public void loadUsers() {
|
||||||
mProvider.retrieve(new UsersProvider.UsersCallback() {
|
mProvider.retrieve(new UsersProvider.UsersCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void retrieveOk(List<User> users) {
|
public void retrieveOk(List<User> users) {
|
||||||
|
|
Loading…
Reference in a new issue