Skip to content

[TCSACR-642][Tizen.Applications.ComponentBased.ComponentManager] Deprecate Component Manager APIs#7556

Open
Hyeon-Uk wants to merge 3 commits intoSamsung:mainfrom
Hyeon-Uk:deprecated-api-component-manager
Open

[TCSACR-642][Tizen.Applications.ComponentBased.ComponentManager] Deprecate Component Manager APIs#7556
Hyeon-Uk wants to merge 3 commits intoSamsung:mainfrom
Hyeon-Uk:deprecated-api-component-manager

Conversation

@Hyeon-Uk
Copy link
Copy Markdown
Collaborator

@Hyeon-Uk Hyeon-Uk commented Apr 9, 2026

Signed-off-by: Hyeon-Uk <rlagusdnr120@gmail.com>
@Hyeon-Uk Hyeon-Uk requested review from hjhun, pjh9216 and upple as code owners April 9, 2026 00:28
@github-actions github-actions bot added the API14 Platform : Tizen 11.0 / TFM: net8.0-tizen11.0 label Apr 9, 2026
@TizenAPI-Bot
Copy link
Copy Markdown
Collaborator

Public API Changed

Please follow the ACR process for the changed API below.

Added: 0, Removed: 0, Changed: 28

Changed

/// <since_tizen>6</since_tizen
+ [Obsolete]
Tizen.Applications.ComponentBased.ComponentInfo

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.Boolean Tizen.Applications.ComponentBased.ComponentInfo::IsIconDisplayed()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.Boolean Tizen.Applications.ComponentBased.ComponentInfo::IsManagedByTaskManager()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentInfo::ApplicationId()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentInfo::ComponentId()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentInfo::IconPath()

