Feature
Allow ActivityIndicator dialogs on Android to be cancelable by the user.
Note: this is an Android only feature and doesn't require parity with iOS and MobileWeb
since they don't use modal dialogs.
API Changes
- New property: cancelable
When true the indicator can be canceled by the user.
- New event: cancel
Fired when the user has canceled the indicator. This is called after the indicator
dialog has been hidden, so the developer does not need to call hide() manually.
Test case
var hideIndicatorTimeout = null;
var win = Ti.UI.createWindow({
backgroundColor: "red",
layout: 'vertical'
});
var indicator = Ti.UI.createActivityIndicator({
message: "Processing...",
cancelable: true // Indicator will be cancelable by setting this to true.
});
indicator.addEventListener('cancel', function() {
// Fired when the user has canceled this indicator.
clearTimeout(hideIndicatorTimeout);
alert("Aborted processing");
});
var cancelableSwitch = Titanium.UI.createSwitch({
title: 'Cancelable',
style: Ti.UI.Android.SWITCH_STYLE_CHECKBOX,
value: true
});
cancelableSwitch.addEventListener('change',function(e)
{
indicator.cancelable = e.value;
});
win.add(cancelableSwitch);
var showIndicatorButton = Ti.UI.createButton({
title: "Show Indicator"
});
showIndicatorButton.addEventListener('click', function() {
indicator.show();
hideIndicatorTimeout = setTimeout(function() {
indicator.hide();
}, 5000);
});
win.add(showIndicatorButton);
win.open();
1. Start up the application.
2. Click "Show Indicator".
3. Wait for it to go away (~5 seconds).
4. Click "Show Indicator" again.
5. Press the BACK button, the dialog should go away. You should also see an alert popup.
6. Uncheck "Cancelable" and click "Show Indicator" again.
7. Try hitting the BACK button, nothing should happen. Dialog should disappear in 5 seconds.
8. Check "Cancelable" and click "Show Indicator".
9. Try hitting the BACK button, the dialog should go away and alert popup (same as step 5).
Sent [Pull Request #2118](https://github.com/appcelerator/titanium_mobile/pull/2118). Includes implementation and documentation updates.
Closing as Fixed. Verified via test code. SDK: 2.1.0.v20120605140359 Studio: 2.1.0.201206041625 OS: Snow Leopard Android: V8 Devices Tested: Nexus One 2.2.2, Nexus S 4.0.4