diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DelegateBase.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DelegateBase.java
index 1a878056b..495704c32 100644
--- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DelegateBase.java
+++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DelegateBase.java
@@ -319,6 +319,13 @@ public class DelegateBase implements DlgClickNotify,
}
}
+ private void showFaq( String category, String entry )
+ {
+ Context context = getActivity();
+ String uri = getString( R.string.faq_uri_fmt, category, entry );
+ NetUtils.launchWebBrowserWith( context, uri );
+ }
+
protected String getString( int resID, Object... params )
{
return LocUtils.getString( m_activity, resID, params );
@@ -737,7 +744,7 @@ public class DelegateBase implements DlgClickNotify,
public boolean onPosButton( Action action, Object[] params )
{
boolean handled = true;
- Log.d( TAG, "%s.onPosButton(%s)", getClass().getSimpleName(), action );
+ // Log.d( TAG, "%s.onPosButton(%s)", getClass().getSimpleName(), action );
switch( action ) {
case ENABLE_NBS_ASK:
showSMSEnableDialog( Action.ENABLE_NBS_DO );
@@ -757,8 +764,11 @@ public class DelegateBase implements DlgClickNotify,
case PERMS_BANNED_INFO:
NetUtils.launchWebBrowserWith( m_activity, R.string.nbs_ban_url );
break;
+ case SHOW_FAQ:
+ showFaq( (String)params[0], (String)params[1] );
+ break;
default:
- Log.d( TAG, "unhandled action %s", action.toString() );
+ Log.d( TAG, "onPosButton(): unhandled action %s", action.toString() );
// Assert.assertTrue( !BuildConfig.DEBUG );
handled = false;
break;
diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictBrowseDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictBrowseDelegate.java
index 6ead3d02d..b4a07ece4 100644
--- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictBrowseDelegate.java
+++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictBrowseDelegate.java
@@ -133,6 +133,7 @@ public class DictBrowseDelegate extends DelegateBase
private PatTableRow m_rows[] = { null, null, null };
private Spinner m_spinnerMin;
private Spinner m_spinnerMax;
+ private boolean m_newAlertShown;
private class DictListAdapter extends BaseAdapter
implements SectionIndexer {
@@ -688,11 +689,25 @@ public class DictBrowseDelegate extends DelegateBase
m_browseState.onFilterAccepted( m_dict, null );
initList( wrapper );
setFindPats( m_browseState.m_pats );
+
+ newFeatureAlert();
}
} );
}
} );
}
+
+ private void newFeatureAlert()
+ {
+ if ( ! m_newAlertShown ) {
+ m_newAlertShown = true;
+ makeNotAgainBuilder( R.string.new_feature_filter, R.string.key_na_newFeatureFilter )
+ .setActionPair( Action.SHOW_FAQ, R.string.button_faq )
+ .setParams("filters", "intro")
+ .setTitle(R.string.new_feature_title)
+ .show();
+ }
+ }
private void initList( IterWrapper newIter )
{
diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DlgDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DlgDelegate.java
index 347d8d835..110595663 100644
--- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DlgDelegate.java
+++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DlgDelegate.java
@@ -124,6 +124,7 @@ public class DlgDelegate {
ASKED_PHONE_STATE,
PERMS_QUERY,
PERMS_BANNED_INFO,
+ SHOW_FAQ,
} // Action enum
public static class ActionPair implements Serializable {
diff --git a/xwords4/android/app/src/main/res/values/common_rsrc.xml b/xwords4/android/app/src/main/res/values/common_rsrc.xml
index 5a95ea407..97a9b9746 100644
--- a/xwords4/android/app/src/main/res/values/common_rsrc.xml
+++ b/xwords4/android/app/src/main/res/values/common_rsrc.xml
@@ -156,6 +156,7 @@
key_na_longtap_lookup
key_na_perms_phonestate
key_na_addBlankButton
+ key_na_newFeatureFilter
key_na_dupstatus_host
key_na_dupstatus_guest
@@ -176,6 +177,8 @@
https://eehouse.org/xw4/relay.py
https://liquidsugar.net/xw4/api/v1
+ https://eehouse.org/xw4/faq.html#%1$s
+
- 15x15
- 13x13
diff --git a/xwords4/android/app/src/main/res/values/strings.xml b/xwords4/android/app/src/main/res/values/strings.xml
index 79377f1bf..2c0862d1e 100644
--- a/xwords4/android/app/src/main/res/values/strings.xml
+++ b/xwords4/android/app/src/main/res/values/strings.xml
@@ -732,13 +732,13 @@
Restore all
Are you sure you want to
- restore all color settings to their original values?
+ restore all color settings to their default values?
Restore colors
Are you sure you want to restore
- all settings to their original values?
+ all settings to their default values?
Processing %1$d words
+
+ This wordlist browser now has
+ dramatically improved filtering abilities. As an example, you can
+ show all words containing \"QU\" and ending in \"ING\".\n\nAccess
+ filtering by tapping the Expander button at the upper-right corner
+ of the window.\n\nRead more on the FAQ by tapping the button
+ below.
+
Email author
Comment about CrossWords
@@ -2611,6 +2620,10 @@
language -->
\"%1$s\" cannot be spelled with %2$s tiles.
+ New Feature Alert
+
+ Show FAQ
+
Internet/MQTT
MQTT Invitation