Hello,
In our product we require an increase for isolated storage above 1MB, we prompt the user to inform them of this and then we pop-up the standard Silverlight increase isolated storage dialog. The issue is that we used RadWindow.Confirm() for this as it must be "user initiated" (e.g. button-click). In the code below IncreaseQuotaTo()now always returns false even though the silverlight pop-up never opens.
This worked with 2013.1.0220 DLLS, but not with the new Q3 2013 (2013.3.1016).
Our code looked something like this:
The above worked very well for over a year, we had to put a quick fix in since this wouldn't allow log-ins.
This quick fix worked well but is less than ideal:
We could keep it like this or create our own prompt dialog with button events. My question is: will this change (be fixed) in the future or is this behavior telerik is going for?
Thanks,
Patrick
In our product we require an increase for isolated storage above 1MB, we prompt the user to inform them of this and then we pop-up the standard Silverlight increase isolated storage dialog. The issue is that we used RadWindow.Confirm() for this as it must be "user initiated" (e.g. button-click). In the code below IncreaseQuotaTo()now always returns false even though the silverlight pop-up never opens.
This worked with 2013.1.0220 DLLS, but not with the new Q3 2013 (2013.3.1016).
Our code looked something like this:
DialogParameters parameters =
new
DialogParameters();
parameters.Content =
"You must increase storage space to use this product. Increase storage?"
;
parameters.OkButtonContent =
"Yes"
;
parameters.CancelButtonContent =
"No"
;
parameters.Theme =
new
Expression_DarkTheme();
parameters.Closed = (s, args) =>
//having a breakpoint in this function causes IncreaseQuotaTo to always return false. It must disrupt the 'user initiated-ness' of it.
{
RadWindow dlg = (RadWindow)s;
if
(dlg.DialogResult ==
true
)
{
using
(var store = IsolatedStorageFile.GetUserStoreForApplication())
{
//Request more quota space
Int64 newQuotaSize = 250 * 1024 * 1024;
//250MB
if
(store.IncreaseQuotaTo(newQuotaSize))
{
LoadApplication();
}
else
{
Logout();
}
}
}
else
{
Logout();
}
};
RadWindow.Confirm(parameters);
The above worked very well for over a year, we had to put a quick fix in since this wouldn't allow log-ins.
This quick fix worked well but is less than ideal:
RadWindow.Confirm(parameters);
//this allows the window to draw then drill down to get the OK button to get the event, this allows store.IncreaseQuotaTo() to work correctly for a user init event
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
var windows = RadWindowManager.Current.GetWindows();
if
(windows !=
null
)
{
foreach
(var win
in
windows)
{
var buttons = win.ChildrenOfType<RadButton>();
foreach
(var button
in
buttons)
{
if
(button.Name ==
"OK"
)
{
button.Click += isolatedStorageIncreaseDialogClosed;
return
;
}
}
}
}
});
}
private
void
isolatedStorageIncreaseDialogClosed(
object
sender, RoutedEventArgs e)
{
using
(var store = IsolatedStorageFile.GetUserStoreForApplication())
{
// Request more quota space
Int64 newQuotaSize = 250 * 1024 * 1024;
//250MB
if
(store.IncreaseQuotaTo(newQuotaSize))
{
LoadApplication();
}
else
{
Logout();
}
}
}
We could keep it like this or create our own prompt dialog with button events. My question is: will this change (be fixed) in the future or is this behavior telerik is going for?
Thanks,
Patrick