Commit Graph

265 Commits

Author SHA1 Message Date
Hugh Chen
b6840ced0d Disable entry point of output switcher
It adds a minimum value if it shows only one available
cast device in the output switcher. Because users can only
change the volume slider or stop control in the output switcher.
It's too hidden to have the user stop cast in the UI.

- This CL will disable the entry point of the output switcher
  if there is only one available cast device in the list.
- Update test cases.

Bug: 163095048
Test: make -j42 RunSettingsRoboTests
Change-Id: I8906878e1ba769d6940041f17d83b5de6b2a32c0
2020-09-25 02:38:19 +00:00
Colin Cross
38fa185a27 Revert "Snap for 6793014 from 3777d883a3857b1a1589181c436d9018d7..."
Revert "Snap for 6793014 from 3157b4ee4325286f0c2ab0f26528460c8b..."

Revert "Snap for 6793014 from a43295d1825da62af038d345a7a861ed7a..."

Revert "Snap for 6793014 from 2076be4d27078d6ebc0a6b5e5ceb386109..."

Revert "Snap for 6793014 from d0e31526c62b2aeb35c293ac96feb180fc..."

Revert "Snap for 6793014 from 7a3a8c6351d5167a6ae0b33bc376efabd2..."

Revert "Snap for 6793014 from 41471cb21bb16b5c3bcc92f84293b79684..."

Revert "Snap for 6793014 from 42e5cca3cfb829690c9d8c6aca57a8e7d5..."

Revert "Snap for 6793014 from 4f81304963d19f4511b1e8e7d0aad87a67..."

Revert "Snap for 6793014 from 07602cdacf5bcc835db41f7eaa24af9964..."

Revert "Snap for 6793014 from 14cb57e107a3abce8b14937b1f92c28d18..."

Revert "Snap for 6793014 from ab1e4a81d09a540a5f927059e5bc03a606..."

Revert "Snap for 6793014 from 8c65adad0bcdfb3acc561063b4048dca24..."

Revert "Snap for 6793014 from b3061942700265e2bf04af9997775dcbbb..."

Revert "Snap for 6793014 from 551c5953fc62e339e4ee884ec2cd0ac3be..."

Revert "Snap for 6793014 from 4919273b2ac5c6347a18e17c5ec70d8da6..."

Revert "Snap for 6793014 from 988d4244914e0c749655e8cb6db18ba44f..."

Revert submission 12465146-release-request-6b259cbc-1f45-4b05-bc7e-c9b893b79d68-for-git_main-busytown-release-6793014

Reason for revert: b/166531456
Reverted Changes:
I5ff7a6c0d:Snap for 6793014 from f2989f9c65556d5155dbd57f82f0...
I77bdff943:Snap for 6793014 from a43295d1825da62af038d345a7a8...
I2ac5c520a:Snap for 6793014 from c3f124cca05579acf0a6cb589ebd...
I023b9702f:Snap for 6793014 from 98756d6d3e2bb0ba28eb125caa7a...
Ibc7893d72:Snap for 6793014 from fd1ad6750ef332d3f50f218f4d5d...
Ic27847bee:Snap for 6793014 from 8c65adad0bcdfb3acc561063b404...
If20bc9352:Snap for 6793014 from 7a3a8c6351d5167a6ae0b33bc376...
I6542d17e8:Snap for 6793014 from 3777d883a3857b1a1589181c436d...
I66e6bb8a9:Snap for 6793014 from 8b8bf0a07b0521bbe8483fbbab12...
I3cd190b6b:Snap for 6793014 from 424180bdc4aa18249e678daebfd0...
If92db7402:Snap for 6793014 from ab1e4a81d09a540a5f927059e5bc...
Iaced03c87:Snap for 6793014 from d0e31526c62b2aeb35c293ac96fe...
I5d28c6b4b:Snap for 6793014 from 4f81304963d19f4511b1e8e7d0aa...
I30d07bea3:Snap for 6793014 from 7594ec6384c4da320726def34f47...
I473205f48:Snap for 6793014 from 551c5953fc62e339e4ee884ec2cd...
I0656b41af:Snap for 6793014 from 44725f06b7f7d6407b5ee82d989b...
I0f9796067:Snap for 6793014 from 4919273b2ac5c6347a18e17c5ec7...
I9a38cda8f:Snap for 6793014 from 2076be4d27078d6ebc0a6b5e5ceb...
I876a82f51:Snap for 6793014 from 11467102abddb6026aaa164c1361...
I749d7d023:Snap for 6793014 from 41471cb21bb16b5c3bcc92f84293...
I038daea41:Snap for 6793014 from 07602cdacf5bcc835db41f7eaa24...
I47aa3131c:Snap for 6793014 from 14cb57e107a3abce8b14937b1f92...
I32dba8a95:Snap for 6793014 from 3157b4ee4325286f0c2ab0f26528...
I2ebc9f9db:Snap for 6793014 from 988d4244914e0c749655e8cb6db1...
Iae7c3370f:Snap for 6793014 from 9ffb8852294e06e2d387dc1fb868...
I6467a7f1b:Snap for 6793014 from 42e5cca3cfb829690c9d8c6aca57...
I8c6375203:Snap for 6793014 from b3061942700265e2bf04af999777...
I843b2e1f3:Snap for 6793014 from 265280bf5cb4bc14e132c3a35ae5...
Ie254f7079:Snap for 6793014 from f22ad3164937a8f2e309965c102b...
I01e0974ed:Snap for 6793014 from bbbccc3c2b7fc7c5780f6c415c42...

Change-Id: Ie8b2b332f7ebaaee7cd39c6f94d280c047426bc9
2020-08-27 04:12:26 +00:00
Kevin Chyn
b13bc50542 1/n: Make ChooseLockSettingsHelper into a builder
The multitude of slightly different launchConfirmationActivity(*)
methods are a big unsustainable pyramid. It's too difficult to
read, too difficult to track which clients are interested in which
parameters, and too difficult to add new parameters, since we need to

1) Read through all of them and find one that's the closest
2) Try not to affect other callers, so potentially add yet another
3) Modify the internal paths, which all basically call each other
   until it reaches the biggest launchConfirmationActivity which
   has ALL of the parameters

This change should have no behavioral change.

Note: CredentialStorage doesn't need returnCredentials anymore as of
      ag/6073449

Test: make -j56 RunSettingsRoboTests
Test: Manually traced code paths for each invocation. A few hidden
      dependencies (such as explicitly setting challenge=0 with
      hasChallenge=true) were found. Left them the way they were in
      case they were intended
Test: Enroll face, fingerprint
Test: Enable developer options
Test: Change to PIN, Pattern, Password, then back to PIN (so each
      type requests confirmation)
Test: adb shell am start -a android.app.action.CONFIRM_DEVICE_CREDENTIAL,
      authenticate
Test: adb shell am start -a android.app.action.CONFIRM_FRP_CREDENTIAL
      (shows confirm credential screen)
Fixes: 138453993

Change-Id: Ic82ef3c3ac2e14d624281921f2d816bcdacbd82b
2020-07-24 11:13:13 -07:00
Tim Peng
df46788a5d Apply round corner to the album icon in output switcher panel
Bug: 159766582
Test: manual test
Change-Id: I1535a13c137e9550920cf890c259a4075a2dfc05
2020-06-24 13:17:06 +08:00
Andras Kloczl
106431e525 Improve multi user functionality for restricted users
- Restricted users can change their name
- Improved App&Content access screen
- Remove "Turn on phone calls" from restricted user detail page

Doc: http://shortn/_Prb3SJ3xJ3
Bug: 142798722
Test: Run robo tests with this command:
  make -j64 RunSettingsRoboTests
Change-Id: I2aadf32aef52ba5ad0db7aa0cd83bac9d9941589
(cherry picked from commit f4759e00d5)
2020-05-29 12:55:18 +00:00
Jason Chiu
8ac1e4d49d Update icon tint color when the user toggles Dark theme
- Reload theme in slice provider when Dark theme mode changes for slices
- Reload theme in onCreate of Panel activity for its non-slice header
- Remove applyTheme from individual slices

Test: robotest
Fixes: 153700819
Change-Id: I40a7d2817c4b9100d7b2f2962a69c8a9ce6f7906
2020-05-12 10:58:54 +08:00
Yanting Yang
96127fe621 Remove sub-text from slice builder
We would like to remove all sub-text from Settings Search. But slice
view does not support API to configure the sub-text visibility.
Therefore, the only way is to remove the sub-text from slices directly.

