How to enable or disable functions in my app depending on fetched data
I'm working on a profile for an app that requires some data to be fetched from Firebase database and then shown into the user profile.
So far, so good, this requirement is done and all the data is fetched correctly to the user profiles.
But now I have another requirement that put some of my functionality in a spot that I'm trying to figure out how to do it the better way.
I load all the data of the profile with this method (since it's a big method I'm going to shrink it, but the question is not about the code but about logic).
private void loadProfileData() {
if (mActivity == null) {
return;
}
mProgressBar.setVisibility(View.VISIBLE);
mDatabase.child("users").child(mAuth.getCurrentUser().getUid()).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
UserModel model = dataSnapshot.getValue(UserModel.class);
String username = model.getUsername();
.
.
.
//All data loaded
mProgressBar.setVisibility(View.GONE);
...
So, while this data is being fetched I have an overflow menu that has the option to edit the user profile.
Now, that edit profile option is enabled while my data is beign fetched, and I need to pass extras to that Activity with all the user info that is fetched from Firebase in order to load it there and edit it.
Now, I have thought this in two ways
- Wait until all async process is done and then enable the edit
profile option in the navigation menu - Leave the menu button enabled while the data is being fetched and
fetch it again when I'm inside that Activity (that would be
reloading all the data instead of passing it as extra which will be
more efficient) but at the same time I'm doing two requests for the
same data
Is there any better way to implement this functionality?
java android firebase firebase-realtime-database
add a comment |
I'm working on a profile for an app that requires some data to be fetched from Firebase database and then shown into the user profile.
So far, so good, this requirement is done and all the data is fetched correctly to the user profiles.
But now I have another requirement that put some of my functionality in a spot that I'm trying to figure out how to do it the better way.
I load all the data of the profile with this method (since it's a big method I'm going to shrink it, but the question is not about the code but about logic).
private void loadProfileData() {
if (mActivity == null) {
return;
}
mProgressBar.setVisibility(View.VISIBLE);
mDatabase.child("users").child(mAuth.getCurrentUser().getUid()).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
UserModel model = dataSnapshot.getValue(UserModel.class);
String username = model.getUsername();
.
.
.
//All data loaded
mProgressBar.setVisibility(View.GONE);
...
So, while this data is being fetched I have an overflow menu that has the option to edit the user profile.
Now, that edit profile option is enabled while my data is beign fetched, and I need to pass extras to that Activity with all the user info that is fetched from Firebase in order to load it there and edit it.
Now, I have thought this in two ways
- Wait until all async process is done and then enable the edit
profile option in the navigation menu - Leave the menu button enabled while the data is being fetched and
fetch it again when I'm inside that Activity (that would be
reloading all the data instead of passing it as extra which will be
more efficient) but at the same time I'm doing two requests for the
same data
Is there any better way to implement this functionality?
java android firebase firebase-realtime-database
add a comment |
I'm working on a profile for an app that requires some data to be fetched from Firebase database and then shown into the user profile.
So far, so good, this requirement is done and all the data is fetched correctly to the user profiles.
But now I have another requirement that put some of my functionality in a spot that I'm trying to figure out how to do it the better way.
I load all the data of the profile with this method (since it's a big method I'm going to shrink it, but the question is not about the code but about logic).
private void loadProfileData() {
if (mActivity == null) {
return;
}
mProgressBar.setVisibility(View.VISIBLE);
mDatabase.child("users").child(mAuth.getCurrentUser().getUid()).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
UserModel model = dataSnapshot.getValue(UserModel.class);
String username = model.getUsername();
.
.
.
//All data loaded
mProgressBar.setVisibility(View.GONE);
...
So, while this data is being fetched I have an overflow menu that has the option to edit the user profile.
Now, that edit profile option is enabled while my data is beign fetched, and I need to pass extras to that Activity with all the user info that is fetched from Firebase in order to load it there and edit it.
Now, I have thought this in two ways
- Wait until all async process is done and then enable the edit
profile option in the navigation menu - Leave the menu button enabled while the data is being fetched and
fetch it again when I'm inside that Activity (that would be
reloading all the data instead of passing it as extra which will be
more efficient) but at the same time I'm doing two requests for the
same data
Is there any better way to implement this functionality?
java android firebase firebase-realtime-database
I'm working on a profile for an app that requires some data to be fetched from Firebase database and then shown into the user profile.
So far, so good, this requirement is done and all the data is fetched correctly to the user profiles.
But now I have another requirement that put some of my functionality in a spot that I'm trying to figure out how to do it the better way.
I load all the data of the profile with this method (since it's a big method I'm going to shrink it, but the question is not about the code but about logic).
private void loadProfileData() {
if (mActivity == null) {
return;
}
mProgressBar.setVisibility(View.VISIBLE);
mDatabase.child("users").child(mAuth.getCurrentUser().getUid()).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
UserModel model = dataSnapshot.getValue(UserModel.class);
String username = model.getUsername();
.
.
.
//All data loaded
mProgressBar.setVisibility(View.GONE);
...
So, while this data is being fetched I have an overflow menu that has the option to edit the user profile.
Now, that edit profile option is enabled while my data is beign fetched, and I need to pass extras to that Activity with all the user info that is fetched from Firebase in order to load it there and edit it.
Now, I have thought this in two ways
- Wait until all async process is done and then enable the edit
profile option in the navigation menu - Leave the menu button enabled while the data is being fetched and
fetch it again when I'm inside that Activity (that would be
reloading all the data instead of passing it as extra which will be
more efficient) but at the same time I'm doing two requests for the
same data
Is there any better way to implement this functionality?
java android firebase firebase-realtime-database
java android firebase firebase-realtime-database
edited Nov 29 '18 at 22:22
halfer
14.6k758113
14.6k758113
asked Nov 27 '18 at 12:22
Gastón SaillénGastón Saillén
3,74841233
3,74841233
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
Is it possible to load all user data in the background, perhaps on app start? You can then display the edit button, and assume the current cache of data is correct.
You can still pull the latest copy of the data, and then update the UI accordingly if it's any different. I imagine the data won't change often however, so loading it a few minutes earlier is presumably safe.
yes, I thought this, and the thing is that the first Activity that the user see is the Profile one, so there is always the menu button, and disabling all the overflow or the edit profile button will kill some UX
– Gastón Saillén
Nov 27 '18 at 12:26
Ah, so you need the profile data? Why not have a blocking progress spinner or similar then, since you don't want them interacting until you have at least a version of their profile data?
– JakeSteam
Nov 27 '18 at 12:28
yep, I have a progressBar that shows at the start untill all the data is done fetching and then I show to the user all the data, but the thing is that the overflow menu is always there and I dont want it to be disabled untill the data is done fetching , I saw how instagram does this and its kinda like they preload the data at the start of the app and when you navigate to the profile section , all is done, but at my use case I start at the profile Activity
– Gastón Saillén
Nov 27 '18 at 12:29
1
thats a good idea Jake, but Imagine that loading a profile with images at the loading screen will maybe affect in the time of signing in, but I will take that advice since its a good workaround at the moment
– Gastón Saillén
Nov 27 '18 at 12:34
1
The user has to wait either way, on login makes more sense (since they have to wait anyway). Anyway, this has become a design discussion, maybe ask a new question if you've got a new question?
– JakeSteam
Nov 27 '18 at 12:36
|
show 3 more comments
Nice question Gastón. So to answer your questions:
Wait until all async process is done and then enable the edit profile option in the navigation menu
In my opinion, this is the recommended way in which you can solve this. Wait for the data and then enable the button. Let's be honest, you cannot edit something that isn't available yet. So get the data, enable the button and let the user update his own profile.
Leave the menu button enabled while the data is being fetched and fetch it again when I'm inside that Activity (that would be reloading all the data instead of passing it as extra which will be more efficient) but at the same time I'm doing two requests for the same data
There is no need to get the data twice. It will be a waste of bandwidth and resources. There is not a good practice to get data over and over again since you can reuse it.
2
Btw, I don't think that getting the data before is needed will be a good option because the user might edit his profile or might not. So creating extra requests to get some data that you might use it, isn't practical. IMHO, I don't get data untill I certainly need it.
– Alex Mamo
Nov 27 '18 at 12:46
1
That's a really nice point !
– Gastón Saillén
Nov 27 '18 at 12:55
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53499598%2fhow-to-enable-or-disable-functions-in-my-app-depending-on-fetched-data%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Is it possible to load all user data in the background, perhaps on app start? You can then display the edit button, and assume the current cache of data is correct.
You can still pull the latest copy of the data, and then update the UI accordingly if it's any different. I imagine the data won't change often however, so loading it a few minutes earlier is presumably safe.
yes, I thought this, and the thing is that the first Activity that the user see is the Profile one, so there is always the menu button, and disabling all the overflow or the edit profile button will kill some UX
– Gastón Saillén
Nov 27 '18 at 12:26
Ah, so you need the profile data? Why not have a blocking progress spinner or similar then, since you don't want them interacting until you have at least a version of their profile data?
– JakeSteam
Nov 27 '18 at 12:28
yep, I have a progressBar that shows at the start untill all the data is done fetching and then I show to the user all the data, but the thing is that the overflow menu is always there and I dont want it to be disabled untill the data is done fetching , I saw how instagram does this and its kinda like they preload the data at the start of the app and when you navigate to the profile section , all is done, but at my use case I start at the profile Activity
– Gastón Saillén
Nov 27 '18 at 12:29
1
thats a good idea Jake, but Imagine that loading a profile with images at the loading screen will maybe affect in the time of signing in, but I will take that advice since its a good workaround at the moment
– Gastón Saillén
Nov 27 '18 at 12:34
1
The user has to wait either way, on login makes more sense (since they have to wait anyway). Anyway, this has become a design discussion, maybe ask a new question if you've got a new question?
– JakeSteam
Nov 27 '18 at 12:36
|
show 3 more comments
Is it possible to load all user data in the background, perhaps on app start? You can then display the edit button, and assume the current cache of data is correct.
You can still pull the latest copy of the data, and then update the UI accordingly if it's any different. I imagine the data won't change often however, so loading it a few minutes earlier is presumably safe.
yes, I thought this, and the thing is that the first Activity that the user see is the Profile one, so there is always the menu button, and disabling all the overflow or the edit profile button will kill some UX
– Gastón Saillén
Nov 27 '18 at 12:26
Ah, so you need the profile data? Why not have a blocking progress spinner or similar then, since you don't want them interacting until you have at least a version of their profile data?
– JakeSteam
Nov 27 '18 at 12:28
yep, I have a progressBar that shows at the start untill all the data is done fetching and then I show to the user all the data, but the thing is that the overflow menu is always there and I dont want it to be disabled untill the data is done fetching , I saw how instagram does this and its kinda like they preload the data at the start of the app and when you navigate to the profile section , all is done, but at my use case I start at the profile Activity
– Gastón Saillén
Nov 27 '18 at 12:29
1
thats a good idea Jake, but Imagine that loading a profile with images at the loading screen will maybe affect in the time of signing in, but I will take that advice since its a good workaround at the moment
– Gastón Saillén
Nov 27 '18 at 12:34
1
The user has to wait either way, on login makes more sense (since they have to wait anyway). Anyway, this has become a design discussion, maybe ask a new question if you've got a new question?
– JakeSteam
Nov 27 '18 at 12:36
|
show 3 more comments
Is it possible to load all user data in the background, perhaps on app start? You can then display the edit button, and assume the current cache of data is correct.
You can still pull the latest copy of the data, and then update the UI accordingly if it's any different. I imagine the data won't change often however, so loading it a few minutes earlier is presumably safe.
Is it possible to load all user data in the background, perhaps on app start? You can then display the edit button, and assume the current cache of data is correct.
You can still pull the latest copy of the data, and then update the UI accordingly if it's any different. I imagine the data won't change often however, so loading it a few minutes earlier is presumably safe.
answered Nov 27 '18 at 12:25
JakeSteamJakeSteam
2,49152440
2,49152440
yes, I thought this, and the thing is that the first Activity that the user see is the Profile one, so there is always the menu button, and disabling all the overflow or the edit profile button will kill some UX
– Gastón Saillén
Nov 27 '18 at 12:26
Ah, so you need the profile data? Why not have a blocking progress spinner or similar then, since you don't want them interacting until you have at least a version of their profile data?
– JakeSteam
Nov 27 '18 at 12:28
yep, I have a progressBar that shows at the start untill all the data is done fetching and then I show to the user all the data, but the thing is that the overflow menu is always there and I dont want it to be disabled untill the data is done fetching , I saw how instagram does this and its kinda like they preload the data at the start of the app and when you navigate to the profile section , all is done, but at my use case I start at the profile Activity
– Gastón Saillén
Nov 27 '18 at 12:29
1
thats a good idea Jake, but Imagine that loading a profile with images at the loading screen will maybe affect in the time of signing in, but I will take that advice since its a good workaround at the moment
– Gastón Saillén
Nov 27 '18 at 12:34
1
The user has to wait either way, on login makes more sense (since they have to wait anyway). Anyway, this has become a design discussion, maybe ask a new question if you've got a new question?
– JakeSteam
Nov 27 '18 at 12:36
|
show 3 more comments
yes, I thought this, and the thing is that the first Activity that the user see is the Profile one, so there is always the menu button, and disabling all the overflow or the edit profile button will kill some UX
– Gastón Saillén
Nov 27 '18 at 12:26
Ah, so you need the profile data? Why not have a blocking progress spinner or similar then, since you don't want them interacting until you have at least a version of their profile data?
– JakeSteam
Nov 27 '18 at 12:28
yep, I have a progressBar that shows at the start untill all the data is done fetching and then I show to the user all the data, but the thing is that the overflow menu is always there and I dont want it to be disabled untill the data is done fetching , I saw how instagram does this and its kinda like they preload the data at the start of the app and when you navigate to the profile section , all is done, but at my use case I start at the profile Activity
– Gastón Saillén
Nov 27 '18 at 12:29
1
thats a good idea Jake, but Imagine that loading a profile with images at the loading screen will maybe affect in the time of signing in, but I will take that advice since its a good workaround at the moment
– Gastón Saillén
Nov 27 '18 at 12:34
1
The user has to wait either way, on login makes more sense (since they have to wait anyway). Anyway, this has become a design discussion, maybe ask a new question if you've got a new question?
– JakeSteam
Nov 27 '18 at 12:36
yes, I thought this, and the thing is that the first Activity that the user see is the Profile one, so there is always the menu button, and disabling all the overflow or the edit profile button will kill some UX
– Gastón Saillén
Nov 27 '18 at 12:26
yes, I thought this, and the thing is that the first Activity that the user see is the Profile one, so there is always the menu button, and disabling all the overflow or the edit profile button will kill some UX
– Gastón Saillén
Nov 27 '18 at 12:26
Ah, so you need the profile data? Why not have a blocking progress spinner or similar then, since you don't want them interacting until you have at least a version of their profile data?
– JakeSteam
Nov 27 '18 at 12:28
Ah, so you need the profile data? Why not have a blocking progress spinner or similar then, since you don't want them interacting until you have at least a version of their profile data?
– JakeSteam
Nov 27 '18 at 12:28
yep, I have a progressBar that shows at the start untill all the data is done fetching and then I show to the user all the data, but the thing is that the overflow menu is always there and I dont want it to be disabled untill the data is done fetching , I saw how instagram does this and its kinda like they preload the data at the start of the app and when you navigate to the profile section , all is done, but at my use case I start at the profile Activity
– Gastón Saillén
Nov 27 '18 at 12:29
yep, I have a progressBar that shows at the start untill all the data is done fetching and then I show to the user all the data, but the thing is that the overflow menu is always there and I dont want it to be disabled untill the data is done fetching , I saw how instagram does this and its kinda like they preload the data at the start of the app and when you navigate to the profile section , all is done, but at my use case I start at the profile Activity
– Gastón Saillén
Nov 27 '18 at 12:29
1
1
thats a good idea Jake, but Imagine that loading a profile with images at the loading screen will maybe affect in the time of signing in, but I will take that advice since its a good workaround at the moment
– Gastón Saillén
Nov 27 '18 at 12:34
thats a good idea Jake, but Imagine that loading a profile with images at the loading screen will maybe affect in the time of signing in, but I will take that advice since its a good workaround at the moment
– Gastón Saillén
Nov 27 '18 at 12:34
1
1
The user has to wait either way, on login makes more sense (since they have to wait anyway). Anyway, this has become a design discussion, maybe ask a new question if you've got a new question?
– JakeSteam
Nov 27 '18 at 12:36
The user has to wait either way, on login makes more sense (since they have to wait anyway). Anyway, this has become a design discussion, maybe ask a new question if you've got a new question?
– JakeSteam
Nov 27 '18 at 12:36
|
show 3 more comments
Nice question Gastón. So to answer your questions:
Wait until all async process is done and then enable the edit profile option in the navigation menu
In my opinion, this is the recommended way in which you can solve this. Wait for the data and then enable the button. Let's be honest, you cannot edit something that isn't available yet. So get the data, enable the button and let the user update his own profile.
Leave the menu button enabled while the data is being fetched and fetch it again when I'm inside that Activity (that would be reloading all the data instead of passing it as extra which will be more efficient) but at the same time I'm doing two requests for the same data
There is no need to get the data twice. It will be a waste of bandwidth and resources. There is not a good practice to get data over and over again since you can reuse it.
2
Btw, I don't think that getting the data before is needed will be a good option because the user might edit his profile or might not. So creating extra requests to get some data that you might use it, isn't practical. IMHO, I don't get data untill I certainly need it.
– Alex Mamo
Nov 27 '18 at 12:46
1
That's a really nice point !
– Gastón Saillén
Nov 27 '18 at 12:55
add a comment |
Nice question Gastón. So to answer your questions:
Wait until all async process is done and then enable the edit profile option in the navigation menu
In my opinion, this is the recommended way in which you can solve this. Wait for the data and then enable the button. Let's be honest, you cannot edit something that isn't available yet. So get the data, enable the button and let the user update his own profile.
Leave the menu button enabled while the data is being fetched and fetch it again when I'm inside that Activity (that would be reloading all the data instead of passing it as extra which will be more efficient) but at the same time I'm doing two requests for the same data
There is no need to get the data twice. It will be a waste of bandwidth and resources. There is not a good practice to get data over and over again since you can reuse it.
2
Btw, I don't think that getting the data before is needed will be a good option because the user might edit his profile or might not. So creating extra requests to get some data that you might use it, isn't practical. IMHO, I don't get data untill I certainly need it.
– Alex Mamo
Nov 27 '18 at 12:46
1
That's a really nice point !
– Gastón Saillén
Nov 27 '18 at 12:55
add a comment |
Nice question Gastón. So to answer your questions:
Wait until all async process is done and then enable the edit profile option in the navigation menu
In my opinion, this is the recommended way in which you can solve this. Wait for the data and then enable the button. Let's be honest, you cannot edit something that isn't available yet. So get the data, enable the button and let the user update his own profile.
Leave the menu button enabled while the data is being fetched and fetch it again when I'm inside that Activity (that would be reloading all the data instead of passing it as extra which will be more efficient) but at the same time I'm doing two requests for the same data
There is no need to get the data twice. It will be a waste of bandwidth and resources. There is not a good practice to get data over and over again since you can reuse it.
Nice question Gastón. So to answer your questions:
Wait until all async process is done and then enable the edit profile option in the navigation menu
In my opinion, this is the recommended way in which you can solve this. Wait for the data and then enable the button. Let's be honest, you cannot edit something that isn't available yet. So get the data, enable the button and let the user update his own profile.
Leave the menu button enabled while the data is being fetched and fetch it again when I'm inside that Activity (that would be reloading all the data instead of passing it as extra which will be more efficient) but at the same time I'm doing two requests for the same data
There is no need to get the data twice. It will be a waste of bandwidth and resources. There is not a good practice to get data over and over again since you can reuse it.
answered Nov 27 '18 at 12:37
Alex MamoAlex Mamo
44.6k82862
44.6k82862
2
Btw, I don't think that getting the data before is needed will be a good option because the user might edit his profile or might not. So creating extra requests to get some data that you might use it, isn't practical. IMHO, I don't get data untill I certainly need it.
– Alex Mamo
Nov 27 '18 at 12:46
1
That's a really nice point !
– Gastón Saillén
Nov 27 '18 at 12:55
add a comment |
2
Btw, I don't think that getting the data before is needed will be a good option because the user might edit his profile or might not. So creating extra requests to get some data that you might use it, isn't practical. IMHO, I don't get data untill I certainly need it.
– Alex Mamo
Nov 27 '18 at 12:46
1
That's a really nice point !
– Gastón Saillén
Nov 27 '18 at 12:55
2
2
Btw, I don't think that getting the data before is needed will be a good option because the user might edit his profile or might not. So creating extra requests to get some data that you might use it, isn't practical. IMHO, I don't get data untill I certainly need it.
– Alex Mamo
Nov 27 '18 at 12:46
Btw, I don't think that getting the data before is needed will be a good option because the user might edit his profile or might not. So creating extra requests to get some data that you might use it, isn't practical. IMHO, I don't get data untill I certainly need it.
– Alex Mamo
Nov 27 '18 at 12:46
1
1
That's a really nice point !
– Gastón Saillén
Nov 27 '18 at 12:55
That's a really nice point !
– Gastón Saillén
Nov 27 '18 at 12:55
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53499598%2fhow-to-enable-or-disable-functions-in-my-app-depending-on-fetched-data%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown