OSDN Git Service
Matt Pietal [Mon, 15 Apr 2019 15:38:39 +0000 (11:38 -0400)]
Sharesheet - Add copy text in response to UXR
Add copy text underneath image to make it clear what the button
means. Make text clickable. Align text colors with spec.
Bug:
130350131
Test: Manual inspection
Change-Id: Ia2916fd48ef8b2d1862d9baf5f9f695f54187d55
TreeHugger Robot [Mon, 15 Apr 2019 12:42:30 +0000 (12:42 +0000)]
Merge "Fix wrong MSIME check in onImeWindowSetOnDisplay." into qt-dev
Jorim Jaggi [Mon, 15 Apr 2019 12:33:57 +0000 (12:33 +0000)]
Merge "Fix issue in attached layouting" into qt-dev
TreeHugger Robot [Mon, 15 Apr 2019 12:25:32 +0000 (12:25 +0000)]
Merge "Add new metrics for ManagedProvisioning." into qt-dev
TreeHugger Robot [Mon, 15 Apr 2019 12:18:30 +0000 (12:18 +0000)]
Merge "Reduce transactions for acquiring and releasing provider" into qt-dev
TreeHugger Robot [Mon, 15 Apr 2019 11:01:49 +0000 (11:01 +0000)]
Merge "Catch exceptions thrown from UpdateEngine#applyPayload." into qt-dev
TreeHugger Robot [Mon, 15 Apr 2019 10:05:21 +0000 (10:05 +0000)]
Merge "Tighten rules for blocking activity starts." into qt-dev
TreeHugger Robot [Mon, 15 Apr 2019 09:45:00 +0000 (09:45 +0000)]
Merge "Add AudioAttributes.getAllowedCapturePolicy" into qt-dev
TreeHugger Robot [Mon, 15 Apr 2019 08:00:31 +0000 (08:00 +0000)]
Merge "Ensure to update top process state when launching activity" into qt-dev
Kevin Rocard [Mon, 15 Apr 2019 08:00:05 +0000 (08:00 +0000)]
Merge "Add documentation for the APC feature" into qt-dev
TreeHugger Robot [Mon, 15 Apr 2019 07:59:34 +0000 (07:59 +0000)]
Merge "Reduce system calls of ThreadPriorityBooster" into qt-dev
Martijn Coenen [Mon, 15 Apr 2019 07:11:36 +0000 (07:11 +0000)]
Merge changes Iac75e4f7,I6569bb45 into qt-dev
* changes:
Fix Application Zygote use for external services.
Refactor hostingType/hostingName/hostingNameStr.
Sungsoo Lim [Mon, 15 Apr 2019 05:55:27 +0000 (05:55 +0000)]
Merge "Tweak the selection of media button session" into qt-dev
TreeHugger Robot [Mon, 15 Apr 2019 05:47:22 +0000 (05:47 +0000)]
Merge "DO NOT MERGE: Revert "Media: Add MediaRouterManager to control media route of other apps"" into qt-dev
TreeHugger Robot [Mon, 15 Apr 2019 03:53:09 +0000 (03:53 +0000)]
Merge "Add SD card support for AOT" into qt-dev
Jeff Sharkey [Mon, 15 Apr 2019 03:27:32 +0000 (03:27 +0000)]
Merge "Renaming or moving files should initiate scan." into qt-dev
Kyunglyul Hyun [Tue, 9 Apr 2019 08:00:51 +0000 (17:00 +0900)]
DO NOT MERGE: Revert "Media: Add MediaRouterManager to control media route of other apps"
This reverts commit
1c8188f2b40cad3dcefdcc3b7e308451bd705180.
Bug:
130511870
Test: atest android.media.cts.MediaRouterTest
Change-Id: I1de6fbeb81b1d5ef0ec4b73173b6525d4c6edc07
Sungsoo Lim [Fri, 12 Apr 2019 10:10:56 +0000 (19:10 +0900)]
Tweak the selection of media button session
Key events were sent to the session which the lastly activated player app has.
After this CL, key events will be sent to a session 1) which the app
making sounds has, or 2) which the lastly activated player app has.
Bug:
113240750
Test: manually
Change-Id: I6ac128458fd0d30c9e0ed3382939ca9e4e581e22
TreeHugger Robot [Sun, 14 Apr 2019 22:19:05 +0000 (22:19 +0000)]
Merge "MediaSession2: Introduce connection hints" into qt-dev
Dianne Hackborn [Sun, 14 Apr 2019 21:17:58 +0000 (21:17 +0000)]
Merge "Add "identifier" concept to Intent." into qt-dev
Jeff Sharkey [Sun, 14 Apr 2019 21:17:11 +0000 (21:17 +0000)]
Merge "Remove temporary upgrade logic." into qt-dev
Jeff Sharkey [Sun, 14 Apr 2019 18:23:35 +0000 (12:23 -0600)]
Renaming or moving files should initiate scan.
These FileSystemProvider operations should initiate a MediaStore scan
to ensure that it presents an updated view of the filesystem.
Bug:
129901992,
130356514
Test: manual
Change-Id: I612481282cf739b88a1637b147fb4d4555fb5b8f
TreeHugger Robot [Sun, 14 Apr 2019 06:24:37 +0000 (06:24 +0000)]
Merge "Add missing icon packs for Launcher Bug:
126738409 Test: builds, flashed, visually verified" into qt-dev
Sudheer Shanka [Sat, 13 Apr 2019 20:01:10 +0000 (20:01 +0000)]
Merge "Deprecate MediaStore.DownloadColumns.DESCRIPTION." into qt-dev
TreeHugger Robot [Sat, 13 Apr 2019 18:21:34 +0000 (18:21 +0000)]
Merge "ActivityMetricsLogger: Fix cold launches treated incorrectly as invalid transitions" into qt-dev
TreeHugger Robot [Sat, 13 Apr 2019 14:12:03 +0000 (14:12 +0000)]
Merge "Fix re-installation via package uri-s" into qt-dev
David Brazdil [Sat, 13 Apr 2019 09:59:01 +0000 (09:59 +0000)]
Merge "Pass core platform API policy property to ART" into qt-dev
Hyunyoung Song [Sat, 13 Apr 2019 06:47:14 +0000 (23:47 -0700)]
Add missing icon packs for Launcher
Bug:
126738409
Test: builds, flashed, visually verified
Change-Id: I30ff50f697e47adf6cec320f8633c8c6160b1ecf
Kevin Chyn [Sat, 13 Apr 2019 06:24:04 +0000 (06:24 +0000)]
Merge "Adding Face Setting Stats." into qt-dev
TreeHugger Robot [Sat, 13 Apr 2019 06:06:40 +0000 (06:06 +0000)]
Merge "Remove appops debug logic" into qt-dev
Wu Ahan [Sat, 13 Apr 2019 05:39:24 +0000 (05:39 +0000)]
Merge "Reset the texture coordinates and also take aspect ratio into account." into qt-dev
TreeHugger Robot [Sat, 13 Apr 2019 05:16:05 +0000 (05:16 +0000)]
Merge "Make notification effects for automotive configurable." into qt-dev
Joe Onorato [Sat, 13 Apr 2019 05:07:32 +0000 (05:07 +0000)]
Merge "Expose APIs for the experiment ids back from statsd." into qt-dev
TreeHugger Robot [Sat, 13 Apr 2019 04:49:44 +0000 (04:49 +0000)]
Merge "Add logging for bubble flyout action." into qt-dev
Joe Onorato [Sat, 13 Apr 2019 01:36:22 +0000 (18:36 -0700)]
Expose APIs for the experiment ids back from statsd.
Bug:
129099771
Test: treehugger
Change-Id: I8689a06ae5667a146064bc870be8b5a4e92fb9b7
TreeHugger Robot [Sat, 13 Apr 2019 01:55:34 +0000 (01:55 +0000)]
Merge "Remove config entries for music and gallery role." into qt-dev
TreeHugger Robot [Sat, 13 Apr 2019 01:54:23 +0000 (01:54 +0000)]
Merge "Cleans up PackageInstaller.Session docs" into qt-dev
Steven Wu [Thu, 11 Apr 2019 18:10:42 +0000 (14:10 -0400)]
Add logging for bubble flyout action.
Bug:
123543171
Test: manual
Change-Id: I7b0a21c0a0c23c211e4c72ec5b2dfc7ea60537d6
TreeHugger Robot [Sat, 13 Apr 2019 01:09:53 +0000 (01:09 +0000)]
Merge "Assume nav bar window is visible by default if the fragment doesn't exist" into qt-dev
TreeHugger Robot [Sat, 13 Apr 2019 01:01:22 +0000 (01:01 +0000)]
Merge "Sharesheet - force DS icons to be round" into qt-dev
TreeHugger Robot [Fri, 12 Apr 2019 23:29:34 +0000 (23:29 +0000)]
Merge "Log constellation types in GnssMetrics" into qt-dev
Mike Digman [Fri, 12 Apr 2019 17:02:49 +0000 (10:02 -0700)]
Sharesheet - force DS icons to be round
DS icons cannot be provided as AdaptiveIcons. Most today are
provided as a circular bitmap but there is no shape guarantee.
To provide visual consistency, scale and mask all DS icons to a
circle. Currently, all DS icons are shaped making them hard to
see.
Fixes:
129980123
Test: manual images large and small, rectangular, circular, etc
Change-Id: I011b35c1334affb1224f62beafd3f72026198054
Christian Wailes [Fri, 12 Apr 2019 23:22:43 +0000 (23:22 +0000)]
Merge "Fix FD leak in the Zygote." into qt-dev
Winson Chung [Fri, 12 Apr 2019 23:00:24 +0000 (16:00 -0700)]
Assume nav bar window is visible by default if the fragment doesn't exist
Bug:
129785904
Test: Kill sysui, ensure you can swipe up
Change-Id: Ib92ab26f5bba8fba1081337331ba2aa2b02e18dc
TreeHugger Robot [Fri, 12 Apr 2019 22:54:28 +0000 (22:54 +0000)]
Merge "Hide MediaPlayer2 and related classes" into qt-dev
Vishnu Nair [Fri, 12 Apr 2019 20:51:40 +0000 (13:51 -0700)]
ActivityMetricsLogger: Fix cold launches treated incorrectly as invalid transitions
In some cases where the process is killed and the activity is launched, its start result will be
START_TASK_TO_FRONT if its TaskRecord already exists. In this case the launch should be treated
as a COLD launch since the process will be created.
Bug:
130401938
Test: atest ActivityMetricsLoggerTests
Change-Id: I2841fe198d189be692c38f94829604bd1e4aa3b5
Sudheer Shanka [Fri, 12 Apr 2019 22:05:33 +0000 (15:05 -0700)]
Deprecate MediaStore.DownloadColumns.DESCRIPTION.
Bug:
130226648
Test: manual
Change-Id: I020d681e988eaa37871994860bea5ae2ab81d10e
Amith Yamasani [Fri, 12 Apr 2019 22:13:46 +0000 (22:13 +0000)]
Merge "Add tests for AppOpsService foreground location" into qt-dev
Adora Zhang [Tue, 9 Apr 2019 00:10:15 +0000 (17:10 -0700)]
Make notification effects for automotive configurable.
Bug:
129677989
Test: runtest -x frameworks/base/services/tests/uiservicestests/src/com/android/server/notification/BuzzBeepBlinkTest.java
Change-Id: Ib6d208942d35aa38d3820473e9218cc84ccd5d4c
Michael Wright [Fri, 12 Apr 2019 21:39:51 +0000 (21:39 +0000)]
Merge "Add class docs for InputMonitor." into qt-dev
TreeHugger Robot [Fri, 12 Apr 2019 21:35:10 +0000 (21:35 +0000)]
Merge "Update the playback UI any time the state changes" into qt-dev
Nicholas Sauer [Fri, 12 Apr 2019 21:28:29 +0000 (21:28 +0000)]
Merge "Fix notifications during doze mode on secondary user." into qt-dev
Kevin Chyn [Fri, 12 Apr 2019 21:10:23 +0000 (21:10 +0000)]
Merge "Authenticate with the correct user from KeyguardUpdateMonitor" into qt-dev
Kevin Rocard [Wed, 3 Apr 2019 23:51:11 +0000 (16:51 -0700)]
Add documentation for the APC feature
Test: m offline-sdk-docs
Bug:
111453086
Bug:
128454790
Change-Id: Ibeef672b1e3090bb83304cce4b58f0ffab7a9cdc
Signed-off-by: Kevin Rocard <krocard@google.com>
TreeHugger Robot [Fri, 12 Apr 2019 20:32:32 +0000 (20:32 +0000)]
Merge "Fix flickering when swiping up" into qt-dev
Jeff Sharkey [Fri, 12 Apr 2019 20:27:07 +0000 (14:27 -0600)]
Remove temporary upgrade logic.
All dogfood builds have updated past this point, so this recovery
logic has been applied, and is no longer needed.
Bug:
128914416
Test: none
Change-Id: I79ee434f602766afa4c4bf177f8a253a982d8ac0
Jeff Sharkey [Fri, 12 Apr 2019 20:24:15 +0000 (20:24 +0000)]
Merge "Promote generic columns up to MediaColumns." into qt-dev
Michele Berionne [Fri, 12 Apr 2019 20:07:28 +0000 (20:07 +0000)]
Merge "Remove @hide from builder of CarrierRestrictionRules" into qt-dev
TreeHugger Robot [Fri, 12 Apr 2019 20:01:22 +0000 (20:01 +0000)]
Merge "Support mix-n-match of IGnssDebug@1.0 with IGnss@2.0" into qt-dev
Alison Cichowlas [Fri, 12 Apr 2019 19:58:37 +0000 (19:58 +0000)]
Merge "Use the correct targets-per-row count for Landscape." into qt-dev
Philip P. Moltmann [Fri, 12 Apr 2019 19:58:14 +0000 (12:58 -0700)]
Fix re-installation via package uri-s
It is allowed to install a package via a "package" URI. This means that
if a package with the same name is already installed (for any user), please
(re-)install it for the current user.
This was broken as mPackageURI.getPath() does not work for such package
URIs. This call is only needed when we need to show UI, but for package
URIs we don't even new UI, hence we can move it for the "content" path.
Test: atest CtsPackageInstallTestCases
Bug:
117768093
Change-Id: I58d3abde22ae0a77aabe5068680fd0148d799776
TreeHugger Robot [Fri, 12 Apr 2019 19:57:31 +0000 (19:57 +0000)]
Merge "Sharesheet - Add contentDescription to copy button" into qt-dev
TreeHugger Robot [Fri, 12 Apr 2019 19:46:33 +0000 (19:46 +0000)]
Merge changes Iabebe9cf,I5afbd60f into qt-dev
* changes:
Automatically run Package Installer tests
Remove support to install apps from a file
TreeHugger Robot [Fri, 12 Apr 2019 19:46:30 +0000 (19:46 +0000)]
Merge "OMS: always update overlays.xml when overlay is removed" into qt-dev
joshmccloskey [Thu, 11 Apr 2019 21:06:43 +0000 (14:06 -0700)]
Adding Face Setting Stats.
Test: Verified that fields are set.
Bug:
128349976
Change-Id: I49b30401ebf3063adf7d137ff40505d6504226ab
TreeHugger Robot [Fri, 12 Apr 2019 19:37:18 +0000 (19:37 +0000)]
Merge "Reapply nav hints when systemui crashes or killed" into qt-dev
Fabian Kozynski [Fri, 12 Apr 2019 19:22:33 +0000 (19:22 +0000)]
Merge "Fixed bugs in PagedTileLayout, QSAnimator using RTL" into qt-dev
Kevin Rocard [Tue, 9 Apr 2019 23:25:26 +0000 (16:25 -0700)]
Add AudioAttributes.getAllowedCapturePolicy
Bug:
129948989
Bug:
128454287
Test: atest AudioAttributesTest
Change-Id: Ide4a6c160791ade1b93796ba4d2fca9e3c1f9eed
Signed-off-by: Kevin Rocard <krocard@google.com>
TreeHugger Robot [Fri, 12 Apr 2019 19:00:18 +0000 (19:00 +0000)]
Merge "Fix RelativeLayout checking of resource ids greater than 0x80" into qt-dev
Kevin Chyn [Fri, 12 Apr 2019 01:30:40 +0000 (18:30 -0700)]
Authenticate with the correct user from KeyguardUpdateMonitor
Fixes:
130242795
Test: manual
Change-Id: I5c5e400de9d204d89abbe07bc6b3265dbc4ea973
TreeHugger Robot [Fri, 12 Apr 2019 18:40:47 +0000 (18:40 +0000)]
Merge "Avoid taking a lock when we shouldn't" into qt-dev
Michael Wachenschwanz [Wed, 13 Mar 2019 21:13:19 +0000 (14:13 -0700)]
Remove old version of registerUsageSessionObserver
Test: none
Fixes:
128455269
Change-Id: I23ac8db6b05e3f40dd83f87b85c19bd3bc873e48
Yu-Han Yang [Fri, 29 Mar 2019 02:35:57 +0000 (19:35 -0700)]
Log constellation types in GnssMetrics
Bug:
121157068
Test: on device
Change-Id: I9e2c1238e46422f9c11b748567c2741ed95aeaa0
Eino-Ville Talvala [Fri, 12 Apr 2019 18:11:06 +0000 (18:11 +0000)]
Merge "Camera: Document LEGACY not being allowed on new devices" into qt-dev
Fabian Kozynski [Fri, 12 Apr 2019 18:09:41 +0000 (18:09 +0000)]
Merge "Convert Privacy Types to use PermissionGroup icons" into qt-dev
Joe Onorato [Fri, 12 Apr 2019 18:00:30 +0000 (18:00 +0000)]
Merge "Connect face service debugging to the HAL" into qt-dev
Andrew Lewis [Fri, 12 Apr 2019 17:58:31 +0000 (18:58 +0100)]
Hide MediaPlayer2 and related classes
Test: compiles locally
Bug:
130420617
Change-Id: Ic8d838ce8ae850272941815de425991a3a87754e
Jeff Sharkey [Fri, 12 Apr 2019 17:52:16 +0000 (11:52 -0600)]
Promote generic columns up to MediaColumns.
Based on feedback from developers, they need to query these columns
on the general "Files" table, so we need to promote them to the
general "MediaColumns" common interface to make them available.
Bug:
130254706
Test: atest --test-mapping packages/providers/MediaProvider
Change-Id: I66afa14799ae42deea519d121177b2c8469889ab
TreeHugger Robot [Fri, 12 Apr 2019 17:49:04 +0000 (17:49 +0000)]
Merge "Mitigate screen flashing on overlay change." into qt-dev
Matt Pietal [Fri, 12 Apr 2019 17:48:18 +0000 (13:48 -0400)]
Sharesheet - Add contentDescription to copy button
For accessibility, add button description
Bug:
130211978
Test: Manual
Change-Id: Id8152533f43f8567264c3514fb0a228d615a6e7c
TreeHugger Robot [Fri, 12 Apr 2019 17:47:45 +0000 (17:47 +0000)]
Merge "Swap Filled and Rounded for IconPack*LauncherOverlay" into qt-dev
Abodunrinwa Toki [Fri, 12 Apr 2019 17:36:24 +0000 (17:36 +0000)]
Merge "Null annotations in TC APIs." into qt-dev
Baligh Uddin [Fri, 12 Apr 2019 17:21:04 +0000 (17:21 +0000)]
Merge changes from topic "RemoveTempStatsLogWrite" into qt-dev
* changes:
Mark permission controller atoms
Remove StatsLog.write
Alex Kershaw [Fri, 12 Apr 2019 15:59:29 +0000 (16:59 +0100)]
Catch exceptions thrown from UpdateEngine#applyPayload.
Note: we can't add a CTS test for this behaviour since the UpdateEngine
is an implementation detail.
Fixes:
124106342
Test: Manually tested
Change-Id: Ib8e6895211b5d39a4d037d383c115011084ea257
TreeHugger Robot [Fri, 12 Apr 2019 17:17:41 +0000 (17:17 +0000)]
Merge "Set mEnterAnimationPending to true if a window was not visible" into qt-dev
TreeHugger Robot [Fri, 12 Apr 2019 17:13:11 +0000 (17:13 +0000)]
Merge "Remove PRODUCT_SERVICES from PackageManagerNative.getLocation." into qt-dev
Riddle Hsu [Fri, 12 Apr 2019 08:55:11 +0000 (16:55 +0800)]
Ensure to update top process state when launching activity
- Combine addPackage, clearWaitingToKill and updateProcessInfo
into onStartActivity that reduces the amount of messages and
acquiring lock.
- Invoke onStartActivity after setting activity state to ensure
oom adjustment uses the latest state (currently the order is
ensured by lock contention but it is too implicit).
- Make the message of onStartActivity always enqueue at front so
the process can gain the top state earlier.
Test: AppLaunchTest
Bug:
123043091
Change-Id: Id8d00273a5dc88526c3c158c49423c15fb99a0d5
Philip P. Moltmann [Fri, 12 Apr 2019 17:09:13 +0000 (10:09 -0700)]
Automatically run Package Installer tests
Test: atest --test-mapping frameworks/base/packages/PackageInstaller
Bug:
123212933
Change-Id: Iabebe9cf91fcdacca2bc6d566a1072f1e84eb97f
Philip P. Moltmann [Fri, 12 Apr 2019 16:41:57 +0000 (09:41 -0700)]
Remove support to install apps from a file
Test: atest CtsPackageInstallTestCases
Bug:
123212933
Change-Id: I5afbd60f2c8db68858289edec0302b782677ded5
Ying Zheng [Fri, 12 Apr 2019 17:03:21 +0000 (17:03 +0000)]
Merge "Remove the deprecated UserManagerHelper, new one is in car user lib." into qt-dev
Peiyong Lin [Fri, 12 Apr 2019 16:57:38 +0000 (16:57 +0000)]
Merge "Determine the dataspace of the screenshot buffer based on display color mode." into qt-dev
Fabian Kozynski [Fri, 12 Apr 2019 14:09:48 +0000 (10:09 -0400)]
Fixed bugs in PagedTileLayout, QSAnimator using RTL
* getNumVisibleTiles now returns the correct number when in RTL. It was
not referring to the correct page
* mPageToRestore set properly on configuration changes
* Animation of tiles that do not fit in screen is correct in RTL.
Fixes:
130408545
Test: visual, changing configuration and expanding/collapsing
Change-Id: I62da728631fceaead0f81af1b32a115e961cf58e
Dianne Hackborn [Thu, 11 Apr 2019 20:18:58 +0000 (13:18 -0700)]
Add "identifier" concept to Intent.
Still need to add protobuf part.
Test: atest CtsContentTestCases:IntentTest
Bug:
130365291
Change-Id: Icfead9b50475471eb25fc49713b080d2a150e9c4
Fabian Kozynski [Fri, 12 Apr 2019 16:55:09 +0000 (16:55 +0000)]
Merge "Adds a DumpController to SystemUI Dependencies" into qt-dev
TreeHugger Robot [Fri, 12 Apr 2019 16:52:52 +0000 (16:52 +0000)]
Merge "Protects against a null statusReceiver in uninstall" into qt-dev
Todd Kennedy [Thu, 11 Apr 2019 19:25:16 +0000 (12:25 -0700)]
Avoid taking a lock when we shouldn't
Pull out code that shouldn't be executed with the mPackages
lock held. Also changed the names of some methods [added a
'NotLocked' suffix] and added a WTF to be ensure that the
mPackages lock is not held when those methods are called.
Fixes:
129500384
Test: atest
Change-Id: I6853d4e6db92b962aa79e22470845296c2a77e58
arangelov [Fri, 12 Apr 2019 16:04:58 +0000 (17:04 +0100)]
Add new metrics for ManagedProvisioning.
Bug:
122652345
Bug:
123526470
Test: none
Change-Id: I7c8db15b1896ad6b2e3a88e4e41ecbbba50dfa37
Hayden Gomes [Fri, 12 Apr 2019 15:49:39 +0000 (15:49 +0000)]
Merge changes from topic "AudioProductStrategies-API" into qt-dev
* changes:
Replacing AudioVolumeGroups with List
Cleaning up SeekBarVolumizer
Removing name getter from AudioProductStrategy
Replacing AudioProductStrategies with List
Jorim Jaggi [Fri, 12 Apr 2019 15:44:50 +0000 (17:44 +0200)]
Fix issue in attached layouting
When we forced the parent to draw behind the navigation bar,
overscan/display are extended towards the bottom of the screen,
which will cause attached windows to layout behind the navigation
bar.
To fix this, we intersect these frames with DF.RestrictedOverscan
in case we forced the window to draw behind to keep compatibility.
Test: AccessibilityWindowQueryTest
Fixes:
130231322
Change-Id: I66f5ad4fab1f173e5b61e7d61d1e0bb0dafe66e5
TreeHugger Robot [Fri, 12 Apr 2019 15:39:56 +0000 (15:39 +0000)]
Merge "API council feedbacks for DnsResolver" into qt-dev