Revision 7b27f0dc src/com/rackspace/cloud/android/ContainerObjectDetails.java
b/src/com/rackspace/cloud/android/ContainerObjectDetails.java | ||
---|---|---|
82 | 82 |
private DownloadObjectListenerTask downloadObjTask; |
83 | 83 |
private List<ObjectVersion> versions = new ArrayList<ObjectVersion>(); |
84 | 84 |
private boolean isReadOnly = false; |
85 |
private final List<String> metadataRemoved = new ArrayList<String>(); |
|
86 |
private final Map<String,String> metadataAdded = new HashMap<String, String>(); |
|
87 |
|
|
85 | 88 |
/** Called when the activity is first created. */ |
86 | 89 |
@Override |
87 | 90 |
public void onCreate(Bundle savedInstanceState) { |
... | ... | |
94 | 97 |
.get("containerNames"); |
95 | 98 |
cdnURL = (String) this.getIntent().getExtras().get("cdnUrl"); |
96 | 99 |
cdnEnabled = (String) this.getIntent().getExtras().get("isCdnEnabled"); |
97 |
|
|
100 |
|
|
98 | 101 |
setContentView(R.layout.viewobject); |
99 | 102 |
TabHost tabs = (TabHost) findViewById(R.id.tabhost2); |
100 | 103 |
|
... | ... | |
197 | 200 |
} |
198 | 201 |
|
199 | 202 |
private void loadObjectData() { |
203 |
setTitle("Details: " +objects.getCName()); |
|
204 |
metadataRemoved.clear(); |
|
205 |
metadataAdded.clear(); |
|
200 | 206 |
if(Container.MYSHARED.equals(objects.getContainerName())||Container.MYSHARED.equals(containerNames)){ |
201 | 207 |
isReadOnly = true; |
202 | 208 |
|
... | ... | |
306 | 312 |
private void addMetatadata(String key, String value){ |
307 | 313 |
if(objects.getMetadata()==null) |
308 | 314 |
objects.setMetadata(new HashMap<String, String>()); |
315 |
metadataAdded.put(key,value); |
|
309 | 316 |
objects.getMetadata().put(key, value); |
310 | 317 |
rebuildMetadataList(); |
311 | 318 |
} |
... | ... | |
324 | 331 |
@Override |
325 | 332 |
public void onClick(View v1) { |
326 | 333 |
properties.removeView(v); |
334 |
metadataRemoved.add(metadata.getKey()); |
|
327 | 335 |
objects.getMetadata().remove(metadata.getKey()); |
336 |
|
|
328 | 337 |
|
329 | 338 |
} |
330 | 339 |
}); |
... | ... | |
371 | 380 |
((CheckBox) v.findViewById(R.id.read)).setEnabled(false); |
372 | 381 |
((CheckBox) v.findViewById(R.id.write)).setEnabled(false); |
373 | 382 |
} |
374 |
((TextView) v.findViewById(R.id.ownerName)).setText(perm.getUser()); |
|
383 |
|
|
384 |
((TextView) v.findViewById(R.id.ownerName)).setText(perm.getUser()==null?perm.getGroup()+":":perm.getUser()); |
|
375 | 385 |
((CheckBox) v.findViewById(R.id.read)).setChecked(perm.isRead()); |
376 | 386 |
((CheckBox) v.findViewById(R.id.write)).setChecked(perm.isWrite()); |
377 | 387 |
|
... | ... | |
597 | 607 |
super.onCreateOptionsMenu(menu); |
598 | 608 |
MenuInflater inflater = getMenuInflater(); |
599 | 609 |
inflater.inflate(R.menu.container_object_list_menu, menu); |
600 |
menu.findItem(R.id.delete_object).setVisible(isReadOnly); |
|
601 |
menu.findItem(R.id.save).setVisible(isReadOnly); |
|
610 |
menu.findItem(R.id.delete_object).setVisible(!isReadOnly);
|
|
611 |
menu.findItem(R.id.save).setVisible(!isReadOnly);
|
|
602 | 612 |
return true; |
603 | 613 |
} |
604 | 614 |
|
... | ... | |
982 | 992 |
|
983 | 993 |
public void saveObject(){ |
984 | 994 |
Map<String,String> headers = new HashMap<String,String>(); |
985 |
for(Entry<String,String> entry : objects.getMetadata().entrySet()){ |
|
986 |
headers.put("X-Object-Meta-"+entry.getKey(), entry.getValue()); |
|
995 |
if(objects.getMetadata()!=null) |
|
996 |
for(Entry<String,String> entry : objects.getMetadata().entrySet()){ |
|
997 |
headers.put("X-Object-Meta-"+entry.getKey(), entry.getValue()); |
|
998 |
} |
|
999 |
for(String s : metadataRemoved){ |
|
1000 |
headers.put("X-Object-Meta-"+s, "~"); |
|
1001 |
} |
|
1002 |
String read =""; |
|
1003 |
String write=""; |
|
1004 |
for(Permission p : objects.getPermissions()){ |
|
1005 |
if(p.isWrite()){ |
|
1006 |
if(!write.equals("")){ |
|
1007 |
write = write+","; |
|
1008 |
} |
|
1009 |
write = write + (p.getGroup()==null?p.getUser():p.getGroup()); |
|
1010 |
} |
|
1011 |
else if(p.isRead()){ |
|
1012 |
if(!read.equals("")){ |
|
1013 |
read = read+","; |
|
1014 |
} |
|
1015 |
read = read + (p.getGroup()==null?p.getUser():p.getGroup()); |
|
1016 |
} |
|
1017 |
|
|
1018 |
|
|
987 | 1019 |
} |
1020 |
Log.d(LOG,"read:"+read); |
|
1021 |
Log.d(LOG,"write:"+write); |
|
1022 |
read = "read="+read; |
|
1023 |
write = "write="+write; |
|
1024 |
headers.put("X-Object-Sharing", read+";"+write); |
|
988 | 1025 |
try { |
989 | 1026 |
HttpBundle b = new ContainerObjectManager(getApplicationContext()).updateObject(objects.getContainerName(), objects.getCName(), "", null, headers); |
990 | 1027 |
Log.i(LOG,"response:"+b.getResponse().getStatusLine().getStatusCode()); |
Also available in: Unified diff