Since Settings slices are also invoked by other apps, we can not
directly remove the sub-text.

Finally, we decide to check the caller's uid. If it comes from Settings
Search, we will return the slice without the sub-text.

Bug: 143118037
Test: visual, robotests
Change-Id: Iac72f1683a2c930592634e0599058890d86f669d
2020-04-28 14:15:16 +08:00
Alex Johnston
341f995971 DPC can be uninstalled in personal profile in New COPE
* For an organization-owned device, the DPC should be able to
  be uninstalled in the personal profile. Previously, the
  observed behaviour was that the uninstall button in the App
  Info Screen was being greyed out.
* This was because the previous logic did not allow for
  uninstalling any app which has a profile owner or device
  owner on *any* user.
* This CL updates this logic, such that, for non-system apps
  uninstalling is blocked only if the app has a profile owner
  or device owner for the current calling user.

Bug: 149381804
Test: Manual testing
      atest com.android.settings.applications.appinfo.AppButtonsPreferenceControllerTest
Change-Id: Ifaf03daa41724dbbd869c7e1371a77cc39d15ac7
2020-03-12 13:38:19 +00:00
Alex Johnston
403c330135 Update work profile app lock to latest spec
* Updated text and description for PIN, password and pattern
* Added enterprise logo to work profile lock

Bug: 141290838
Test: Manual testing
      atest com.android.systemui.biometrics.AuthBiometricViewTest
      atest com.android.systemui.biometrics.AuthContainerViewTest

Change-Id: Iac6c9ca15e7446cbd7cce9fc1a1ac4e1c867bf31
2020-01-30 14:49:39 +00:00
Raff Tsai
3fbdf34a03 Remove settings_work_profile feature flag
Bug: 141601408
Test: robolectric
Change-Id: Ib7ef6794405fef6336690115680cf95b0e4c1542
2020-01-16 13:56:52 +08:00
Bonian Chen
f399bd1a8c [Settings] Code refactor
Bug: 147338143
Test: build pass
Change-Id: Ib4a92f659ceda3584310591f706958a06ba5ab21
2020-01-09 17:07:25 +08:00
Raff Tsai
376ce87f00 Fix battery tip app name is empty
- Top waste app is linux process not android process. Therefore
it doesn't contains application label. Fixed by return the process
name if packages label is empty.

Fixes: 146558570
Test: follow the steps:
1. adb shell settings put global battery_tip_constants test_low_battery_tip=true
2. Unplug usb. Go to Settings -> Battery, it should show an item
"Phone used more than usual"
3. Click "phone used more than usual" item, all the items should
have title and icon.

Change-Id: I85c232bc6a048b3104c4fce0fcec2b944e8ac1b4
2020-01-06 01:14:21 +08:00
Raff Tsai
5ec8efe7e0 Fix UI issue in LocationSettings
- Add WorkPreferenceController to support directly use work profile
related feature in xml
- Get only work/personal infos in RecentLocationRequestPreferenceController
and RecentLocationRequestSeeAllPreferenceController
- Remove ProfileSelectStorageFragment

Bug: 141601408
Fixes: 146080649
Test: manual, robolectric
Change-Id: Ide39c7a3796e16421f3a5690309c3d746a956de8
2019-12-17 04:25:49 +00:00
Raff Tsai
1e5d8146b5 Change ProfileType definition
Bug: 141601408
Test: rebuild
Change-Id: Ia4d4fabe8a4daad4ce54c243748fa3c29bf944ba
2019-12-12 13:44:35 +08:00
Raff Tsai
84327f6aa3 Add storage_summary_donut above ProfileSelectStorageFragment
- Modify ProfileSelectFragment to support add preference xml in the
top, and tabLayout below the preferences. Base preference layout is
dummy_preference_screen.xml which contains no preference.
ProfileSelectStorageFragment contains StorageSummaryDonutPreference
above the tabLayout.
- Make StorageSummaryDonutPreferenceController self workable without
StorageDashboardFragment dependence.
- Rename inactive_apps.xml to dummy_preference_screen.xml
- Move ShadowPrivateStorageInfo from LowStorageSliceTest

Bug: 141601408
Test: manual
Change-Id: Ide12840dc81bb104f328e230ecda5d35bba01d7a
2019-11-18 18:18:29 +08:00
Bonian Chen
5e65da0c2f [Settings] Apply proxy design to data usage
Enable proxy to subscription manager in data usage UI.

Bug: 141833767
Test: manual
make RunSettingsRoboTests -j ROBOTEST_FILTER=BillingCyclePreferenceTest
make RunSettingsRoboTests -j ROBOTEST_FILTER=CellDataPreferenceTest
make RunSettingsRoboTests -j ROBOTEST_FILTER=DataUsageListTest
make RunSettingsRoboTests -j ROBOTEST_FILTER=DataUsageSummaryTest
make RunSettingsRoboTests -j ROBOTEST_FILTER=DataUsageUtilsTest
make RunSettingsRoboTests -j ROBOTEST_FILTER=MobileDataEnabledListenerTest

Change-Id: Id119738dc16ece8767c088b9a0794997e4b0334f
2019-11-11 13:03:03 +08:00
Raff Tsai
4992919d95 Remove unused resources
Bug: 123794771
Test: rebuild, robolectric
Change-Id: I22f43220cc9ad4ec2074af425b0da75f59e470a4
2019-11-07 18:12:34 +08:00
Raff Tsai
1eccd55a70 Remove mobile network v1
Fixes: 142920912
Test: rebuild, robolectric
Change-Id: Ib365ba712af62729ca35abbc370aef087ce52a90
2019-11-05 17:54:54 +08:00
Raff Tsai
062baadf4e Merge "Add personal/work tab for ManageApplications" 2019-10-22 23:47:32 +00:00
Raff Tsai
c898775914 Hide search box if it is called in initial setup wizard
- Search box is hidden if user set intent extra isSetupFlow true

Fixes: 135717823
Test: search box is hidden in the following command
adb shell am start -a android.settings.SETTINGS --ez isSetupFlow true

Change-Id: Ia3d955c9390d6b0eef9391b9b35b6a483eb63d26
2019-10-18 02:08:38 +00:00
Raff Tsai
afd494d335 Add personal/work tab for ManageApplications
- Add ProfileSelectManageApplications containing tabLayout
- Modify StorageItemPreferenceController to display only personal
or work profile data
- Add getTargetFragment in Utils to handle fragment selection

Bug: 141601408
Test: manual
Change-Id: Ie4db1ce2e77f60a82018e5a3e1f2fccb812502dc
2019-10-16 17:08:31 +08:00
Sunny Shao
7e866b670e Use Builder to replace the Uitls.addFooterPreference
Fixes: 139163212
Test: manual test
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.bluetooth
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.accounts
Change-Id: I861434b81c07db785e6f1cfb3e34871ffba41e5f
2019-08-09 11:42:04 +08:00
Sunny Shao
660b36e061 Use FooterPreference in xml explicitly
- Removed the FooterPreferenceMixin from the BluetoothDetailsMacAddressController.
 - Added the common api addFooterPreference.

Fixes: 139104386
Test: manual test
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.bluetooth
Change-Id: Iab40fa4c5be674290b1dc6d372c84609ccc2ea49
2019-08-08 18:42:26 +08:00
Joel Galenson
2118f8a63f Revert "Remove Permissions Hub."
This reverts commit 1e7c172ad5.

Bug: 132292477
Test: None.
Change-Id: Icae2cd4edbb22e2f3ea72e20f0ebd818f1ac6629
2019-05-31 07:55:19 -07:00
Joel Galenson
1e7c172ad5 Remove Permissions Hub.
Bug: 132292477
Test: View all related screens.
Change-Id: Ic0e890e04f210f3be3eb80c95e398a40a8062001
2019-05-30 08:30:49 -07:00
Svet Ganov
864765f8b4 Update Settings to use the proper DeviceConfig API.
Exempt-From-Owner-Approval: carry over approval from ag/6908306

bug:124769181

Change-Id: If18d0dc5e55dabf82b7c7a2b6df240fb8b24f736
2019-04-07 22:37:02 -07:00
clownshen
24827d35b1 Enlarge wifi signal icon from 24dp to 32dp for header view
Bug: 129413562
Test: manual test
Change-Id: I50a27ac25e5ae42530736bb7c019485a51d707ba
2019-04-01 07:08:55 +00:00
tmfang
aed8f361fc Remove shadow from "Apps and Notifications"
- Also create a util method to reuse it in different class.

Test: visual
Fixes: 128437380
Change-Id: I0e136feed3aead8c37e381095daebded55ef298d
2019-03-22 11:08:15 +08:00
Antony Sargent
627f14bfd0 Disable the "SIM cards" tile in new Network & internet page
When settings_network_and_internet_v2 is enabled, don't show the old
"SIM cards" tile for managing multiple SIM cards on the Network &
internet page, since we now have new UI for this.

Bug: 116349402
Test: manual (put device into dual-sim dual-standby mode, and enable the
'settings_network_and_internet_v2' flag in the FeatureFlags section of
Developer options)

Change-Id: Icc0d723b634f15ad831e38b783ae226a7717f674
2019-03-04 16:12:51 -08:00
Ng Zhi An
b97bdc38da Disable system alert window permissions on low ram devices
Bug: 63697002
Bug: 117832554
Test: adb am start-activity -a
android.settings.action.MANAGE_OVERLAY_PERMISSION
Change-Id: I44c64001cd07fd4934cdc55f455384cebd5c9cfb
2019-02-26 17:58:43 -08:00
Doris Ling
c5a1b4f666 Remove all reference to settings_side_margin.
- since the overlay of the value for bigger screen has been removed,
the side margin is now always 0dp. Remove this dimen value and all
reference to it.

Fixes: 124526984
Test: rebuild and visual
Change-Id: I68ff42513a379111042cab9b34594822544e246e
2019-02-21 10:18:00 -08:00
Jason Chiu
c78c54a9c6 Add a util method of creating Icon with Drawable
- Add a util method to help create Icon with Drawable so that
users don't need to handle bitmaps
- Add support for creating with ColorDrawable

Test: robotest
Fixes: 124407373
Change-Id: I1897256821cc804a5e599d967feb84a3bcd689a9
2019-02-19 15:51:38 +08:00
Fan Zhang
a725c13d65 Merge "Remove sub-text from the lines of AP list in Wi-Fi Slice" 2019-02-12 17:59:05 +00:00
Jason Chiu
1217bbec70 Remove sub-text from the lines of AP list in Wi-Fi Slice
- Remove sub-text from the lines of AP list
- Add colors to the AP names to indicate the connection status of each AP

Fixes: 120685004
Bug: 120786304
Test: make RunSettingsRoboTests -j
Change-Id: I7b879248528a293d14d959994bb054275f0d69a1
2019-02-12 16:10:06 +08:00
markchien
1dd1d79d90 Support entitlement check in DSDS
Get resource from preferred SIM's subId.

Bug: 122108346
Bug: 120069528
Test: atest TetherServiceTest
Change-Id: Ia4279a418dfa6cd14942b7f4d2a313156066381b
2019-02-04 18:55:16 +08:00
Fan Zhang
c3fd289969 Remove dead code.
Bug: n/a
Test: rebuild
Change-Id: I71f8d9d99bbff1186e8df518ec8d27db3447ffbe
2019-01-29 16:27:31 -08:00
Raff Tsai
2928cd4c72 Fix Settings crash after disabling Settings Suggestion
- Settings Suggestion App is responsible for searching, we can not
prevent user disable it. Hide search feature if user disable it.

Fixes: 118805907
Fixes: 117921464
Test: manual
Change-Id: I61c47c52265a6efd79ef2fa60272bf6513e678b1
2018-11-07 14:11:23 +08:00
Fan Zhang
23f8d59d02 Sort imports
Having consistent import order will reduce chance of merge
conflict between internal and external master

Test: rebuild
Change-Id: I0b1a170967ddcce7f388603fd521f6ed1eeba30b
2018-08-28 22:13:15 +00:00
Aarthi Balachander
d0f835981c Use the migrated injected setting code in settingslib.
Manual merge to master from pi-car-dev
Bug: 68198078
Test: Tested on device
Change-Id: Iff767cd6bf7408b45ce9594628d3fd0a71744e9f
2018-07-18 13:34:25 -07:00
tmfang
99cc23d0da Settings Fragment Migration (Change imports)
This commit *only* changes imports and optimize imports.
We don't do anything else.

This patch can't compile pass and run test case.
We will update other patches to fix these problem.

Change list.

1. import android.app.Fragment; ->
   import androidx.fragment.app.Fragment;
2. import android.app.DialogFragment; ->
   import androidx.fragment.app.DialogFragment;
3. import android.app.ListFragment; ->
   import androidx.fragment.app.ListFragment;
4. import android.app.LoaderManager; ->
   import androidx.loader.app.LoaderManager;
5. import android.content.AsyncTaskLoader; ->
   import androidx.loader.content.AsyncTaskLoader;
6. import android.content.Loader; ->
   import androidx.loader.content.Loader;
7. import android.app.FragmentTransaction; ->
   import androidx.fragment.app.FragmentTransaction;
8. import android.app.FragmentManager; ->
   import androidx.fragment.app.FragmentManager;
9. import android.app.LoaderManager.LoaderCallbacks; ->
    import androidx.loader.app.LoaderManager.LoaderCallbacks;

Bug: 110259478
Test: Can't test it.
Change-Id: I0a3f98fff34a3494a839c3c42aeabcec3df2c8b3
2018-07-11 18:23:51 -07:00
Kevin Chyn
4882e875ae 1/n Start adding Face settings (base, intro)
This change refactors common biometric settings code as well to minimize
duplicated code in areas such as:
    Preference Controller
    EnrollBase
    EnrollIntro

This change also updates ChooseLock to have Face + Pin/Pattern/Pass

Bug: 110589286

Test: Fingerprint settings/enrollment still works
Test: make -j56 RunSettingsRoboTests
Change-Id: Ie35406a01b85617423beece42683ac086e9bc4a7
2018-06-29 18:19:34 -07:00
Fan Zhang
c7162cd24d Reorder and clean up imports.
Test: rebuild
Change-Id: I178485c84ae7146f991fd77b6d7504b029942a68
2018-06-18 15:45:09 -07:00
Aurimas Liutikas
e0069d332d Migrate Settings to androidx.
Test: make Settings
Bug: 76692459
Change-Id: I941dea40562170649bf056e675cc32e5163c0e39
2018-04-20 12:52:29 -07:00
Fan Zhang
aab36de0d6 Remove wrapper for device policy manager
Bug: 76167422
Test: robotests
Change-Id: I69dc7341cf1ff408bc24c2a062586cef25b7b918
2018-03-30 20:44:20 -07:00
Fan Zhang
1b9b1a2311 Remove FingerprintManagerWrapper
No longer needed after robolectric migration

Bug: 76167422
Test: robotests
Change-Id: I922cde8ac3667081a512cf899af86f68b24485a6
2018-03-30 16:30:31 -07:00
Tony Mak
4e29281b99 Fix user id is not used correctly when fetching app info
FIXES: 73994288
Test: m -j RunSettingsRoboTest
Test: Install an app in work profile, set it to be restricted,
      observe that the app is rendered properly in restricted app list

Change-Id: Ic8a79eb3d0a675f9d1cae3125e8006739e492966
2018-03-19 20:31:17 +00:00
Phil Weaver
5a3e02dd38 Don't pre-scale vector drawables in settings
The idea of scaling down icons to prevent the system from
dealing with large images seems to be catching some
VectorDrawables and rescaling them. I don't think
VectorDrawables are likely to create a memory issue,
and the protection code seemed to be added to protect
against large pngs, not vector graphics.

Bug: 70562945
Test: Visually verified that all icons in the Accessibility
Shortcut list are now the same size with maximum display
and font sizes.

Change-Id: I9f177d11a614c122d333d4625bf6fa756d1bf4af
2018-03-08 17:38:46 -08:00
TreeHugger Robot
c26ea56fe4 Merge "Get rid of direct usage of Utils.onBuildStartFragmentIntent" 2018-02-20 21:03:04 +00:00
Fan Zhang
e5b8a5b24f Merge changes I34732bdb,Ieafd3be6
* changes:
  Remove some unused code
  Remove unused slice metadata
2018-02-20 20:02:29 +00:00
Fan Zhang
deec75fa9d Remove some unused code
Bug: n/a
Test: rebuild
Change-Id: I34732bdbf59d8380bef50f9a5da8b974375ea345
2018-02-20 10:18:54 -08:00