/// <since_tizen>none</since_tizen
+ [Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentInfo::Label()

/// <since_tizen>6</since_tizen
+ [Obsolete]
Tizen.Applications.ComponentBased.ComponentType Tizen.Applications.ComponentBased.ComponentInfo::ComponentType()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentInfo::GetLocalizedLabel(System.String)

/// <privilege>http://tizen.org/privilege/packagemanager.info</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
System.Void Tizen.Applications.ComponentBased.ComponentInfo::.ctor(System.String)

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.Void Tizen.Applications.ComponentBased.ComponentInfo::Dispose()

/// <since_tizen>6</since_tizen
+ [Obsolete]
Tizen.Applications.ComponentBased.ComponentManager

/// <privilege>http://tizen.org/privilege/packagemanager.info</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
static System.Boolean Tizen.Applications.ComponentBased.ComponentManager::IsRunning(System.String)

/// <privilege>http://tizen.org/privilege/packagemanager.info</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
static System.Threading.Tasks.Task`1<System.Collections.Generic.IEnumerable`1<Tizen.Applications.ComponentBased.ComponentInfo>> Tizen.Applications.ComponentBased.ComponentManager::GetInstalledComponentsAsync()

/// <privilege>http://tizen.org/privilege/packagemanager.info</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
static System.Threading.Tasks.Task`1<System.Collections.Generic.IEnumerable`1<Tizen.Applications.ComponentBased.ComponentRunningContext>> Tizen.Applications.ComponentBased.ComponentManager::GetRunningComponentsAsync()

/// <privilege>http://tizen.org/privilege/appmanager.kill.bgapp</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
static System.Void Tizen.Applications.ComponentBased.ComponentManager::TerminateBackgroundComponent(Tizen.Applications.ComponentBased.ComponentRunningContext)

/// <since_tizen>6</since_tizen
+ [Obsolete]
Tizen.Applications.ComponentBased.ComponentRunningContext

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.Boolean Tizen.Applications.ComponentBased.ComponentRunningContext::IsSubComponent()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.Boolean Tizen.Applications.ComponentBased.ComponentRunningContext::IsTerminated()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentRunningContext::ApplicationId()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentRunningContext::ComponentId()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentRunningContext::InstanceId()

/// <since_tizen>6</since_tizen
+ [Obsolete]
Tizen.Applications.ComponentBased.ComponentRunningContext/ComponentState Tizen.Applications.ComponentBased.ComponentRunningContext::State()

/// <privilege>http://tizen.org/privilege/packagemanager.info</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
System.Void Tizen.Applications.ComponentBased.ComponentRunningContext::.ctor(System.String)

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.Void Tizen.Applications.ComponentBased.ComponentRunningContext::Dispose()

/// <privilege>http://tizen.org/privilege/appmanager.launch</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
System.Void Tizen.Applications.ComponentBased.ComponentRunningContext::Resume()

/// <since_tizen>6</since_tizen
+ [Obsolete]
Tizen.Applications.ComponentBased.ComponentRunningContext/ComponentState

/// <since_tizen>6</since_tizen
+ [Obsolete]
Tizen.Applications.ComponentBased.ComponentType

Internal API Changed

Added: 0, Removed: 0, Changed: 2

Changed

/// <privilege>http://tizen.org/privilege/appmanager.launch</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
[EditorBrowsable(EditorBrowsableState.Never)]
System.Void Tizen.Applications.ComponentBased.ComponentRunningContext::Pause()

/// <privilege>http://tizen.org/privilege/appmanager.launch</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
[EditorBrowsable(EditorBrowsableState.Never)]
System.Void Tizen.Applications.ComponentBased.ComponentRunningContext::Terminate()

@JoonghyunCho
Copy link
Copy Markdown
Member

Code Review

1. Missing since_tizen tag on ComponentInfo.Label
The Label property has [Obsolete] added but is still missing a since_tizen XML documentation tag. The API bot flagged it as since_tizen none. Please add the correct version tag.

2. Avoid marking Dispose() as Obsolete
ComponentInfo.Dispose() and ComponentRunningContext.Dispose() should not be annotated with [Obsolete]. Doing so causes the compiler to emit a warning on the implicit Dispose() call inside using statements, degrading the experience for consumers who still need to clean up existing instances. The class-level [Obsolete] attribute is sufficient.

3. Inconsistent deprecation message vs. related PR
PR #7553 (same deprecation effort, ComponentBased.Common) uses a different message wording. These should be unified to a single consistent format across both PRs.

Added missing <since_tizen> 6 </since_tizen> tag to Label property in
ComponentInfo. Removed incorrect [Obsolete] attributes from Dispose()
methods in both ComponentInfo and ComponentRunningContext classes.

Signed-off-by: Hyeon-Uk <rlagusdnr120@gmail.com>
@TizenAPI-Bot
Copy link
Copy Markdown
Collaborator

Public API Changed

Please follow the ACR process for the changed API below.

Added: 0, Removed: 0, Changed: 26

Changed

/// <since_tizen>6</since_tizen
+ [Obsolete]
Tizen.Applications.ComponentBased.ComponentInfo

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.Boolean Tizen.Applications.ComponentBased.ComponentInfo::IsIconDisplayed()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.Boolean Tizen.Applications.ComponentBased.ComponentInfo::IsManagedByTaskManager()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentInfo::ApplicationId()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentInfo::ComponentId()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentInfo::IconPath()

- /// <since_tizen>none</since_tizen
+ /// <since_tizen>6</since_tizen
[Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentInfo::Label()

/// <since_tizen>6</since_tizen
+ [Obsolete]
Tizen.Applications.ComponentBased.ComponentType Tizen.Applications.ComponentBased.ComponentInfo::ComponentType()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentInfo::GetLocalizedLabel(System.String)

/// <privilege>http://tizen.org/privilege/packagemanager.info</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
System.Void Tizen.Applications.ComponentBased.ComponentInfo::.ctor(System.String)

/// <since_tizen>6</since_tizen
+ [Obsolete]
Tizen.Applications.ComponentBased.ComponentManager

/// <privilege>http://tizen.org/privilege/packagemanager.info</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
static System.Boolean Tizen.Applications.ComponentBased.ComponentManager::IsRunning(System.String)

/// <privilege>http://tizen.org/privilege/packagemanager.info</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
static System.Threading.Tasks.Task`1<System.Collections.Generic.IEnumerable`1<Tizen.Applications.ComponentBased.ComponentInfo>> Tizen.Applications.ComponentBased.ComponentManager::GetInstalledComponentsAsync()

/// <privilege>http://tizen.org/privilege/packagemanager.info</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
static System.Threading.Tasks.Task`1<System.Collections.Generic.IEnumerable`1<Tizen.Applications.ComponentBased.ComponentRunningContext>> Tizen.Applications.ComponentBased.ComponentManager::GetRunningComponentsAsync()

/// <privilege>http://tizen.org/privilege/appmanager.kill.bgapp</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
static System.Void Tizen.Applications.ComponentBased.ComponentManager::TerminateBackgroundComponent(Tizen.Applications.ComponentBased.ComponentRunningContext)

/// <since_tizen>6</since_tizen
+ [Obsolete]
Tizen.Applications.ComponentBased.ComponentRunningContext

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.Boolean Tizen.Applications.ComponentBased.ComponentRunningContext::IsSubComponent()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.Boolean Tizen.Applications.ComponentBased.ComponentRunningContext::IsTerminated()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentRunningContext::ApplicationId()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentRunningContext::ComponentId()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentRunningContext::InstanceId()

/// <since_tizen>6</since_tizen
+ [Obsolete]
Tizen.Applications.ComponentBased.ComponentRunningContext/ComponentState Tizen.Applications.ComponentBased.ComponentRunningContext::State()

/// <privilege>http://tizen.org/privilege/packagemanager.info</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
System.Void Tizen.Applications.ComponentBased.ComponentRunningContext::.ctor(System.String)

/// <privilege>http://tizen.org/privilege/appmanager.launch</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
System.Void Tizen.Applications.ComponentBased.ComponentRunningContext::Resume()

/// <since_tizen>6</since_tizen
+ [Obsolete]
Tizen.Applications.ComponentBased.ComponentRunningContext/ComponentState

/// <since_tizen>6</since_tizen
+ [Obsolete]
Tizen.Applications.ComponentBased.ComponentType

Internal API Changed

Added: 0, Removed: 0, Changed: 2

Changed

/// <privilege>http://tizen.org/privilege/appmanager.launch</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
[EditorBrowsable(EditorBrowsableState.Never)]
System.Void Tizen.Applications.ComponentBased.ComponentRunningContext::Pause()

/// <privilege>http://tizen.org/privilege/appmanager.launch</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
[EditorBrowsable(EditorBrowsableState.Never)]
System.Void Tizen.Applications.ComponentBased.ComponentRunningContext::Terminate()

@JoonghyunCho
Copy link
Copy Markdown
Member

🤖 [AI Review] — [TCSACR-642] Deprecate ComponentManager APIs

Suggestion: Inconsistent [Obsolete] message format with companion PR #7553

This PR uses [Obsolete("Deprecated since API level 14")] throughout Tizen.Applications.ComponentBased.ComponentManager, while the related PR #7553 (deprecating Tizen.Applications.ComponentBased.Common) uses [Obsolete("This has been deprecated in API14")]. Since both PRs target the same namespace family and the same API level, the deprecation message text should be identical across all affected types for a consistent developer experience. Please align the wording between the two PRs before merging.


Suggestion: Deprecation message should include migration guidance

The [Obsolete] message currently contains no information about what developers should use instead. Consider adding a reference to the ACR or a note about the API's removal timeline, for example:

[Obsolete("Deprecated since API14. This API will be removed in a future release.")]

If there is a recommended replacement type or method, please include it in the message so developers have actionable migration guidance directly in IntelliSense.


Note: Good fix — Label property now has <since_tizen> tag

The ComponentInfo.Label property was previously missing its <since_tizen> XML doc tag. This PR correctly adds /// <since_tizen> 6 </since_tizen>. Well spotted.

@JoonghyunCho
Copy link
Copy Markdown
Member

🤖 [AI Review] — Follow-up on @JoonghyunCho review (unanswered)

The review posted on this PR raised three issues. Checking the current diff for resolution status:

1. Missing <since_tizen> on ComponentInfo.Label — ✅ Addressed
The current diff shows /// <since_tizen> 6 </since_tizen> was added to Label. This item appears to be resolved.

2. Dispose() annotated with [Obsolete]⚠️ Needs confirmation
The current diff does not show an explicit [Obsolete] annotation on Dispose(). The API bot flagged it as changed only because the class-level [Obsolete] causes it to appear in the changed-members list. If there is no explicit [Obsolete] on the Dispose() override in the full file, this concern is already resolved. @Hyeon-Uk please confirm whether Dispose() has an explicit [Obsolete] annotation anywhere in the file.

3. Inconsistent deprecation message — ❌ Still present
This PR uses "Deprecated since API level 14" while the companion PR #7553 (same deprecation effort, ComponentBased.Common) uses "This has been deprecated in API14". These two messages should be unified across both PRs so the developer-facing deprecation warning is consistent.

@Hyeon-Uk Could you please address items 2 and 3, and confirm the current state?

Deprecated since API level 14
->
This has been deprecated in API14

Signed-off-by: Hyeon-Uk <rlagusdnr120@gmail.com>
@TizenAPI-Bot
Copy link
Copy Markdown
Collaborator

Public API Changed

Please follow the ACR process for the changed API below.

Added: 0, Removed: 5, Changed: 26

Removed

- /// <since_tizen>9</since_tizen
- Tizen.Applications.ResourceControl

- /// <since_tizen>9</since_tizen
- System.Boolean Tizen.Applications.ResourceControl::IsAutoClose()

- /// <since_tizen>9</since_tizen
- System.String Tizen.Applications.ResourceControl::MaxResourceVersion()

- /// <since_tizen>9</since_tizen
- System.String Tizen.Applications.ResourceControl::MinResourceVersion()

- /// <since_tizen>9</since_tizen
- System.String Tizen.Applications.ResourceControl::ResourceType()

Changed

/// <since_tizen>6</since_tizen
+ [Obsolete]
Tizen.Applications.ComponentBased.ComponentInfo

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.Boolean Tizen.Applications.ComponentBased.ComponentInfo::IsIconDisplayed()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.Boolean Tizen.Applications.ComponentBased.ComponentInfo::IsManagedByTaskManager()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentInfo::ApplicationId()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentInfo::ComponentId()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentInfo::IconPath()

- /// <since_tizen>none</since_tizen
+ /// <since_tizen>6</since_tizen
[Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentInfo::Label()

/// <since_tizen>6</since_tizen
+ [Obsolete]
Tizen.Applications.ComponentBased.ComponentType Tizen.Applications.ComponentBased.ComponentInfo::ComponentType()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentInfo::GetLocalizedLabel(System.String)

/// <privilege>http://tizen.org/privilege/packagemanager.info</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
System.Void Tizen.Applications.ComponentBased.ComponentInfo::.ctor(System.String)

/// <since_tizen>6</since_tizen
+ [Obsolete]
Tizen.Applications.ComponentBased.ComponentManager

/// <privilege>http://tizen.org/privilege/packagemanager.info</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
static System.Boolean Tizen.Applications.ComponentBased.ComponentManager::IsRunning(System.String)

/// <privilege>http://tizen.org/privilege/packagemanager.info</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
static System.Threading.Tasks.Task`1<System.Collections.Generic.IEnumerable`1<Tizen.Applications.ComponentBased.ComponentInfo>> Tizen.Applications.ComponentBased.ComponentManager::GetInstalledComponentsAsync()

/// <privilege>http://tizen.org/privilege/packagemanager.info</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
static System.Threading.Tasks.Task`1<System.Collections.Generic.IEnumerable`1<Tizen.Applications.ComponentBased.ComponentRunningContext>> Tizen.Applications.ComponentBased.ComponentManager::GetRunningComponentsAsync()

/// <privilege>http://tizen.org/privilege/appmanager.kill.bgapp</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
static System.Void Tizen.Applications.ComponentBased.ComponentManager::TerminateBackgroundComponent(Tizen.Applications.ComponentBased.ComponentRunningContext)

/// <since_tizen>6</since_tizen
+ [Obsolete]
Tizen.Applications.ComponentBased.ComponentRunningContext

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.Boolean Tizen.Applications.ComponentBased.ComponentRunningContext::IsSubComponent()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.Boolean Tizen.Applications.ComponentBased.ComponentRunningContext::IsTerminated()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentRunningContext::ApplicationId()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentRunningContext::ComponentId()

/// <since_tizen>6</since_tizen
+ [Obsolete]
System.String Tizen.Applications.ComponentBased.ComponentRunningContext::InstanceId()

/// <since_tizen>6</since_tizen
+ [Obsolete]
Tizen.Applications.ComponentBased.ComponentRunningContext/ComponentState Tizen.Applications.ComponentBased.ComponentRunningContext::State()

/// <privilege>http://tizen.org/privilege/packagemanager.info</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
System.Void Tizen.Applications.ComponentBased.ComponentRunningContext::.ctor(System.String)

/// <privilege>http://tizen.org/privilege/appmanager.launch</privilege
/// <since_tizen>6</since_tizen
+ [Obsolete]
System.Void Tizen.Applications.ComponentBased.ComponentRunningContext::Resume()

/// <since_tizen>6</since_tizen
+ [Obsolete]
Tizen.Applications.ComponentBased.ComponentRunningContext/ComponentState

/// <since_tizen>6</since_tizen
+ [Obsolete]
Tizen.Applications.ComponentBased.ComponentType

Internal API Changed

Added: 121, Removed: 0, Changed: 2

@Hyeon-Uk
Copy link
Copy Markdown
Collaborator Author

🤖 [AI Review] — Follow-up on @JoonghyunCho review (unanswered)

The review posted on this PR raised three issues. Checking the current diff for resolution status:

1. Missing <since_tizen> on ComponentInfo.Label — ✅ Addressed The current diff shows /// <since_tizen> 6 </since_tizen> was added to Label. This item appears to be resolved.

2. Dispose() annotated with [Obsolete]⚠️ Needs confirmation The current diff does not show an explicit [Obsolete] annotation on Dispose(). The API bot flagged it as changed only because the class-level [Obsolete] causes it to appear in the changed-members list. If there is no explicit [Obsolete] on the Dispose() override in the full file, this concern is already resolved. @Hyeon-Uk please confirm whether Dispose() has an explicit [Obsolete] annotation anywhere in the file.

3. Inconsistent deprecation message — ❌ Still present This PR uses "Deprecated since API level 14" while the companion PR #7553 (same deprecation effort, ComponentBased.Common) uses "This has been deprecated in API14". These two messages should be unified across both PRs so the developer-facing deprecation warning is consistent.

@Hyeon-Uk Could you please address items 2 and 3, and confirm the current state?

I removed that '[Obsolete]' annotation on Dispose() method. Please check commits and file changes! Thank you :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ACR Required API14 Platform : Tizen 11.0 / TFM: net8.0-tizen11.0 Internal API Changed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants