Fix for multiple help popovers showing up on top of each other

pull/14/head
Tim Su 13 years ago
parent 487da40552
commit bc0cc935c6

@ -1094,6 +1094,8 @@ public class TaskListFragment extends ListFragment implements OnScrollListener,
}
private void showTaskEditHelpPopover() {
if(!AstridPreferences.canShowPopover())
return;
if (!Preferences.getBoolean(R.string.p_showed_tap_task_help, false)) {
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(
Context.INPUT_METHOD_SERVICE);
@ -1123,6 +1125,8 @@ public class TaskListFragment extends ListFragment implements OnScrollListener,
}
private void showListsHelp() {
if(!AstridPreferences.canShowPopover())
return;
if (!Preferences.getBoolean(
R.string.p_showed_lists_help, false)) {
if (AndroidUtilities.isTabletSized(getActivity())) {

@ -23,6 +23,10 @@ public class AstridPreferences {
public static final String P_FIRST_LAUNCH = "fltime"; //$NON-NLS-1$
public static final String P_LAST_POPOVER = "lpopover"; //$NON-NLS-1$
private static final long MIN_POPOVER_TIME = 3 * 1000L;
/** Set preference defaults, if unset. called at startup */
public static void setPreferenceDefaults() {
Context context = ContextManager.getContext();
@ -66,4 +70,13 @@ public class AstridPreferences {
Preferences.setInt(P_CURRENT_VERSION, version);
}
/** If true, can show a help popover. If false, another one was recently shown */
public static boolean canShowPopover() {
long last = Preferences.getLong(P_LAST_POPOVER, 0);
if(System.currentTimeMillis() - last < MIN_POPOVER_TIME)
return false;
Preferences.setLong(P_LAST_POPOVER, System.currentTimeMillis());
return true;
}
}

@ -69,27 +69,25 @@ public class WelcomeWalkthrough extends ActFmLoginActivity {
findViewById(R.id.next).setVisibility(
position == mAdapter.getCount()-1 ? View.GONE : View.VISIBLE);
if(currentPage == mAdapter.getCount()-1) {
OnClickListener done = new OnClickListener() {
@Override
public void onClick(View arg0) {
finish();
}
};
currentView.findViewById(R.id.welcome_walkthrough_title).setOnClickListener(done);
currentView.findViewById(R.id.welcome_walkthrough_image).setOnClickListener(done);
}
}
@Override
protected void initializeUI() {
if(mAdapter == null)
return;
if(currentPage == mAdapter.getCount()-1) {
if(findViewById(R.id.fb_login) != null) {
if(currentPage == mAdapter.getCount()-1 && findViewById(R.id.fb_login) != null) {
super.initializeUI();
setupLoginLater();
} else {
OnClickListener done = new OnClickListener() {
@Override
public void onClick(View arg0) {
finish();
}
};
currentView.findViewById(R.id.welcome_walkthrough_title).setOnClickListener(done);
currentView.findViewById(R.id.welcome_walkthrough_image).setOnClickListener(done);
}
}
}

Loading…
Cancel
Save