# Deprecated API

## Contents

- Classes
- Methods

- Deprecated Classes
  Class
  Description
  com.codename1.ads.AdsService
  this legacy banner ad service targets ad networks that no longer exist and predates consent management. Use the modern pluggable advertising API in `AdManager` instead.
  com.codename1.ads.InnerActive
  the InnerActive ad network is defunct. Use the modern pluggable advertising API in `AdManager` instead.
  com.codename1.analytics.AnalyticsService
  use `Analytics` and an `AnalyticsProvider`
  com.codename1.components.Ads
  this legacy HTML banner component targets the defunct InnerActive network. Use `BannerAd` from the modern advertising API (see `AdManager`) instead.
  com.codename1.facebook.FaceBookAccess
  This legacy OAuth2/Graph REST wrapper predates Facebook's current policies and embeds credentials client-side, which Facebook no longer permits for production use. Use `FacebookConnect` (native SDK path) for login, and a server-side component for any Graph API access that requires a client secret. This class will be removed in a future release.
  com.codename1.facebook.ui.LikeButton
  This functionality is no longer possible, open a BrowserComponent with the link instead. This class will be removed in a future release.
  com.codename1.io.gzip.ZStream
  com.codename1.io.Oauth2
  Use `OidcClient` for new code.
  com.codename1.maps.MapComponent
  com.codename1.share.FacebookShare
  This share service relies on the legacy `FaceBookAccess` OAuth/Graph flow which is no longer supported by Facebook. Use a `BrowserComponent` pointed at a Facebook share URL, or delegate to the native share sheet. This class will be removed in a future release.
  com.codename1.ui.util.MutableResouce

- Deprecated Methods
  Method
  Description
  com.codename1.analytics.AnalyticsService.decorateVisitPageRequest(String, String, ConnectionRequest)
  decorate the request inside a custom `AnalyticsProvider`
  com.codename1.analytics.AnalyticsService.init(AnalyticsService)
  use `Analytics` and a custom `AnalyticsProvider`
  com.codename1.analytics.AnalyticsService.init(String, String)
  use `Analytics` with a `GoogleAnalyticsProvider`
  com.codename1.analytics.AnalyticsService.isAppsMode()
  use `Analytics`
  com.codename1.analytics.AnalyticsService.isEnabled()
  use `Analytics`
  com.codename1.analytics.AnalyticsService.isFailSilently()
  use `Analytics`
  com.codename1.analytics.AnalyticsService.sendCrashReport(Throwable, String, boolean)
  use `Analytics.crash(Throwable, String, boolean)`
  com.codename1.analytics.AnalyticsService.setAppsMode(boolean)
  use `Analytics`
  com.codename1.analytics.AnalyticsService.setFailSilently(boolean)
  use `Analytics`
  com.codename1.analytics.AnalyticsService.setReadTimeout(int)
  use `Analytics`
  com.codename1.analytics.AnalyticsService.setTimeout(int)
  use `Analytics`
  com.codename1.analytics.AnalyticsService.visit(String, String)
  use `Analytics.screen(String, String)`
  com.codename1.charts.renderers.XYSeriesRenderer.isFillBelowLine()
  com.codename1.charts.renderers.XYSeriesRenderer.setFillBelowLine(boolean)
  com.codename1.charts.renderers.XYSeriesRenderer.setFillBelowLineColor(int)
  com.codename1.facebook.Album.getCover_photo()
  com.codename1.facebook.Album.getCreated_time()
  com.codename1.facebook.Album.getUpdated_time()
  com.codename1.facebook.Photo.getCreated_time()
  com.codename1.facebook.Photo.getUpdated_time()
  com.codename1.facebook.User.getFirst_name()
  com.codename1.facebook.User.getLast_name()
  com.codename1.facebook.User.getLast_updated()
  com.codename1.facebook.User.getRelationship_status()
  com.codename1.io.gzip.JZlib.adler32_combine(long, long, long)
  com.codename1.io.gzip.JZlib.crc32_combine(long, long, long)
  com.codename1.io.Log.bindCrashProtection(boolean)

  Replaced by `com.codename1.crash.CrashProtection`, which captures the full structured crash record (Java exception

  - native crash data + platform log snapshot) and uploads it to the managed crash-reporting service. Call `CrashProtection.install()` plus `CrashProtection.setEnabled(true)` from your `Lifecycle.init` instead. This method is now a no-op.
  com.codename1.io.Properties.save(OutputStream, String)
  This method ignores any `IOException` thrown while writing -- use `#store` instead for better exception handling.
  com.codename1.ui.ComponentSelector.$(Component...)
  com.codename1.ui.ComponentSelector.$(ActionEvent)
  com.codename1.ui.ComponentSelector.$(Runnable)
  com.codename1.ui.ComponentSelector.$(String)
  com.codename1.ui.ComponentSelector.$(String, Component...)
  com.codename1.ui.ComponentSelector.$(String, Collection<Component>)
  com.codename1.ui.ComponentSelector.$(Set<Component>)
  com.codename1.ui.Transform.IDENTITY()