docs: undeprecate plugin (#54)

Co-authored-by: エリス <erisu@users.noreply.github.com>
diff --git a/README.md b/README.md
index a991730..1e2afde 100644
--- a/README.md
+++ b/README.md
@@ -27,15 +27,202 @@
 
 # cordova-plugin-device-orientation
 
+# Usage Notice
+
+With the [W3C Device Orientation API](https://www.w3.org/TR/orientation-event/), Android, iOS, and Windows devices may not need this plugin anymore.
+
+However, for iOS 13+, a [secure context](https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts) is required. Apple does not allow access to the device’s orientation or the permission request from an insecure browsing context.
+
+If you use a custom scheme, i.e., the `app` protocol, for your iOS app, the browsing context is considered insecure. To solve this problem and be able to use the device orientation feature, this plugin will be necessary on iOS 13+.
+
 ------
 
 ## Description
 
+This plugin provides access to the device's compass. The compass is a sensor
+that detects the direction or heading that the device is pointed, typically
+from the top of the device.  It measures the heading in degrees from 0 to
+359.99, where 0 is north.
 
-### Deprecation Notice
+Access is via a global `navigator.compass` object.
 
-With the [W3C Device Orientation API](https://www.w3.org/TR/2016/CR-orientation-event-20160818/) now being
-supported on iOS, Android and Windows devices, this plugin is not needed any more. Migrating from this plugin to
-the [W3C Device Orientation API](https://www.w3.org/TR/2016/CR-orientation-event-20160818/) is explained in this
-[PhoneGap blog post](https://blog.phonegap.com/migrating-from-the-cordova-device-orientation-plugin-8442b869e6cc).
+Although the object is attached to the global scoped `navigator`, it is not available until after the `deviceready` event.
 
+    document.addEventListener("deviceready", onDeviceReady, false);
+    function onDeviceReady() {
+        console.log(navigator.compass);
+    }
+
+Report issues on the [Apache Cordova issue tracker](https://issues.apache.org/jira/secure/RapidBoard.jspa?rapidView=190&projectKey=CB)
+
+## Installation
+
+    cordova plugin add cordova-plugin-device-orientation
+
+## Supported Platforms
+
+- Amazon Fire OS
+- Android
+- BlackBerry 10
+- Browser
+- Firefox OS
+- iOS
+- Tizen
+- Windows Phone 7 and 8 (if available in hardware)
+- Windows 8
+
+## Methods
+
+- navigator.compass.getCurrentHeading
+- navigator.compass.watchHeading
+- navigator.compass.clearWatch
+
+## navigator.compass.getCurrentHeading
+
+Get the current compass heading. The compass heading is returned via a `CompassHeading`
+object using the `compassSuccess` callback function.
+
+    navigator.compass.getCurrentHeading(compassSuccess, compassError);
+
+### Example
+
+    function onSuccess(heading) {
+        alert('Heading: ' + heading.magneticHeading);
+    };
+
+    function onError(error) {
+        alert('CompassError: ' + error.code);
+    };
+
+    navigator.compass.getCurrentHeading(onSuccess, onError);
+
+## navigator.compass.watchHeading
+
+Gets the device's current heading at a regular interval. Each time the heading
+is retrieved, the `headingSuccess` callback function is executed.
+
+The returned watch ID references the compass watch interval. The watch
+ID can be used with `navigator.compass.clearWatch` to stop watching the navigator.compass.
+
+    var watchID = navigator.compass.watchHeading(compassSuccess, compassError, [compassOptions]);
+
+`compassOptions` may contain the following keys:
+
+- __frequency__: How often to retrieve the compass heading in milliseconds. _(Number)_ (Default: 100)
+- __filter__: The change in degrees required to initiate a watchHeading success callback. When this value is set, __frequency__ is ignored. _(Number)_
+
+### Example
+
+    function onSuccess(heading) {
+        var element = document.getElementById('heading');
+        element.innerHTML = 'Heading: ' + heading.magneticHeading;
+    };
+
+    function onError(compassError) {
+        alert('Compass error: ' + compassError.code);
+    };
+
+    var options = {
+        frequency: 3000
+    }; // Update every 3 seconds
+
+    var watchID = navigator.compass.watchHeading(onSuccess, onError, options);
+
+
+### Browser Quirks
+
+Values for current heading are randomly generated in order to simulate the compass.
+
+### iOS Quirks
+
+Only one `watchHeading` can be in effect at one time in iOS.  If a
+`watchHeading` uses a filter, calling `getCurrentHeading` or
+`watchHeading` uses the existing filter value to specify heading
+changes. Watching heading changes with a filter is more efficient than
+with time intervals.
+
+### Amazon Fire OS Quirks
+
+- `filter` is not supported.
+
+### Android Quirks
+
+- No support for `filter`.
+
+### Firefox OS Quirks
+
+- No support for `filter`.
+
+### Tizen Quirks
+
+- No support for `filter`.
+
+### Windows Phone 7 and 8 Quirks
+
+- No support for `filter`.
+
+## navigator.compass.clearWatch
+
+Stop watching the compass referenced by the watch ID parameter.
+
+    navigator.compass.clearWatch(watchID);
+
+- __watchID__: The ID returned by `navigator.compass.watchHeading`.
+
+### Example
+
+    var watchID = navigator.compass.watchHeading(onSuccess, onError, options);
+
+    // ... later on ...
+
+    navigator.compass.clearWatch(watchID);
+
+## CompassHeading
+
+A `CompassHeading` object is returned to the `compassSuccess` callback function.
+
+### Properties
+
+- __magneticHeading__: The heading in degrees from 0-359.99 at a single moment in time. _(Number)_
+
+- __trueHeading__: The heading relative to the geographic North Pole in degrees 0-359.99 at a single moment in time. A negative value indicates that the true heading can't be determined.  _(Number)_
+
+- __headingAccuracy__: The deviation in degrees between the reported heading and the true heading. _(Number)_
+
+- __timestamp__: The time at which this heading was determined.  _(DOMTimeStamp)_
+
+
+### Amazon Fire OS Quirks
+
+- `trueHeading` is not supported, but reports the same value as `magneticHeading`
+
+- `headingAccuracy` is always 0 because there is no difference between the `magneticHeading` and `trueHeading`
+
+### Android Quirks
+
+- The `trueHeading` property is not supported, but reports the same value as `magneticHeading`.
+
+- The `headingAccuracy` property is always 0 because there is no difference between the `magneticHeading` and `trueHeading`.
+
+### Firefox OS Quirks
+
+- The `trueHeading` property is not supported, but reports the same value as `magneticHeading`.
+
+- The `headingAccuracy` property is always 0 because there is no difference between the `magneticHeading` and `trueHeading`.
+
+### iOS Quirks
+
+- The `trueHeading` property is only returned for location services enabled via `navigator.geolocation.watchLocation()`.
+
+## CompassError
+
+A `CompassError` object is returned to the `compassError` callback function when an error occurs.
+
+### Properties
+
+- __code__: One of the predefined error codes listed below.
+
+### Constants
+
+- `CompassError.COMPASS_INTERNAL_ERR`
+- `CompassError.COMPASS_NOT_SUPPORTED`