Disable password saving in FbDialog

Summary:
By default, Android WebViews store passwords in a per-application
sqlite database.  This changes the default for the Facebook SDK.

Test Plan:
- Build from command-line.
- Uninstall Facebook app, run Hackbook, log in, adb shell, inspect
  webview database to verify no password was saved.

Revert Plan: OK

Reviewers: clang, jacl, vijaye

Reviewed By: vijaye

Differential Revision: https://phabricator.fb.com/D497389

Task ID: 1108189
Enable caching last-token-updated timestamp

Summary:
There was only a single method for setting the access token on the
Facebook class (setAccessToken()).  This did not distinguish between
setting a token loaded from cache vs.  setting a new token resulting
from authorization.

Since setAccessToken() updates the last-token-updated timestamp, and
since this timestamp is used to determine when to refresh the token,
it always looked like the token had just been updated when the app's
Activity started.  This meant the Facebook class would never try to
refresh the token.

To fix this, the Facebook class now supports getting the value of the
last-token-updated timestamp, and also supports restoring this along
with the token value and expiration timestamp in a single operation.

This also updates Hackbook to demonstrate caching.

Test Plan:
- ant build Hackbook
- Ran Hackbook, verified that we could get and restore the timestamp.

Revert Plan:
safe to revert

Tags:

Reviewers: clang, vijaye, caabernathy

Reviewed By: clang

CC: msdkexp@

Differential Revision: https://phabricator.fb.com/D552473

Task ID: 1363221
Install attribution tracking

Summary:
On authorize, automatically publish an install attribution if it can be acquired from the installed Facebook application, and the application allows it.
If the app does not use Facebook login, they may call publishInstall() directly.
In both cases, this code handles tracking success so that reporting should only occur once.

Call early, call often for best results.

Test Plan:
- ant build Hackbook
- Ran Hackbook, verified that the publish occurs.
- Ran again, verified that the publish did not reoccur.
- Modify hackbook to explicitly publish.  Saw it work.

Revert Plan:
safe to revert

Reviewers: clang, mmarucheck

Reviewed By: mmarucheck

CC: msdkexp@

Differential Revision: https://phabricator.fb.com/D559309

Task ID: 1404123
updated url to developer page since <app_id> was getting stripped by github.

Summary:
persumably the XSS code that github runs caused this part of the url to be dropped.  we'd rather have the url be clickable with screaming caps so that
it's obvious what we're trying to express.

Test Plan: none.

Reviewers: mmarucheck

Reviewed By: mmarucheck

CC: msdkexp@

Differential Revision: https://phabricator.fb.com/D560306

Blame Revision: 559309
Check shouldAutoPublishInstall on auto publish.

Summary: We're not.  This was dropped during the port of the iOS implementation.  Thanks to Karsten Sperling (https://github.com/ksperling) for reporting.

Test Plan: modify a sample to change the value to false, and see publish not occur.  revert + delete the app & re-test.  see the publish occur.

Reviewers: mmarucheck

CC: msdkexp@, neko-dev@

Differential Revision: https://phabricator.fb.com/D574705

Blame Revision: D559309
change publishInstall to run async

Summary: it is not clear from the function definition that it cannot be called on the UI thread.  We have renamed the API in the new SDK to publishInstall[Async|AndWait], but need to make this work until that releases.

Test Plan: Call publishInstall on a UI thread.  see that it works.

Reviewers: mmarucheck, clang

CC: neko-dev@

Differential Revision: https://phabricator.fb.com/D622746
Merge tag 'v1.2.2' into HEAD

version 1.2.2