Tidy / regularize shell command help text
Tidy / regularize shell command help text for the various shell commands associated with time / time zone detection. This information will be used by manual testers and CTS tests. This commit moves some information about device_config flags to TimeZoneDetectorShellCommand, where it relates to actual commands. This moves the printing logic to generally use printf + \n since it makes it easier to read the code than a mix of println / printf statements. Testing: Manual inspection of... adb shell cmd time_detector adb shell cmd time_zone_detector adb shell cmd location_time_zone_manager Bug: 172229867 Bug: 184947690 Bug: 172820087 Test: See above Change-Id: Ic4e6d30a63f980e6da08ba762327fcd0477a732d
This commit is contained in:
@@ -64,6 +64,7 @@ final class ServiceConfigAccessor {
|
||||
private static final Instant TIME_LOWER_BOUND_DEFAULT = Instant.ofEpochMilli(
|
||||
Long.max(android.os.Environment.getRootDirectory().lastModified(), Build.TIME));
|
||||
|
||||
/** Device config keys that affect the {@link TimeDetectorService}. */
|
||||
private static final Set<String> SERVER_FLAGS_KEYS_TO_WATCH = Collections.unmodifiableSet(
|
||||
new ArraySet<>(new String[] {
|
||||
KEY_TIME_DETECTOR_LOWER_BOUND_MILLIS_OVERRIDE,
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package com.android.server.timedetector;
|
||||
|
||||
import static android.app.timedetector.TimeDetector.SHELL_COMMAND_IS_AUTO_DETECTION_ENABLED;
|
||||
import static android.app.timedetector.TimeDetector.SHELL_COMMAND_SERVICE_NAME;
|
||||
import static android.provider.DeviceConfig.NAMESPACE_SYSTEM_TIME;
|
||||
|
||||
import static com.android.server.timedetector.ServerFlags.KEY_TIME_DETECTOR_LOWER_BOUND_MILLIS_OVERRIDE;
|
||||
@@ -61,26 +62,22 @@ class TimeDetectorShellCommand extends ShellCommand {
|
||||
@Override
|
||||
public void onHelp() {
|
||||
final PrintWriter pw = getOutPrintWriter();
|
||||
pw.println("Time Detector (time_detector) commands:");
|
||||
pw.println(" help");
|
||||
pw.println(" Print this help text.");
|
||||
pw.printf("Time Detector (%s) commands:\n", SHELL_COMMAND_SERVICE_NAME);
|
||||
pw.printf(" help\n");
|
||||
pw.printf(" Print this help text.\n");
|
||||
pw.printf(" %s\n", SHELL_COMMAND_IS_AUTO_DETECTION_ENABLED);
|
||||
pw.println(" Prints true/false according to the automatic time detection setting");
|
||||
pw.printf(" Prints true/false according to the automatic time detection setting.\n");
|
||||
pw.println();
|
||||
pw.printf("This service is also affected by the following device_config flags in the"
|
||||
+ " %s namespace:\n", NAMESPACE_SYSTEM_TIME);
|
||||
pw.printf(" %s - the lower bound used to validate time suggestions when they are"
|
||||
+ " received.\n", KEY_TIME_DETECTOR_LOWER_BOUND_MILLIS_OVERRIDE);
|
||||
pw.println(" Specified in milliseconds since the start of the Unix epoch.");
|
||||
pw.printf(" %s - [default=null], a comma separated list of origins. See"
|
||||
+ " TimeDetectorStrategy for details\n",
|
||||
KEY_TIME_DETECTOR_ORIGIN_PRIORITIES_OVERRIDE);
|
||||
pw.printf(" %s\n", KEY_TIME_DETECTOR_LOWER_BOUND_MILLIS_OVERRIDE);
|
||||
pw.printf(" The lower bound used to validate time suggestions when they are received."
|
||||
+ "\n");
|
||||
pw.printf(" Specified in milliseconds since the start of the Unix epoch.\n");
|
||||
pw.printf(" %s\n", KEY_TIME_DETECTOR_ORIGIN_PRIORITIES_OVERRIDE);
|
||||
pw.printf(" A comma separated list of origins. See TimeDetectorStrategy for details.\n");
|
||||
pw.println();
|
||||
pw.println("Example:");
|
||||
pw.printf(" $ adb shell cmd device_config put %s %s %s\n",
|
||||
NAMESPACE_SYSTEM_TIME, KEY_TIME_DETECTOR_ORIGIN_PRIORITIES_OVERRIDE,
|
||||
"external");
|
||||
pw.println("See adb shell cmd device_config for more information.");
|
||||
pw.printf("See \"adb shell cmd device_config\" for more information on setting flags.\n");
|
||||
pw.println();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,6 +70,10 @@ public final class ServiceConfigAccessor {
|
||||
*/
|
||||
public static final @ProviderMode String PROVIDER_MODE_ENABLED = "enabled";
|
||||
|
||||
/**
|
||||
* Device config keys that affect the {@link TimeZoneDetectorService} service and {@link
|
||||
* com.android.server.timezonedetector.location.LocationTimeZoneManagerService}.
|
||||
*/
|
||||
private static final Set<String> SERVER_FLAGS_KEYS_TO_WATCH = Collections.unmodifiableSet(
|
||||
new ArraySet<>(new String[] {
|
||||
ServerFlags.KEY_LOCATION_TIME_ZONE_DETECTION_FEATURE_SUPPORTED,
|
||||
|
||||
@@ -18,12 +18,19 @@ package com.android.server.timezonedetector;
|
||||
import static android.app.timezonedetector.TimeZoneDetector.SHELL_COMMAND_IS_AUTO_DETECTION_ENABLED;
|
||||
import static android.app.timezonedetector.TimeZoneDetector.SHELL_COMMAND_IS_GEO_DETECTION_ENABLED;
|
||||
import static android.app.timezonedetector.TimeZoneDetector.SHELL_COMMAND_IS_GEO_DETECTION_SUPPORTED;
|
||||
import static android.app.timezonedetector.TimeZoneDetector.SHELL_COMMAND_SERVICE_NAME;
|
||||
import static android.app.timezonedetector.TimeZoneDetector.SHELL_COMMAND_SET_AUTO_DETECTION_ENABLED;
|
||||
import static android.app.timezonedetector.TimeZoneDetector.SHELL_COMMAND_SET_GEO_DETECTION_ENABLED;
|
||||
import static android.app.timezonedetector.TimeZoneDetector.SHELL_COMMAND_SUGGEST_GEO_LOCATION_TIME_ZONE;
|
||||
import static android.app.timezonedetector.TimeZoneDetector.SHELL_COMMAND_SUGGEST_MANUAL_TIME_ZONE;
|
||||
import static android.app.timezonedetector.TimeZoneDetector.SHELL_COMMAND_SUGGEST_TELEPHONY_TIME_ZONE;
|
||||
import static android.provider.DeviceConfig.NAMESPACE_SYSTEM_TIME;
|
||||
|
||||
import static com.android.server.timedetector.ServerFlags.KEY_LOCATION_TIME_ZONE_DETECTION_FEATURE_SUPPORTED;
|
||||
import static com.android.server.timedetector.ServerFlags.KEY_LOCATION_TIME_ZONE_DETECTION_SETTING_ENABLED_DEFAULT;
|
||||
import static com.android.server.timedetector.ServerFlags.KEY_LOCATION_TIME_ZONE_DETECTION_SETTING_ENABLED_OVERRIDE;
|
||||
|
||||
import android.app.time.LocationTimeZoneManager;
|
||||
import android.app.time.TimeZoneConfiguration;
|
||||
import android.app.timezonedetector.ManualTimeZoneSuggestion;
|
||||
import android.app.timezonedetector.TelephonyTimeZoneSuggestion;
|
||||
@@ -155,20 +162,21 @@ class TimeZoneDetectorShellCommand extends ShellCommand {
|
||||
@Override
|
||||
public void onHelp() {
|
||||
final PrintWriter pw = getOutPrintWriter();
|
||||
pw.println("Time Zone Detector (time_zone_detector) commands:");
|
||||
pw.println(" help");
|
||||
pw.println(" Print this help text.");
|
||||
pw.printf("Time Zone Detector (%s) commands:\n", SHELL_COMMAND_SERVICE_NAME);
|
||||
pw.printf(" help\n");
|
||||
pw.printf(" Print this help text.\n");
|
||||
pw.printf(" %s\n", SHELL_COMMAND_IS_AUTO_DETECTION_ENABLED);
|
||||
pw.println(" Prints true/false according to the automatic tz detection setting");
|
||||
pw.printf(" Prints true/false according to the automatic time zone detection setting\n");
|
||||
pw.printf(" %s true|false\n", SHELL_COMMAND_SET_AUTO_DETECTION_ENABLED);
|
||||
pw.println(" Sets the automatic tz detection setting.");
|
||||
pw.printf(" Sets the automatic time zone detection setting.\n");
|
||||
pw.printf(" %s\n", SHELL_COMMAND_IS_GEO_DETECTION_SUPPORTED);
|
||||
pw.println(" Prints true/false according to whether geolocation time zone detection is"
|
||||
+ " supported on this device");
|
||||
pw.printf(" Prints true/false according to whether geolocation time zone detection is"
|
||||
+ " supported on this device.\n");
|
||||
pw.printf(" %s\n", SHELL_COMMAND_IS_GEO_DETECTION_ENABLED);
|
||||
pw.println(" Prints true/false according to the geolocation tz detection setting");
|
||||
pw.printf(" Prints true/false according to the geolocation time zone detection setting."
|
||||
+ "\n");
|
||||
pw.printf(" %s true|false\n", SHELL_COMMAND_SET_GEO_DETECTION_ENABLED);
|
||||
pw.println(" Sets the geolocation tz detection setting.");
|
||||
pw.printf(" Sets the geolocation time zone detection enabled setting.\n");
|
||||
pw.printf(" %s <geolocation suggestion opts>\n",
|
||||
SHELL_COMMAND_SUGGEST_GEO_LOCATION_TIME_ZONE);
|
||||
pw.printf(" %s <manual suggestion opts>\n",
|
||||
@@ -182,5 +190,27 @@ class TimeZoneDetectorShellCommand extends ShellCommand {
|
||||
pw.println();
|
||||
TelephonyTimeZoneSuggestion.printCommandLineOpts(pw);
|
||||
pw.println();
|
||||
pw.printf("This service is also affected by the following device_config flags in the"
|
||||
+ " %s namespace:\n", NAMESPACE_SYSTEM_TIME);
|
||||
pw.printf(" %s\n", KEY_LOCATION_TIME_ZONE_DETECTION_FEATURE_SUPPORTED);
|
||||
pw.printf(" Only observed if the geolocation time zone detection feature is enabled in"
|
||||
+ " config.\n");
|
||||
pw.printf(" Set this to false to disable the feature.\n");
|
||||
pw.printf(" %s\n", KEY_LOCATION_TIME_ZONE_DETECTION_SETTING_ENABLED_DEFAULT);
|
||||
pw.printf(" Only used if the device does not have an explicit 'geolocation time zone"
|
||||
+ " detection enabled' setting stored [*].\n");
|
||||
pw.printf(" The default is when unset is false.\n");
|
||||
pw.printf(" %s\n", KEY_LOCATION_TIME_ZONE_DETECTION_SETTING_ENABLED_OVERRIDE);
|
||||
pw.printf(" Used to override the device's 'geolocation time zone detection enabled'"
|
||||
+ " setting [*].\n");
|
||||
pw.println();
|
||||
pw.printf("[*] To be enabled, the user must still have location = on / auto time zone"
|
||||
+ " detection = on.\n");
|
||||
pw.println();
|
||||
pw.printf("See \"adb shell cmd device_config\" for more information on setting flags.\n");
|
||||
pw.println();
|
||||
pw.printf("Also see \"adb shell cmd %s help\" for lower-level location time zone"
|
||||
+ " commands / settings.\n", LocationTimeZoneManager.SERVICE_NAME);
|
||||
pw.println();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,9 +24,6 @@ import static android.app.time.LocationTimeZoneManager.SHELL_COMMAND_START;
|
||||
import static android.app.time.LocationTimeZoneManager.SHELL_COMMAND_STOP;
|
||||
import static android.provider.DeviceConfig.NAMESPACE_SYSTEM_TIME;
|
||||
|
||||
import static com.android.server.timedetector.ServerFlags.KEY_LOCATION_TIME_ZONE_DETECTION_FEATURE_SUPPORTED;
|
||||
import static com.android.server.timedetector.ServerFlags.KEY_LOCATION_TIME_ZONE_DETECTION_SETTING_ENABLED_DEFAULT;
|
||||
import static com.android.server.timedetector.ServerFlags.KEY_LOCATION_TIME_ZONE_DETECTION_SETTING_ENABLED_OVERRIDE;
|
||||
import static com.android.server.timedetector.ServerFlags.KEY_LOCATION_TIME_ZONE_DETECTION_UNCERTAINTY_DELAY_MILLIS;
|
||||
import static com.android.server.timedetector.ServerFlags.KEY_LOCATION_TIME_ZONE_PROVIDER_INITIALIZATION_TIMEOUT_FUZZ_MILLIS;
|
||||
import static com.android.server.timedetector.ServerFlags.KEY_LOCATION_TIME_ZONE_PROVIDER_INITIALIZATION_TIMEOUT_MILLIS;
|
||||
@@ -48,6 +45,7 @@ import android.app.time.GeolocationTimeZoneSuggestionProto;
|
||||
import android.app.time.LocationTimeZoneManagerProto;
|
||||
import android.app.time.LocationTimeZoneManagerServiceStateProto;
|
||||
import android.app.time.TimeZoneProviderStateProto;
|
||||
import android.app.timezonedetector.TimeZoneDetector;
|
||||
import android.os.Bundle;
|
||||
import android.os.ShellCommand;
|
||||
import android.util.IndentingPrintWriter;
|
||||
@@ -103,84 +101,68 @@ class LocationTimeZoneManagerShellCommand extends ShellCommand {
|
||||
public void onHelp() {
|
||||
final PrintWriter pw = getOutPrintWriter();
|
||||
pw.printf("Location Time Zone Manager (%s) commands for tests:\n", SERVICE_NAME);
|
||||
pw.println(" help");
|
||||
pw.println(" Print this help text.");
|
||||
pw.printf(" help\n");
|
||||
pw.printf(" Print this help text.\n");
|
||||
pw.printf(" %s\n", SHELL_COMMAND_START);
|
||||
pw.println(" Starts the location_time_zone_manager, creating time zone providers.");
|
||||
pw.printf(" Starts the service, creating location time zone providers.\n");
|
||||
pw.printf(" %s\n", SHELL_COMMAND_STOP);
|
||||
pw.println(" Stops the location_time_zone_manager, destroying time zone providers.");
|
||||
pw.printf(" Stops the service, destroying location time zone providers.\n");
|
||||
pw.printf(" %s (true|false)\n", SHELL_COMMAND_RECORD_PROVIDER_STATES);
|
||||
pw.printf(" Enables / disables provider state recording mode. See also %s. The default"
|
||||
+ " state is always \"false\".\n", SHELL_COMMAND_DUMP_STATE);
|
||||
pw.println(" Note: When enabled, this mode consumes memory and it is only intended for"
|
||||
+ " testing.");
|
||||
pw.println(" It should be disabled after use, or the device can be rebooted to"
|
||||
+ " reset the mode to disabled.");
|
||||
pw.println(" Disabling (or enabling repeatedly) clears any existing stored states.");
|
||||
pw.printf(" Note: When enabled, this mode consumes memory and it is only intended for"
|
||||
+ " testing.\n");
|
||||
pw.printf(" It should be disabled after use, or the device can be rebooted to"
|
||||
+ " reset the mode to disabled.\n");
|
||||
pw.printf(" Disabling (or enabling repeatedly) clears any existing stored states.\n");
|
||||
pw.printf(" %s [%s]\n", SHELL_COMMAND_DUMP_STATE, DUMP_STATE_OPTION_PROTO);
|
||||
pw.println(" Dumps Location Time Zone Manager state for tests as text or binary proto"
|
||||
+ " form.");
|
||||
pw.println(" See the LocationTimeZoneManagerServiceStateProto definition for details.");
|
||||
pw.printf(" Dumps service state for tests as text or binary proto form.\n");
|
||||
pw.printf(" See the LocationTimeZoneManagerServiceStateProto definition for details.\n");
|
||||
pw.printf(" %s <provider index> <test command>\n",
|
||||
SHELL_COMMAND_SEND_PROVIDER_TEST_COMMAND);
|
||||
pw.println(" Passes a test command to the named provider.");
|
||||
pw.printf(" Passes a test command to the named provider.\n");
|
||||
pw.println();
|
||||
pw.println("<provider index> = 0 (primary), 1 (secondary)");
|
||||
pw.printf("<provider index> = 0 (primary), 1 (secondary)\n");
|
||||
pw.println();
|
||||
pw.printf("%s details:\n", SHELL_COMMAND_SEND_PROVIDER_TEST_COMMAND);
|
||||
pw.println();
|
||||
pw.println("Provider <test command> encoding:");
|
||||
pw.printf("Provider <test command> encoding:\n");
|
||||
pw.println();
|
||||
TestCommand.printShellCommandEncodingHelp(pw);
|
||||
pw.println();
|
||||
pw.println("Simulated provider mode can be used to test the system server behavior or to"
|
||||
+ " reproduce bugs without the complexity of using real providers.");
|
||||
pw.printf("Simulated provider mode can be used to test the system server behavior or to"
|
||||
+ " reproduce bugs without the complexity of using real providers.\n");
|
||||
pw.println();
|
||||
pw.println("The test commands for simulated providers are:");
|
||||
pw.printf("The test commands for simulated providers are:\n");
|
||||
SimulatedLocationTimeZoneProviderProxy.printTestCommandShellHelp(pw);
|
||||
pw.println();
|
||||
pw.println("Test commands cannot currently be passed to real provider implementations.");
|
||||
pw.printf("Test commands cannot currently be passed to real provider implementations.\n");
|
||||
pw.println();
|
||||
pw.printf("This service is also affected by the following device_config flags in the"
|
||||
+ " %s namespace:\n", NAMESPACE_SYSTEM_TIME);
|
||||
pw.printf(" %s - [default=true], only observed if the feature is enabled in config,"
|
||||
+ "set this to false to disable the feature\n",
|
||||
KEY_LOCATION_TIME_ZONE_DETECTION_FEATURE_SUPPORTED);
|
||||
pw.printf(" %s - [default=false]. Only used if the device does not have an explicit"
|
||||
+ " 'location time zone detection enabled' setting configured [*].\n",
|
||||
KEY_LOCATION_TIME_ZONE_DETECTION_SETTING_ENABLED_DEFAULT);
|
||||
pw.printf(" %s - [default=<unset>]. Used to override the device's 'location time zone"
|
||||
+ " detection enabled' setting [*]\n",
|
||||
KEY_LOCATION_TIME_ZONE_DETECTION_SETTING_ENABLED_OVERRIDE);
|
||||
pw.printf(" %s - Overrides the mode of the primary provider. Values=%s|%s|%s\n",
|
||||
KEY_PRIMARY_LOCATION_TIME_ZONE_PROVIDER_MODE_OVERRIDE,
|
||||
pw.printf(" %s\n", KEY_PRIMARY_LOCATION_TIME_ZONE_PROVIDER_MODE_OVERRIDE);
|
||||
pw.printf(" Overrides the mode of the primary provider. Values=%s|%s|%s\n",
|
||||
PROVIDER_MODE_DISABLED, PROVIDER_MODE_ENABLED, PROVIDER_MODE_SIMULATED);
|
||||
pw.printf(" %s - Overrides the mode of the secondary provider. Values=%s|%s|%s\n",
|
||||
KEY_SECONDARY_LOCATION_TIME_ZONE_PROVIDER_MODE_OVERRIDE,
|
||||
pw.printf(" %s\n", KEY_SECONDARY_LOCATION_TIME_ZONE_PROVIDER_MODE_OVERRIDE);
|
||||
pw.printf(" Overrides the mode of the secondary provider. Values=%s|%s|%s\n",
|
||||
PROVIDER_MODE_DISABLED, PROVIDER_MODE_ENABLED, PROVIDER_MODE_SIMULATED);
|
||||
pw.printf(" %s - \n",
|
||||
KEY_SECONDARY_LOCATION_TIME_ZONE_PROVIDER_MODE_OVERRIDE);
|
||||
pw.printf(" %s - Sets the amount of time the service waits when uncertain before making"
|
||||
+ " an 'uncertain' suggestion to the time zone detector.\n",
|
||||
KEY_LOCATION_TIME_ZONE_DETECTION_UNCERTAINTY_DELAY_MILLIS);
|
||||
pw.printf(" %s - Sets the initialization time passed to the location time zone providers"
|
||||
+ "\n",
|
||||
KEY_LOCATION_TIME_ZONE_PROVIDER_INITIALIZATION_TIMEOUT_MILLIS);
|
||||
pw.printf(" %s - Sets the amount of extra time added to the location time zone providers"
|
||||
+ " initialization time\n",
|
||||
KEY_LOCATION_TIME_ZONE_PROVIDER_INITIALIZATION_TIMEOUT_FUZZ_MILLIS);
|
||||
pw.println();
|
||||
pw.println("[*] The user must still have location = on / auto time zone detection = on");
|
||||
pw.printf(" %s\n", KEY_LOCATION_TIME_ZONE_DETECTION_UNCERTAINTY_DELAY_MILLIS);
|
||||
pw.printf(" Sets the amount of time the service waits when uncertain before making an"
|
||||
+ " 'uncertain' suggestion to the time zone detector.\n");
|
||||
pw.printf(" %s\n", KEY_LOCATION_TIME_ZONE_PROVIDER_INITIALIZATION_TIMEOUT_MILLIS);
|
||||
pw.printf(" Sets the initialization time passed to the providers.\n");
|
||||
pw.printf(" %s\n", KEY_LOCATION_TIME_ZONE_PROVIDER_INITIALIZATION_TIMEOUT_FUZZ_MILLIS);
|
||||
pw.printf(" Sets the amount of extra time added to the providers' initialization time."
|
||||
+ "\n");
|
||||
pw.println();
|
||||
pw.printf("Typically, use '%s' to stop the service before setting individual"
|
||||
+ " flags and '%s' after to restart it.\n",
|
||||
SHELL_COMMAND_STOP, SHELL_COMMAND_START);
|
||||
pw.println();
|
||||
pw.println("Example:");
|
||||
pw.printf(" $ adb shell cmd device_config put %s %s %s\n",
|
||||
NAMESPACE_SYSTEM_TIME, KEY_LOCATION_TIME_ZONE_DETECTION_SETTING_ENABLED_DEFAULT,
|
||||
"true");
|
||||
pw.println("See adb shell cmd device_config for more information.");
|
||||
pw.printf("See \"adb shell cmd device_config\" for more information on setting flags.\n");
|
||||
pw.println();
|
||||
pw.printf("Also see \"adb shell cmd %s help\" for higher-level location time zone"
|
||||
+ " commands / settings.\n", TimeZoneDetector.SHELL_COMMAND_SERVICE_NAME);
|
||||
pw.println();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user