Add users fragments and code to get users information from API
This commit is contained in:
parent
965f3f7316
commit
9b55da3639
|
@ -0,0 +1,25 @@
|
|||
package com.rcarrillocruz.android.openstackdroid;
|
||||
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.client.methods.HttpRequestBase;
|
||||
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
|
||||
public class GetUsersOperation implements ApiOperation {
|
||||
private static final String urlTail = "/users";
|
||||
|
||||
public GetUsersOperation() {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpRequestBase invoke(Uri endpoint, String token, String tenantId,
|
||||
Bundle params) {
|
||||
// TODO Auto-generated method stub
|
||||
HttpGet httpGet = new HttpGet(endpoint.toString()+urlTail);
|
||||
httpGet.setHeader("X-Auth-Token", token);
|
||||
|
||||
return httpGet;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package com.rcarrillocruz.android.openstackdroid;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class GetUsersResponse {
|
||||
private List<UserDetailsObject> users;
|
||||
|
||||
public List<UserDetailsObject> getUsers() {
|
||||
return users;
|
||||
}
|
||||
|
||||
public void setUsers(List<UserDetailsObject> users) {
|
||||
this.users = users;
|
||||
}
|
||||
|
||||
public GetUsersResponse() {
|
||||
super();
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
}
|
|
@ -0,0 +1,58 @@
|
|||
package com.rcarrillocruz.android.openstackdroid;
|
||||
|
||||
import android.app.Fragment;
|
||||
import android.os.Bundle;
|
||||
import android.util.TypedValue;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ScrollView;
|
||||
import android.widget.TextView;
|
||||
|
||||
public class UserDetailsFragment extends Fragment {
|
||||
private ScrollView scroller;
|
||||
private TextView tv;
|
||||
|
||||
public static UserDetailsFragment newInstance(int position) {
|
||||
// TODO Auto-generated method stub
|
||||
UserDetailsFragment f = new UserDetailsFragment();
|
||||
|
||||
Bundle args = new Bundle();
|
||||
args.putInt("position", position);
|
||||
f.setArguments(args);
|
||||
|
||||
return f;
|
||||
}
|
||||
|
||||
public int getShownIndex() {
|
||||
// TODO Auto-generated method stub
|
||||
return getArguments().getInt("position", 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
scroller = new ScrollView(getActivity());
|
||||
tv = new TextView(getActivity());
|
||||
int padding = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
|
||||
4, getActivity().getResources().getDisplayMetrics());
|
||||
tv.setPadding(padding, padding, padding, padding);
|
||||
scroller.addView(tv);
|
||||
UserModel user = (((CloudBrowserActivity)getActivity()).getUsers()).get(getShownIndex());
|
||||
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append("ID: " + user.getId() + "\n\n");
|
||||
sb.append("Name: " + user.getName() + "\n\n");
|
||||
sb.append("Enabled: " + user.isEnabled() + "\n\n");
|
||||
sb.append("Email: " + user.getEmail() + "\n\n");
|
||||
|
||||
String tenantId = user.getTenantId();
|
||||
|
||||
if (tenantId == null)
|
||||
tenantId = "";
|
||||
|
||||
sb.append("Tenant id: " + tenantId + "\n\n");
|
||||
|
||||
tv.setText(sb.toString());
|
||||
return scroller;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
package com.rcarrillocruz.android.openstackdroid;
|
||||
|
||||
public class UserDetailsObject {
|
||||
private String id;
|
||||
private String name;
|
||||
private boolean enabled;
|
||||
private String email;
|
||||
private String tenantId;
|
||||
|
||||
public UserDetailsObject() {
|
||||
super();
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public boolean isEnabled() {
|
||||
return enabled;
|
||||
}
|
||||
|
||||
public void setEnabled(boolean enabled) {
|
||||
this.enabled = enabled;
|
||||
}
|
||||
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
public void setEmail(String email) {
|
||||
this.email = email;
|
||||
}
|
||||
|
||||
public String getTenantId() {
|
||||
return tenantId;
|
||||
}
|
||||
|
||||
public void setTenantId(String tenantId) {
|
||||
this.tenantId = tenantId;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,96 @@
|
|||
package com.rcarrillocruz.android.openstackdroid;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import android.app.FragmentTransaction;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.ListView;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
|
||||
public class UserListFragment extends CloudBrowserListFragment {
|
||||
|
||||
List<UserModel> users;
|
||||
private ArrayAdapter<UserModel> adapter;
|
||||
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
// TODO Auto-generated method stub
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
users = ((CloudBrowserActivity) getActivity()).getUsers();
|
||||
endpoint = ((OpenstackdroidApplication) (getActivity().getApplication())).getIdentityAdminEndpoint();
|
||||
|
||||
Intent serviceIntent = new Intent(getActivity(), CloudControllerService.class);
|
||||
serviceIntent.setData(Uri.parse(endpoint));
|
||||
serviceIntent.putExtra(CloudControllerService.OPERATION, CloudControllerService.GET_USERS_OPERATION);
|
||||
serviceIntent.putExtra(CloudControllerService.TOKEN, ((OpenstackdroidApplication) getActivity().getApplication()).getToken());
|
||||
serviceIntent.putExtra(CloudControllerService.TENANT, (String)null);
|
||||
serviceIntent.putExtra(CloudControllerService.RECEIVER, mReceiver);
|
||||
Bundle params = new Bundle();
|
||||
serviceIntent.putExtra(CloudControllerService.PARAMS, params);
|
||||
|
||||
getActivity().startService(serviceIntent);
|
||||
|
||||
adapter = new ArrayAdapter<UserModel>(getActivity(), android.R.layout.simple_list_item_activated_1, users);
|
||||
setListAdapter(adapter);
|
||||
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onListItemClick(ListView l, View v, int position, long id) {
|
||||
// TODO Auto-generated method stub
|
||||
mCurCheckPosition = position;
|
||||
getListView().setItemChecked(position, true);
|
||||
|
||||
showDetails(position);
|
||||
}
|
||||
|
||||
protected void showDetails(int position) {
|
||||
// TODO Auto-generated method stub
|
||||
UserDetailsFragment udf = (UserDetailsFragment) ((CloudBrowserActivity) getActivity()).getmUserDetailsFragment();
|
||||
|
||||
if (udf == null || udf.getShownIndex() != position)
|
||||
udf = UserDetailsFragment.newInstance(position);
|
||||
|
||||
FragmentTransaction ft = getFragmentManager().beginTransaction();
|
||||
ft.replace(R.id.item_details, udf);
|
||||
ft.commit();
|
||||
|
||||
((CloudBrowserActivity) getActivity()).showDetailsLayout();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReceiveResult(int resultCode, Bundle resultData) {
|
||||
// TODO Auto-generated method stub
|
||||
if (resultCode == 200) {
|
||||
String operation = resultData.getString(CloudControllerService.OPERATION);
|
||||
|
||||
if (operation.equals(CloudControllerService.GET_USERS_OPERATION)) {
|
||||
Gson gson = new Gson();
|
||||
GetUsersResponse gur = gson.fromJson(resultData.getString(CloudControllerService.OPERATION_RESULTS), GetUsersResponse.class);
|
||||
|
||||
populateItems(gur);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void populateItems(GetUsersResponse gur) {
|
||||
// TODO Auto-generated method stub
|
||||
users.clear();
|
||||
Iterator<UserDetailsObject> it = gur.getUsers().iterator();
|
||||
UserDetailsObject item = null;
|
||||
|
||||
while(it.hasNext()) {
|
||||
item = it.next();
|
||||
UserModel newItem = new UserModel(item.getId(), item.getName(), item.isEnabled(), item.getEmail(), item.getTenantId());
|
||||
users.add(newItem);
|
||||
}
|
||||
|
||||
adapter.notifyDataSetChanged();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
package com.rcarrillocruz.android.openstackdroid;
|
||||
|
||||
public class UserModel {
|
||||
private String id;
|
||||
private String name;
|
||||
private boolean enabled;
|
||||
private String email;
|
||||
private String tenantId;
|
||||
|
||||
public UserModel(String id, String name, boolean enabled, String email,
|
||||
String tenantId) {
|
||||
super();
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.enabled = enabled;
|
||||
this.email = email;
|
||||
this.tenantId = tenantId;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
public boolean isEnabled() {
|
||||
return enabled;
|
||||
}
|
||||
public void setEnabled(boolean enabled) {
|
||||
this.enabled = enabled;
|
||||
}
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
public void setEmail(String email) {
|
||||
this.email = email;
|
||||
}
|
||||
public String getTenantId() {
|
||||
return tenantId;
|
||||
}
|
||||
public void setTenantId(String tenantId) {
|
||||
this.tenantId = tenantId;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return this.name;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue