Skip to content

Latest commit

 

History

History
executable file
·
673 lines (400 loc) · 29.4 KB

CHANGELOG.md

File metadata and controls

executable file
·
673 lines (400 loc) · 29.4 KB

Release Notes

5.4.0

  • feat + fix: tabbed example, improved types, efficient Platform usage (thanks @zoontek!)
  • feat: Added getDeviceToken() using DeviceCheck API on iOS 11.0+ (thanks @AntoineDoubovetzky!)
  • fix: hasNotch correctly matches Xiaomi Mi 9 (thanks @BogdanTaranenko!)
  • docs: fix upgrade links in README TOC (thanks @Simek!)
  • docs: fix type in README useIsEmulator example (thanks @zusinShinpei!)

5.3.1

  • types: fix Flow types (thanks @grit96!)

5.3.0

  • feat: Added web support for isCameraPresent, isLocationEnabled, isAirplaneMode, getBaseOs, getFreeDiskStorage, getMaxMemory, getTotalDiskCapacity, getTotalMemory, getUsedMemory and battery/charging-related APIs. (thanks @robertherber!)

5.2.0

  • feat: isHeadphonesConnected() / isHeadphonesConnectedSync() (thanks @chakrihacker!)

5.1.0

This release allows you to use the firebase iid library for unique ids - it's the backwards-compatible but future direction of unique ids on Android, you should move to it by using firebaseIidVersion in your android/build.gradle file ext{} block to specify the library version

  • feat: android native interoperability - determine isTablet from android native (thanks @andresesfm!)
  • feat: android unique ID forward-ported to firebase, w/great backwards-compatibility (thanks @andresesfm and Andres Aguilar!)

5.0.1

  • re-package of 5.0.0 without change except delete accidental inclusion of example/android/app/build

5.0.0

  • BREAKING: (from 4.0.2-rc.1) getDeviceType is constant now - no need for getDeviceTypeSync This is a tiny breaking change, easy to adopt:
    1. getDeviceTypeSync --> getDeviceType
    2. getDeviceType.then(type => {}); --> let type = getDeviceType();
  • feat: Hooks! Add useBatteryLevel(), useBatteryLevelIsLow(), usePowerState methods (thanks @magrinj!)
  • fix: iOS use CFBundleName if CFBundleDisplayName null (Fixes #846, thanks @rizwankce!)
  • chore: add support for 2019 iPads models in 'model' mapping (thanks Edward Wong!)
  • chore: add support for motorola one vision in hasNotch (thanks @euharrison!)
  • docs(README): Fixed link in TOC (thanks @martinvol!)
  • docs(README): Fixed example code hasNotch() - constant, no Promise (thanks @cereme!)
  • docs(README): Fixed example code getDeviceId() - constant, no Promise (thanks @adambutler!)
  • docs(README): Fixed getReadableVersion() sub-API references (thanks @djorkaeffalexandre!)
  • chore: yarn upgrade --latest to update dependencies (@mikehardy)

4.0.2-rc.1

  • BREAKING: getDeviceType converted to a constant (minor breaking change, but will release as 5.0.0 just in case)

4.0.1

  • released from 4.0.1-rc.1 without change

4.0.1-rc.1

  • docs(README): link to v3->v4 migraiton guide
  • docs(CHANGELOG): entries for rest of 4.0.1-beta series

4.0.1-beta.8

  • fix: iOS getBundleId incorrectly returning buildId vs bundleId
  • fix: hasNotch correctly matches Nokia 6.1 Plus

4.0.1-beta.7

  • fix: iOS isTablet was always returning false
  • fix: hasSystemFeatureSync incorrectly returned Promise

4.0.1-beta.6

  • fix: hasSystemFeatureSync incorrectly returning a Promise on iOS @mikehardy
  • fix: isTablet on iOS always returning false @mikehardy

4.0.1-beta.5

  • fix: iOS getModel always returned generics @mikehardy

4.0.1-beta.4

  • BREAKING CHANGE: rename getCameraPresence to isCameraPresent to match other booleans (#810) @mikehardy

4.0.1-beta.3

4.0.1-beta.2

4.0.1-beta.1

  • BREAKING CHANGE: DeviceType: Renamed Unknown to unknown for consistency across the project (@johan-dutoit)
  • fix: typescript conversion mopup (@johan-dutoit)

4.0.0 (released / revoked on npm)

This was almost working but had some issues so was revoked on npmjs.com

3.1.4

  • fix: chain getReadableVersion APIs to JS vs native, protects web from native calls (Fixes #796)

3.1.3

  • chore: add support for 2019 iPhone models in 'hasNotch' mapping

3.1.2

The above PR also included a refresh/update of the iOS model list and improved getModel caching - a thorough job

3.1.1

3.1.0

3.0.0

  • release: promoted release from 3.0.0-rc.5 without change

3.0.0-rc.5

  • fix: various fixes similar to / prompted by #771 / #768 / #769
  • fix: getSystemName() returns value on ios+android #771 thanks @cmpayc!
  • fix: getUniqueId() only returned value 1st call #768 thanks @tamhv!
  • fix: getModel() not working on iOS #769 Thanks @rnnyrk!

3.0.0-rc.4

  • feat: memoize static return values for performance

3.0.0-rc.3

  • fix: TypeScript getPowerState() return type was Object instaed of PowerState interface
  • fix: TypeScript definition file was missing getPhoneNumberSync()

3.0.0-rc.2

  • Added a sync version of each API call, in practice it is very difficult to consume async APIs during app bootstrap and device info is frequently fundamental to app startup behavior. This still preserves the change away from paying the entire cost of information retrieval at startup - now you will only pay for exactly what you need.

3.0.0-rc.1

  • fix incorrect use of macos for API selection vs ios in rc.3, rendering ios builds mostly useless
  • verified last of the v2->v3 discrepancies, this is a release candidate now

3.0.0-beta.3

  • fix some real android device v2->v3 discrepancies
  • BREAKING CHANGE: more capitalization changes for API calls to standardize (see below)
  • BREAKING CHANGE: more return value changes to standardize return values (see below)
  • feat: you no longer have to be careful with platform-specific APIs, all APIs will work, just returning standard "unknown" return values (see above breaking change, and example App.js usage)

3.0.0-beta.2

  • fix all emulator/simulator v2->v3 discrepancies

3.0.0-beta.1

Each BREAKING CHANGE contains the required information to migrate. The example App.js shows sample usage.

  • BREAKING CHANGE: Every API call returns a Promise now (and thus no more Android constructor with async boolean argument)
    • This was required to improve module load speed, handle dynamic values, and release the main queue for iOS
  • BREAKING CHANGE: Every API call with acronyms ('getIP', 'getABI' etc follows pure camel-case now, e.g. 'getIp', 'getAbi')
    • This naming style is a consensus standard. Previously APIs here were half one way half the other. Now they are consistent
    • isAirPlaneMode -> isAirplaneMode
    • getIPAddress -> getIpAddress
    • getMACAddress -> getMACAddress
    • getAPILevel -> getApiLevel
    • getBaseOS -> getBaseOs
    • getInstanceID -> getInstanceId
    • getUniqueID -> getUniqueId
    • supportedABIs -> supportedAbis
  • BREAKING CHANGE: all events prefixed with 'RNDeviceInfo_' (react-native-device-info/react-native-device-info#620)
    • This is required as event names are a global namespace and collisions are inevitable otherwise
    • powerStateDidChange -> RNDeviceInfo_powerStateDidChange
    • batteryLevelDidChange -> RNDeviceInfo_batteryLevelDidChange
    • batteryLevelIsLow -> RNDeviceInfo_batteryLevelIsLow
  • BREAKING CHANGE: Android getBuildNumber returns string like iOS (react-native-device-info/react-native-device-info#648)
  • BREAKING CHANGE: remove is24Hour, getTimezone, isAutoTimeZone and isAutoDateAndTime, getDeviceLocale, getDeviceCountry, getPreferredLocales
    • This was the result of a survey. It removes API duplication in the react-native-community modules
    • Related PR: zoontek/react-native-localize#65
    • Use yarn add https://github.com/mikehardy/react-native-localize.git#e062f0d2dc3171dc18fdb7b7139d347ad03933dc to maintain isAutoTimeZone + isAutoDateAndTime until merged
  • BREAKING CHANGE: iOS switch deprecated WebView for WebKit / getUserAgent returns Promise (react-native-device-info/react-native-device-info#757)
    • The change from WebView to WebKit was required as the API is being removed from the iOS platform
  • BREAKING CHANGE: if an API is platform-specific, all non-implementing platforms will return standard values of -1, false, or 'unknown' depending on return type
    • This was how most APIs behaved before but it was not 100% - some returned null or empty string before
    • getPhoneNumber sometimes returned null, now it will be 'unknown' if not known
  • deprecated: IP-address-related methods deprecated - use @react-native-community/netinfo or react-native-network-info or react-native-carrier-info
  • feat: all APIs are now restricted in Javascirpt to the platforms they have full implementations on so the web polyfill is up to date
  • feat: 'getAndroidId' on Android returns android.provider.Settings.Secure.ANDROID_ID, read platform docs for usage
  • feat: getUsedMemory (react-native-device-info/react-native-device-info#356)
  • feat: getDeviceName() without Bluetooth permission on Android (react-native-device-info/react-native-device-info#735)
  • feat: TurboModule support (react-native-device-info/react-native-device-info#745) for these purposes (zoontek/react-native-localize#65)
  • feat: allow for destructured ES6 imports (react-native-device-info/react-native-device-info#727)
  • feat: update gradle, add react-native devDependency and build.gradle reference to enhance module developer experience
  • fix: remove unnecessary gradle depencies (react-native-device-info/react-native-device-info#746)
  • chore: de-linted all Java code, all Markdown

2.3.2

2.3.1

2.3.0

2.2.2

2.2.1

2.2.0

2.1.4

2.1.3

2.1.2

2.1.1

2.1.0

2.0.4

2.0.3

2.0.2

2.0.1

2.0.0

  • breaking: no functional change from 1.8.0, but isLocationEnabled requires minCompileSdk 28

1.8.0 (unpublished: unintended breaking change)

1.7.0

1.6.2

1.6.1

1.6.0

1.5.1

1.5.0

1.4.3

1.4.2

iOS notice

This is existing policy but is worth mentioning: The list with device names (returned by getModel()) is maintained by the community and could lag new devices. It is recommended to use getDeviceId() since it's more reliable and always up-to-date with new iOS devices. We do accept pull requests that add new iOS devices to the list with device names

1.4.1

  • fix: repair flow types from #436 - 'Object' vs 'object'

1.4.0

1.3.0

1.2.0

1.1.0

1.0.1

1.0.0

  • First major version, features (and bugs) copied from 0.29.1

0.29.1

On March 12 2019, this repository was moved from https://github.com/rebeccahughes/react-native-device-info to https://github.com/react-native-community/react-native-device-info

0.29.0

0.28.1

0.28.0

0.27.1

0.27.0

0.26.5

0.26.4

0.26.3

0.26.2

0.26.1

0.26.0

0.25.1

0.25.0

0.24.3

  • Support React Native Windows 0.57, minimal version is now 10.0.14393 for the target platform

0.24.2

0.24.1

0.24.0

0.23.0

0.22.6

0.22.5

0.22.4

0.22.3

0.22.2

0.22.1

0.22.0

0.21.5

  • Rolled back the Pod change made in 0.21.1

0.21.4

0.21.3

0.21.2

0.21.1

0.21.0

0.20.0

0.19.0

0.18.0

0.17.4

0.17.3

  • Fix production build crash on Android introduced in #313

0.17.2

0.17.1

  • Fix bad import for web polyfill

0.17.0

0.16.0

0.15.3

0.15.2

0.15.1

0.15.0

0.14.0

0.13.0

0.12.1

0.12.0

Diff

0.11.0

  • Add support for RN > 0.47
  • Update typescript definitions

Diff

0.10.2

  • Add typescript definitions

Diff

0.10.1

  • Add isPinOrFingerprintSet method
  • Add support for RN > 0.40

Diff

0.10.0

  • Semver fix

Diff

0.9.8

Diff

0.9.7

Several bugfixes and detecting if device is a tablet

0.9.3

adds support for Brand information e.g. apple, htc, etc

0.9.1

adds support for the iPhone SE and new iPad Pro

0.9.0

adds support for device country and changes the iOS device name to match Apple branding

0.8.4

don't use destructuring

0.8.3

removes the default bluetooth permission

0.8.2

change deployment target to iOS 8

0.8.1

removes unnecessary peerDependencies

0.8.0

tweaks how device locale works on Android. If it's available it will use the toLanguageTag that is more inline with iOS. (See #14)

0.7.0

adds two new parameters, Device Locale and User Agent.

0.5.0

adds a new parameter; Device Id. On iOS this is the hardware string for the current device (e.g. "iPhone7,2"). On Android we use the BOARD field which is the name of the underlying board, e.g. "goldfish". The way that the module gets the device model on iOS has also changed to be based on the Device Id; now instead of getting a generic product family e.g. "iPhone", it will return the specific model e.g. "iPhone 6".