# Server 'Settings' released in master

**URL:** <https://discuss.appium.io/t/server-settings-released-in-master/219>\
**Category:** News\
**Created:** [September 8, 2014, 10:23pm UTC](https://discuss.appium.io/t/server-settings-released-in-master/219 "2014-09-08T22:23:10Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![jonahss](https://discuss.appium.io/user_avatar/discuss.appium.io/jonahss/32/5340_2.png) [@jonahss](https://discuss.appium.io/u/jonahss)\
**Post date:** [September 8, 2014, 10:23pm UTC](https://discuss.appium.io/t/server-settings-released-in-master/219/1 "2014-09-08T22:23:10Z")

</div>

We’ve added the concept of ‘Settings’ to the Appium server.

> Settings are a new concept introduced by appium. They are currently not a part of the Mobile JSON Wire Protocol, or the Webdriver spec.

> Settings are a way to specify the behavior of the appium server.

> Settings are:
> 
> - Mutable, they can be changed during a session
> - Only relevant during the session they are applied. They are reset for each new session.
> - Control the way the appium server behaves during test automation. They do not apply to controlling the app or device under test.

> An example of a setting would be `ignoreUnimportantViews` for Android. Android can be set to ignore elements in the View Hierarchy which it deems irrelevant. Setting this can cause tests to run faster. A user who _wants_ to access the ignored elements however, would want to disable `ignoreUnimportantViews`, and reenable it afterwards.

> Another example of a use-case for settings would be telling appium to ignore elements which are not visible.

> Settings are implemented via the following API endpoints:

> **POST** /session/:sessionId/appium/settings

> > Expects a JSON hash of settings, where keys correspond to setting names, and values to the value of the setting.
> 
> ```auto
> {
> settings: {
> ignoreUnimportantViews : true  
> }  
> }
> 
> ```

> **GET** /session/:sessionId/appium/settings

> > Returns a JSON hash of all the currently specified settings.
> 
> ```auto
> {
> settings: {
> ignoreUnimportantViews : true  
> }  
> }
> 
> ```

The only actual setting we’ve added so far is :

> **“ignoreUnimportantViews”** - Boolean which sets whether Android devices should use `setCompressedLayoutHeirarchy()` which ignores all views which are marked IMPORTANT\_FOR\_ACCESSIBILITY\_NO or IMPORTANT\_FOR\_ACCESSIBILITY\_AUTO (and have been deemed not important by the system), in an attempt to make things less confusing or faster.

The above is copied from the docs, which live here:

[https://github.com/appium/appium/blob/master/docs%2Fen%2Fadvanced-concepts%2Fsettings.md](https://github.com/appium/appium/blob/master/docs%2Fen%2Fadvanced-concepts%2Fsettings.md)

---

<div class="post-metadata">

**Author:** ![bootstraponline](https://discuss.appium.io/user_avatar/discuss.appium.io/bootstraponline/32/319_2.png) [@bootstraponline](https://discuss.appium.io/u/bootstraponline)\
**Post date:** [September 8, 2014, 11:34pm UTC](https://discuss.appium.io/t/server-settings-released-in-master/219/2 "2014-09-08T23:34:25Z")

</div>

This has been reverted until some conversations are completed. I expect it to be back soon.

---

<div class="post-metadata">

**Author:** ![sendlink](https://discuss.appium.io/letter_avatar_proxy/v4/letter/s/bc8723/32.png) [@sendlink](https://discuss.appium.io/u/sendlink)\
**Post date:** [September 9, 2014, 4:29am UTC](https://discuss.appium.io/t/server-settings-released-in-master/219/3 "2014-09-09T04:29:31Z")

</div>

> [@bootstraponline](#):
>
> This has been reverted until some conversations are completed. I expect it to be back soon.

How to use settings in the Script using java bindings

---

<div class="post-metadata">

**Author:** ![bootstraponline](https://discuss.appium.io/user_avatar/discuss.appium.io/bootstraponline/32/319_2.png) [@bootstraponline](https://discuss.appium.io/u/bootstraponline)\
**Post date:** [September 9, 2014, 1:53pm UTC](https://discuss.appium.io/t/server-settings-released-in-master/219/4 "2014-09-09T13:53:35Z")

</div>

The settings API has to exist before the bindings can support it.

---

<div class="post-metadata">

**Author:** ![jonahss](https://discuss.appium.io/user_avatar/discuss.appium.io/jonahss/32/5340_2.png) [@jonahss](https://discuss.appium.io/u/jonahss)\
**Post date:** [September 9, 2014, 6:32pm UTC](https://discuss.appium.io/t/server-settings-released-in-master/219/5 "2014-09-09T18:32:30Z")

</div>

It’ll be added to the java bindings after the feature gets merged into master. Will be pretty simple, plus I’ll create helper-functions for toggling the specific settings.
