Skip to content

Commit 12b502d

Browse files
authored
Merge pull request #5 from headlines-toolkit/refactor_app_config_wording_anhancements
refactor(config): rename tabs and descriptions
2 parents 93db7f4 + 124506a commit 12b502d

File tree

1 file changed

+59
-33
lines changed

1 file changed

+59
-33
lines changed

lib/app_configuration/view/app_configuration_page.dart

Lines changed: 59 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ class _AppConfigurationPageState extends State<AppConfigurationPage>
5252
controller: _tabController,
5353
isScrollable: true,
5454
tabs: const [
55-
Tab(text: 'User Preferences'),
56-
Tab(text: 'Ad Config'),
57-
Tab(text: 'Account Actions'),
55+
Tab(text: 'User Content Limits'),
56+
Tab(text: 'Ad Settings'),
57+
Tab(text: 'In-App Prompts'),
5858
Tab(text: 'App Operational Status'),
5959
Tab(text: 'Force Update'),
6060
],
@@ -231,12 +231,15 @@ class _AppConfigurationPageState extends State<AppConfigurationPage>
231231
crossAxisAlignment: CrossAxisAlignment.start,
232232
children: [
233233
Text(
234-
'User Preference Limits',
234+
'User Content Limits',
235235
style: Theme.of(context).textTheme.headlineSmall,
236236
),
237237
const SizedBox(height: AppSpacing.md),
238238
Text(
239-
'These settings define the maximum number of items a user can follow or save, tiered by user role. Changes here directly impact user capabilities.',
239+
'These settings define the maximum number of countries, news sources, '
240+
'categories, and saved headlines a user can follow or save. '
241+
'Limits vary by user type (Guest, Standard, Premium) and directly '
242+
'impact what content users can curate.',
240243
style: Theme.of(context).textTheme.bodySmall?.copyWith(
241244
color: Theme.of(context).colorScheme.onSurface.withOpacity(0.7),
242245
),
@@ -313,12 +316,16 @@ class _AppConfigurationPageState extends State<AppConfigurationPage>
313316
crossAxisAlignment: CrossAxisAlignment.start,
314317
children: [
315318
Text(
316-
'Ad Configuration',
319+
'Ad Settings',
317320
style: Theme.of(context).textTheme.headlineSmall,
318321
),
319322
const SizedBox(height: AppSpacing.md),
320323
Text(
321-
'These settings control how ads are injected and displayed in the application, tiered by user role. AdFrequency determines how often an ad can be injected, and AdPlacementInterval sets a minimum number of primary items before the first ad.',
324+
'These settings control how advertisements are displayed within '
325+
'the app\'s news feed, with different rules for Guest, Standard, '
326+
'and Premium users. "Ad Frequency" determines how often an ad '
327+
'can appear, while "Ad Placement Interval" sets how many news '
328+
'items must be shown before the very first ad appears.',
322329
style: Theme.of(context).textTheme.bodySmall?.copyWith(
323330
color: Theme.of(context).colorScheme.onSurface.withOpacity(0.7),
324331
),
@@ -327,7 +334,7 @@ class _AppConfigurationPageState extends State<AppConfigurationPage>
327334
TabBar(
328335
tabs: const [
329336
Tab(text: 'Guest'),
330-
Tab(text: 'Authenticated'),
337+
Tab(text: 'Standard User'),
331338
Tab(text: 'Premium'),
332339
],
333340
labelColor: Theme.of(context).colorScheme.primary,
@@ -398,12 +405,16 @@ class _AppConfigurationPageState extends State<AppConfigurationPage>
398405
crossAxisAlignment: CrossAxisAlignment.start,
399406
children: [
400407
Text(
401-
'Account Action Configuration',
408+
'In-App Prompts',
402409
style: Theme.of(context).textTheme.headlineSmall,
403410
),
404411
const SizedBox(height: AppSpacing.md),
405412
Text(
406-
'These settings control the display frequency of in-feed account actions (e.g., link account, upgrade prompts), tiered by user role.',
413+
'These settings control how often special in-app messages or '
414+
'"prompts" are shown to users in their news feed. These prompts '
415+
'encourage actions like linking an account (for guests) or '
416+
'upgrading to a premium subscription (for authenticated users). '
417+
'The frequency varies by user type.',
407418
style: Theme.of(context).textTheme.bodySmall?.copyWith(
408419
color: Theme.of(context).colorScheme.onSurface.withOpacity(0.7),
409420
),
@@ -972,7 +983,8 @@ class _UserPreferenceLimitsFormState extends State<_UserPreferenceLimitsForm> {
972983
context,
973984
label: 'Guest Followed Items Limit',
974985
description:
975-
'Max countries, sources, or categories a Guest user can follow (each).',
986+
'Maximum number of countries, news sources, or categories a '
987+
'Guest user can follow (each type has its own limit).',
976988
value: userPreferenceLimits.guestFollowedItemsLimit,
977989
onChanged: (value) {
978990
widget.onConfigChanged(
@@ -988,7 +1000,7 @@ class _UserPreferenceLimitsFormState extends State<_UserPreferenceLimitsForm> {
9881000
widget.buildIntField(
9891001
context,
9901002
label: 'Guest Saved Headlines Limit',
991-
description: 'Max headlines a Guest user can save.',
1003+
description: 'Maximum number of headlines a Guest user can save.',
9921004
value: userPreferenceLimits.guestSavedHeadlinesLimit,
9931005
onChanged: (value) {
9941006
widget.onConfigChanged(
@@ -1008,9 +1020,10 @@ class _UserPreferenceLimitsFormState extends State<_UserPreferenceLimitsForm> {
10081020
children: [
10091021
widget.buildIntField(
10101022
context,
1011-
label: 'Authenticated Followed Items Limit',
1023+
label: 'Standard User Followed Items Limit',
10121024
description:
1013-
'Max countries, sources, or categories an Authenticated user can follow (each).',
1025+
'Maximum number of countries, news sources, or categories a '
1026+
'Standard user can follow (each type has its own limit).',
10141027
value: userPreferenceLimits.authenticatedFollowedItemsLimit,
10151028
onChanged: (value) {
10161029
widget.onConfigChanged(
@@ -1025,8 +1038,9 @@ class _UserPreferenceLimitsFormState extends State<_UserPreferenceLimitsForm> {
10251038
),
10261039
widget.buildIntField(
10271040
context,
1028-
label: 'Authenticated Saved Headlines Limit',
1029-
description: 'Max headlines an Authenticated user can save.',
1041+
label: 'Standard User Saved Headlines Limit',
1042+
description:
1043+
'Maximum number of headlines a Standard user can save.',
10301044
value: userPreferenceLimits.authenticatedSavedHeadlinesLimit,
10311045
onChanged: (value) {
10321046
widget.onConfigChanged(
@@ -1048,7 +1062,8 @@ class _UserPreferenceLimitsFormState extends State<_UserPreferenceLimitsForm> {
10481062
context,
10491063
label: 'Premium Followed Items Limit',
10501064
description:
1051-
'Max countries, sources, or categories a Premium user can follow (each).',
1065+
'Maximum number of countries, news sources, or categories a '
1066+
'Premium user can follow (each type has its own limit).',
10521067
value: userPreferenceLimits.premiumFollowedItemsLimit,
10531068
onChanged: (value) {
10541069
widget.onConfigChanged(
@@ -1064,7 +1079,8 @@ class _UserPreferenceLimitsFormState extends State<_UserPreferenceLimitsForm> {
10641079
widget.buildIntField(
10651080
context,
10661081
label: 'Premium Saved Headlines Limit',
1067-
description: 'Max headlines a Premium user can save.',
1082+
description:
1083+
'Maximum number of headlines a Premium user can save.',
10681084
value: userPreferenceLimits.premiumSavedHeadlinesLimit,
10691085
onChanged: (value) {
10701086
widget.onConfigChanged(
@@ -1302,7 +1318,8 @@ class _AdConfigFormState extends State<_AdConfigForm> {
13021318
context,
13031319
label: 'Guest Ad Frequency',
13041320
description:
1305-
'How often an ad can be injected for Guest users (e.g., 5 means after every 5 primary items).',
1321+
'How often an ad can appear for Guest users (e.g., a value '
1322+
'of 5 means an ad could be placed after every 5 news items).',
13061323
value: adConfig.guestAdFrequency,
13071324
onChanged: (value) {
13081325
widget.onConfigChanged(
@@ -1317,7 +1334,8 @@ class _AdConfigFormState extends State<_AdConfigForm> {
13171334
context,
13181335
label: 'Guest Ad Placement Interval',
13191336
description:
1320-
'Minimum primary items before the first ad for Guest users.',
1337+
'Minimum number of news items that must be shown before the '
1338+
'very first ad appears for Guest users.',
13211339
value: adConfig.guestAdPlacementInterval,
13221340
onChanged: (value) {
13231341
widget.onConfigChanged(
@@ -1334,7 +1352,8 @@ class _AdConfigFormState extends State<_AdConfigForm> {
13341352
context,
13351353
label: 'Guest Articles Before Interstitial Ads',
13361354
description:
1337-
'Number of articles a Guest user reads before an interstitial ad is shown.',
1355+
'Number of articles a Guest user needs to read before a '
1356+
'full-screen interstitial ad is shown.',
13381357
value: adConfig.guestArticlesToReadBeforeShowingInterstitialAds,
13391358
onChanged: (value) {
13401359
widget.onConfigChanged(
@@ -1355,9 +1374,10 @@ class _AdConfigFormState extends State<_AdConfigForm> {
13551374
children: [
13561375
widget.buildIntField(
13571376
context,
1358-
label: 'Authenticated Ad Frequency',
1377+
label: 'Standard User Ad Frequency',
13591378
description:
1360-
'How often an ad can be injected for Authenticated users.',
1379+
'How often an ad can appear for Standard users (e.g., a value '
1380+
'of 10 means an ad could be placed after every 10 news items).',
13611381
value: adConfig.authenticatedAdFrequency,
13621382
onChanged: (value) {
13631383
widget.onConfigChanged(
@@ -1372,9 +1392,10 @@ class _AdConfigFormState extends State<_AdConfigForm> {
13721392
),
13731393
widget.buildIntField(
13741394
context,
1375-
label: 'Authenticated Ad Placement Interval',
1395+
label: 'Standard User Ad Placement Interval',
13761396
description:
1377-
'Minimum primary items before the first ad for Authenticated users.',
1397+
'Minimum number of news items that must be shown before the '
1398+
'very first ad appears for Standard users.',
13781399
value: adConfig.authenticatedAdPlacementInterval,
13791400
onChanged: (value) {
13801401
widget.onConfigChanged(
@@ -1391,7 +1412,8 @@ class _AdConfigFormState extends State<_AdConfigForm> {
13911412
context,
13921413
label: 'Standard User Articles Before Interstitial Ads',
13931414
description:
1394-
'Number of articles a Standard user reads before an interstitial ad is shown.',
1415+
'Number of articles a Standard user needs to read before a '
1416+
'full-screen interstitial ad is shown.',
13951417
value: adConfig
13961418
.standardUserArticlesToReadBeforeShowingInterstitialAds,
13971419
onChanged: (value) {
@@ -1416,7 +1438,7 @@ class _AdConfigFormState extends State<_AdConfigForm> {
14161438
context,
14171439
label: 'Premium Ad Frequency',
14181440
description:
1419-
'How often an ad can be injected for Premium users (0 for no ads).',
1441+
'How often an ad can appear for Premium users (0 for no ads).',
14201442
value: adConfig.premiumAdFrequency,
14211443
onChanged: (value) {
14221444
widget.onConfigChanged(
@@ -1431,7 +1453,8 @@ class _AdConfigFormState extends State<_AdConfigForm> {
14311453
context,
14321454
label: 'Premium Ad Placement Interval',
14331455
description:
1434-
'Minimum primary items before the first ad for Premium users.',
1456+
'Minimum number of news items that must be shown before the '
1457+
'very first ad appears for Premium users.',
14351458
value: adConfig.premiumAdPlacementInterval,
14361459
onChanged: (value) {
14371460
widget.onConfigChanged(
@@ -1448,7 +1471,8 @@ class _AdConfigFormState extends State<_AdConfigForm> {
14481471
context,
14491472
label: 'Premium User Articles Before Interstitial Ads',
14501473
description:
1451-
'Number of articles a Premium user reads before an interstitial ad is shown.',
1474+
'Number of articles a Premium user needs to read before a '
1475+
'full-screen interstitial ad is shown.',
14521476
value: adConfig
14531477
.premiumUserArticlesToReadBeforeShowingInterstitialAds,
14541478
onChanged: (value) {
@@ -1574,9 +1598,10 @@ class _AccountActionConfigFormState extends State<_AccountActionConfigForm> {
15741598
children: [
15751599
widget.buildIntField(
15761600
context,
1577-
label: 'Guest Days Between Account Actions',
1601+
label: 'Guest Days Between In-App Prompts',
15781602
description:
1579-
'Minimum days between showing account actions to Guest users.',
1603+
'Minimum number of days that must pass before a Guest user '
1604+
'sees another in-app prompt.',
15801605
value: accountActionConfig.guestDaysBetweenAccountActions,
15811606
onChanged: (value) {
15821607
widget.onConfigChanged(
@@ -1596,9 +1621,10 @@ class _AccountActionConfigFormState extends State<_AccountActionConfigForm> {
15961621
children: [
15971622
widget.buildIntField(
15981623
context,
1599-
label: 'Standard User Days Between Account Actions',
1624+
label: 'Standard User Days Between In-App Prompts',
16001625
description:
1601-
'Minimum days between showing account actions to Standard users.',
1626+
'Minimum number of days that must pass before a Standard user '
1627+
'sees another in-app prompt.',
16021628
value: accountActionConfig.standardUserDaysBetweenAccountActions,
16031629
onChanged: (value) {
16041630
widget.onConfigChanged(

0 commit comments

Comments
 (0)