Revision 21c57799 src/com/rackspacecloud/android/ViewLoadBalancerActivity.java
b/src/com/rackspacecloud/android/ViewLoadBalancerActivity.java | ||
---|---|---|
47 | 47 |
|
48 | 48 |
private LoadBalancer loadBalancer; |
49 | 49 |
private PollLoadBalancerTask pollLoadBalancerTask; |
50 |
private AndroidCloudApplication app; |
|
51 |
private LoggingListenerTask loggingListenerTask; |
|
52 |
private SessionPersistenceListenerTask sessionPersistenceListenerTask; |
|
50 | 53 |
|
51 | 54 |
@Override |
52 | 55 |
public void onCreate(Bundle savedInstanceState) { |
53 | 56 |
super.onCreate(savedInstanceState); |
54 | 57 |
loadBalancer = (LoadBalancer) this.getIntent().getExtras().get("loadBalancer"); |
55 | 58 |
setContentView(R.layout.view_loadbalancer); |
59 |
app = (AndroidCloudApplication)this.getApplication(); |
|
56 | 60 |
restoreState(savedInstanceState); |
57 | 61 |
} |
58 | 62 |
|
... | ... | |
64 | 68 |
|
65 | 69 |
protected void restoreState(Bundle state) { |
66 | 70 |
super.restoreState(state); |
67 |
|
|
71 |
|
|
68 | 72 |
if (state != null && state.containsKey("loadBalancer") && state.getSerializable("loadBalancer") != null) { |
69 | 73 |
loadBalancer = (LoadBalancer) state.getSerializable("loadBalancer"); |
70 | 74 |
loadLoadBalancerData(); |
... | ... | |
73 | 77 |
else{ |
74 | 78 |
new LoadLoadBalancerTask().execute((Void[]) null); |
75 | 79 |
} |
80 |
|
|
81 |
/* |
|
82 |
* if is setting logs we need another listener |
|
83 |
*/ |
|
84 |
if(app.isSettingLogs()){ |
|
85 |
loggingListenerTask = new LoggingListenerTask(); |
|
86 |
loggingListenerTask.execute(); |
|
87 |
} |
|
88 |
|
|
89 |
if(app.isSettingSessionPersistence()){ |
|
90 |
sessionPersistenceListenerTask = new SessionPersistenceListenerTask(); |
|
91 |
sessionPersistenceListenerTask.execute(); |
|
92 |
} |
|
76 | 93 |
} |
77 | 94 |
|
78 | 95 |
@Override |
... | ... | |
86 | 103 |
} |
87 | 104 |
} |
88 | 105 |
|
106 |
@Override |
|
107 |
protected void onStop(){ |
|
108 |
super.onStop(); |
|
109 |
|
|
110 |
/* |
|
111 |
* Need to stop running listener task |
|
112 |
* if we exit |
|
113 |
*/ |
|
114 |
if(loggingListenerTask != null){ |
|
115 |
loggingListenerTask.cancel(true); |
|
116 |
} |
|
117 |
|
|
118 |
if(sessionPersistenceListenerTask != null){ |
|
119 |
sessionPersistenceListenerTask.cancel(true); |
|
120 |
} |
|
121 |
} |
|
122 |
|
|
89 | 123 |
private void setupButton(int resourceId, OnClickListener onClickListener) { |
90 | 124 |
Button button = (Button) findViewById(resourceId); |
91 | 125 |
button.setOnClickListener(onClickListener); |
... | ... | |
275 | 309 |
//Need to show different message depending on the state |
276 | 310 |
//of connection_logs/session_persistence |
277 | 311 |
protected void onPrepareDialog(int id, Dialog dialog){ |
278 |
switch (id) { |
|
279 |
case R.id.connection_log_button: |
|
280 |
String logTitle; |
|
281 |
String logMessage; |
|
282 |
String logButton; |
|
283 |
if(loadBalancer.getIsConnectionLoggingEnabled().equals("true")){ |
|
284 |
logTitle = "Disable Logs"; |
|
285 |
logMessage = "Are you sure you want to disable logs for this Load Balancer?"; |
|
286 |
logButton = "Disable"; |
|
287 |
} else { |
|
288 |
logTitle = "Enable Logs"; |
|
289 |
logMessage = "Log files will be processed every hour and stored in your Cloud Files account. " + |
|
290 |
"Standard Cloud Files storage and transfer fees will be accessed for the use of this feature." + |
|
291 |
"\n\nAre you sure you want to enable logs for this Load Balancer?"; |
|
292 |
logButton = "Enable"; |
|
293 |
} |
|
294 |
((AlertDialog)dialog).setTitle(logTitle); |
|
295 |
((AlertDialog)dialog).setMessage(logMessage); |
|
296 |
Button sessionLogButton = ((AlertDialog)dialog).getButton(AlertDialog.BUTTON1); |
|
297 |
sessionLogButton.setText(logButton); |
|
298 |
sessionLogButton.invalidate(); |
|
299 |
break; |
|
300 |
case R.id.session_persistence_button: |
|
301 |
String sessionMessage; |
|
302 |
String sessionButton; |
|
303 |
if(loadBalancer.getSessionPersistence() != null){ |
|
304 |
Log.d("info", "in sessionpersistence != null"); |
|
305 |
sessionMessage = "Are you sure you want to disable session persistence for this Load Balancer?"; |
|
306 |
sessionButton = "Disable"; |
|
307 |
} else { |
|
308 |
Log.d("info", "in sessionpersistence == null"); |
|
309 |
sessionMessage = "Are you sure you want to enable session persistence for this Load Balancer?"; |
|
310 |
sessionButton = "Enable"; |
|
312 |
if(loadBalancer != null){ |
|
313 |
switch (id) { |
|
314 |
case R.id.connection_log_button: |
|
315 |
String logTitle; |
|
316 |
String logMessage; |
|
317 |
String logButton; |
|
318 |
if(loadBalancer.getIsConnectionLoggingEnabled().equals("true")){ |
|
319 |
logTitle = "Disable Logs"; |
|
320 |
logMessage = "Are you sure you want to disable logs for this Load Balancer?"; |
|
321 |
logButton = "Disable"; |
|
322 |
} else { |
|
323 |
logTitle = "Enable Logs"; |
|
324 |
logMessage = "Log files will be processed every hour and stored in your Cloud Files account. " + |
|
325 |
"Standard Cloud Files storage and transfer fees will be accessed for the use of this feature." + |
|
326 |
"\n\nAre you sure you want to enable logs for this Load Balancer?"; |
|
327 |
logButton = "Enable"; |
|
328 |
} |
|
329 |
((AlertDialog)dialog).setTitle(logTitle); |
|
330 |
((AlertDialog)dialog).setMessage(logMessage); |
|
331 |
Button sessionLogButton = ((AlertDialog)dialog).getButton(AlertDialog.BUTTON1); |
|
332 |
sessionLogButton.setText(logButton); |
|
333 |
sessionLogButton.invalidate(); |
|
334 |
break; |
|
335 |
case R.id.session_persistence_button: |
|
336 |
String sessionMessage; |
|
337 |
String sessionButton; |
|
338 |
if(loadBalancer.getSessionPersistence() != null){ |
|
339 |
Log.d("info", "in sessionpersistence != null"); |
|
340 |
sessionMessage = "Are you sure you want to disable session persistence for this Load Balancer?"; |
|
341 |
sessionButton = "Disable"; |
|
342 |
} else { |
|
343 |
Log.d("info", "in sessionpersistence == null"); |
|
344 |
sessionMessage = "Are you sure you want to enable session persistence for this Load Balancer?"; |
|
345 |
sessionButton = "Enable"; |
|
346 |
} |
|
347 |
((AlertDialog)dialog).setMessage(sessionMessage); |
|
348 |
Button sessionPersistButton = ((AlertDialog)dialog).getButton(AlertDialog.BUTTON1); |
|
349 |
sessionPersistButton.setText(sessionButton); |
|
350 |
sessionPersistButton.invalidate(); |
|
351 |
break; |
|
311 | 352 |
} |
312 |
((AlertDialog)dialog).setMessage(sessionMessage); |
|
313 |
Button sessionPersistButton = ((AlertDialog)dialog).getButton(AlertDialog.BUTTON1); |
|
314 |
sessionPersistButton.setText(sessionButton); |
|
315 |
sessionPersistButton.invalidate(); |
|
316 |
break; |
|
317 | 353 |
} |
318 | 354 |
} |
319 | 355 |
|
... | ... | |
596 | 632 |
|
597 | 633 |
@Override |
598 | 634 |
protected void onPreExecute(){ |
599 |
showDialog(); |
|
635 |
//showDialog(); |
|
636 |
app.setIsSettingLogs(true); |
|
637 |
loggingListenerTask = new LoggingListenerTask(); |
|
638 |
loggingListenerTask.execute(); |
|
600 | 639 |
} |
601 | 640 |
|
602 | 641 |
@Override |
... | ... | |
612 | 651 |
|
613 | 652 |
@Override |
614 | 653 |
protected void onPostExecute(HttpBundle bundle) { |
615 |
hideDialog(); |
|
654 |
//hideDialog(); |
|
655 |
app.setIsSettingLogs(false); |
|
616 | 656 |
HttpResponse response = bundle.getResponse(); |
617 | 657 |
if (response != null) { |
618 | 658 |
int statusCode = response.getStatusLine().getStatusCode(); |
619 | 659 |
if (statusCode == 202 || statusCode == 204) { |
620 |
pollLoadBalancerTask = new PollLoadBalancerTask(); |
|
621 |
pollLoadBalancerTask.execute((Void[]) null); |
|
660 |
if(Boolean.valueOf(loadBalancer.getIsConnectionLoggingEnabled())){ |
|
661 |
showToast("Logging has been disabled"); |
|
662 |
} else { |
|
663 |
showToast("Logging has been enabled"); |
|
664 |
} |
|
622 | 665 |
} else { |
623 | 666 |
CloudServersException cse = parseCloudServersException(response); |
624 | 667 |
if ("".equals(cse.getMessage())) { |
... | ... | |
635 | 678 |
} |
636 | 679 |
} |
637 | 680 |
|
681 |
/* |
|
682 |
* listens for the application to change isSettingLogs |
|
683 |
* listens so activity knows when it should display |
|
684 |
* the new settings |
|
685 |
*/ |
|
686 |
private class LoggingListenerTask extends |
|
687 |
AsyncTask<Void, Void, Void> { |
|
688 |
|
|
689 |
@Override |
|
690 |
protected Void doInBackground(Void... arg1) { |
|
691 |
|
|
692 |
while(app.isSettingLogs()){ |
|
693 |
// wait for process to finish |
|
694 |
// or have it be canceled |
|
695 |
if(loggingListenerTask.isCancelled()){ |
|
696 |
return null; |
|
697 |
} |
|
698 |
} |
|
699 |
return null; |
|
700 |
} |
|
701 |
|
|
702 |
/* |
|
703 |
* when no longer processing, time to load |
|
704 |
* the new files |
|
705 |
*/ |
|
706 |
@Override |
|
707 |
protected void onPostExecute(Void arg1) { |
|
708 |
pollLoadBalancerTask = new PollLoadBalancerTask(); |
|
709 |
pollLoadBalancerTask.execute((Void[]) null); |
|
710 |
} |
|
711 |
} |
|
712 |
|
|
638 | 713 |
private class SessionPersistenceTask extends AsyncTask<Void, Void, HttpBundle> { |
639 | 714 |
|
640 | 715 |
private CloudServersException exception; |
641 |
|
|
716 |
|
|
642 | 717 |
@Override |
643 | 718 |
protected void onPreExecute(){ |
644 |
showDialog(); |
|
719 |
app.setSettingSessionPersistence(true); |
|
720 |
sessionPersistenceListenerTask = new SessionPersistenceListenerTask(); |
|
721 |
sessionPersistenceListenerTask.execute(); |
|
645 | 722 |
} |
646 | 723 |
|
647 | 724 |
@Override |
... | ... | |
659 | 736 |
} |
660 | 737 |
return bundle; |
661 | 738 |
} |
662 |
|
|
739 |
|
|
663 | 740 |
@Override |
664 | 741 |
protected void onPostExecute(HttpBundle bundle) { |
665 |
hideDialog(); |
|
742 |
//hideDialog(); |
|
743 |
app.setSettingSessionPersistence(false); |
|
666 | 744 |
HttpResponse response = bundle.getResponse(); |
667 | 745 |
if (response != null) { |
668 | 746 |
int statusCode = response.getStatusLine().getStatusCode(); |
669 | 747 |
if (statusCode == 202 || statusCode == 200) { |
748 |
if(loadBalancer.getSessionPersistence() != null){ |
|
749 |
showToast("Session Persistence has been disabled"); |
|
750 |
} else { |
|
751 |
showToast("Session Persistence has been enabled"); |
|
752 |
} |
|
670 | 753 |
pollLoadBalancerTask = new PollLoadBalancerTask(); |
671 | 754 |
pollLoadBalancerTask.execute((Void[]) null); |
672 | 755 |
} else { |
... | ... | |
684 | 767 |
|
685 | 768 |
} |
686 | 769 |
} |
770 |
|
|
771 |
/* |
|
772 |
* listens for the application to change isSettingSessionPersistence |
|
773 |
* listens so activity knows when it should display |
|
774 |
* the new settings |
|
775 |
*/ |
|
776 |
private class SessionPersistenceListenerTask extends |
|
777 |
AsyncTask<Void, Void, Void> { |
|
778 |
|
|
779 |
@Override |
|
780 |
protected Void doInBackground(Void... arg1) { |
|
781 |
|
|
782 |
while(app.isSettingSessionPersistence()){ |
|
783 |
// wait for process to finish |
|
784 |
// or have it be canceled |
|
785 |
if(sessionPersistenceListenerTask.isCancelled()){ |
|
786 |
return null; |
|
787 |
} |
|
788 |
} |
|
789 |
return null; |
|
790 |
} |
|
791 |
|
|
792 |
/* |
|
793 |
* when no longer processing, time to load |
|
794 |
* the new files |
|
795 |
*/ |
|
796 |
@Override |
|
797 |
protected void onPostExecute(Void arg1) { |
|
798 |
pollLoadBalancerTask = new PollLoadBalancerTask(); |
|
799 |
pollLoadBalancerTask.execute((Void[]) null); |
|
800 |
} |
|
801 |
} |
|
687 | 802 |
|
688 | 803 |
|
689 | 804 |
} |
Also available in: Unified diff