History log of /packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
078d08f5e497231cbe7fb520b5a4e42a398201a6 03-Jul-2012 Chiao Cheng <chiaocheng@google.com> Removed call to private AccessibilityManager.getInstance().

Moving towards unbundling.

Change-Id: I3e0e56d71abf7bb9a5f43286a8dc4a6a31230c44
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
851222a96b5d68602fb361ea3527101e893f67e3 21-Jun-2012 Maurice Chu <mochu@google.com> Added thin object layer around contact data

This refactoring abstracts out the need to directly
refer to Contacts database columns throughout the code. Instead,
all of this information is retained in getter/setter methods
within the Contact, RawContact, and DataItem classes and
sub-classes.

ContactLoader.Result class has been pulled to the top level as
the Contact class.

The Entity class has been removed and replaced with a RawContact
class, with getters/setters to raw contact information.
Renamed EntityDelta to RawContactDelta for better understandability
as well as adding getters/setters for specific fields in the
ValuesDelta nested class within EntityDelta. EntityDeltaList
and EntityModifier have been renamed to RawContactDeltaList and
RawContactModifier with the methods using the RawContact class
directly rather than the Entity class.

Data items for a raw contact are represented by a DataItem object
with specialized getters/setters for subclasses of DataItem.
(e.g., EmailDataItem, PhoneDataItem. etc.). DataItem is a wrapper
around ContentValues. This abstracts away the ContactsContract
column fields into getters/setters.

The above refactoring is accompanied with changes throughout the
codebase to use the new Contact, RawContact, and DataItem classes.

Change-Id: I31c1dccd724e9652f9d0af78ca81feb6c5acd71d
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
e0b2f1e2d01d1ac52ba207dc7ce76971d853298e 12-Jun-2012 Chiao Cheng <chiaocheng@google.com> Global import order fix.

Changed import order to be in accordance with style guide:
http://source.android.com/source/code-style.html#order-import-statements

Static imports will be placed at the top since most existing files used that
convention. It is also a style that can be handled by both eclipse and intellij.

Change-Id: Ia7013c7a2d88e5fefb8f4975d121f7fcd3fcc462
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
d0414e5bd478444a9360c95258c267373f02554b 07-May-2012 Daniel Lehmann <lehmannd@google.com> Task jumping in contact details

When viewing contact details from a quick contact card, the contact
details appear in a two-pane UI, forming a sort of implicit Up
navigation. As a result, viewing contact details from another task is
in effect a task jump since the user may choose to navigate to other
contacts using the other pane of the UI.

Use the new shouldUpRecreateTask API in JB to determine whether the
trampoline from ContactDetailActivity to the two-pane People activity
should also include a task jump.

Bug:6449430

Change-Id: I90b86873a3a21022d52bb387d9adc5391c8d23ac
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
8ca93ed0938e00ee94b03e6d609895593cfdbdbd 23-Apr-2012 Adam Powell <adamp@google.com> Navigation adjustment for updated design guidelines and QuickContact cards

Bug 6362611

Change QuickContactActivity to task affinity "" to keep it from starting
orphaned/confused tasks.

Launch ContactDetailActivity in the same task from QuickContactActivity.

Launch app-supplied intents from QuickContactActivity in the same task.

Clear the QuickContactActivity task when launching it from a launcher
shortcut or widget. This prevents activities launched from the
finished QuickContactActivity from hanging around as the root and
failing to be reset.

Remove app-specific Up navigation code from ContactDetailActivity and
let the JB framework handle it automatically.

Change-Id: I4abebcb135b2d3269039b3307a49115c13528295
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
2f41fe6bcc8d055bf53ad070425552fad57dff21 29-Feb-2012 Daniel Lehmann <lehmannd@google.com> Reintroduce cross-fade on tablet when going from one contact to the next

Bug:6009407
Change-Id: I6044963d1b4737ebdd2d3b5fded71281841f0d81
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
c42ea4eca298419484444a57bfc2da2c83e7adb7 17-Feb-2012 Daniel Lehmann <lehmannd@google.com> Use pushed-state on "star"

On phone layouts, it is now a proper actionbar button (not custom anymore)
On tablet layouts, it is now an ImageView, so that we can center the icon

Bug:6008899

Change-Id: Ida56f959d129480e799fa8a4c477272e4de70eac
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
2a45e35ab3273c8901d9df3671e51614dc0250c6 14-Feb-2012 Daniel Lehmann <lehmannd@google.com> Animate show/hide updates

Also fixes the vertical text position which was wrong due to the shadow

Bug:5268733
Bug:5204655

Change-Id: I011a482500e13b1b189c7e27dbcd40e2e1f42318
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
6fa7384a1a5576ace18159de61af91c8b7c34dc6 28-Sep-2011 Dave Santoro <dsantoro@google.com> Allow adding/replacing a photo from contact card.

This involves a large refactoring of the photo handling code that
previously lived in ContactEditorFragment. The bulk of that logic
has been extracted out into PhotoSelectionHandler and
PhotoSelectionActivity classes.

As part of this change, also removed the selection highlighting when
tapping on the current tab header in multi-tab views.

Bug 5294297
Bug 5379389

Change-Id: Ic929e4b4a730d91f768a34367bb76967228ded17
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
5c3a0a1440625fab859aab420cb08bc0276358a0 08-Nov-2011 Katherine Kuan <katherinekuan@google.com> Fix wrong contact being selected after editing (after a search)

- The problem is that after finding a contact via search
and editing that contact, we launch a VIEW intent to view
the contact. Then sometimes, that contact is not in the
current contact filter, so we may have to enter single contact
mode.

To avoid that, go back to the HC functionality of preserving
search mode. Now after editing, we return to the PeopleActivity
and preserve search mode if that's where we came from.
This was the relevant change from early ICS that is being
partially reverted:
Ibbaaccb03ac7961784dfa7b15c246b8d6f6489a4

The reason it was changed was to support viewing the contact
after editing a contact when the edit request came from a 3rd
party app. This still works with this change by adding
an intent extra in ContactEditorActivity.

- After the editing is done, only launch the VIEW intent
for the contact if we didn't come from the detail page for
that contact (on phone and tablet). We can just finish
the editor activity. This saves some time with setup / configuring
fragments because we don't have to resolve the VIEW intent
(i.e. On tablet, previously the VIEW intent launched the
ContactDetailActivity --> redirected to PeopleActivity -->
resolved intent to show the right contact.
Now we can just receive the onActivityResult and refresh
the page).

- Renamed ContactDetailActivity intent key to be consistent

Bug: 5542197
Change-Id: Ieaa9c147beeaa7c40f34fc1689858642b47fdbf9
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
08bcf715d5ea7f07ce18a282d9850ac70552ca9d 09-Oct-2011 Katherine Kuan <katherinekuan@google.com> Only show "add connection" button if relevant

- We don't want to present the user with the "add connection"
button if the user doesn't use the account that provides the
service

- Check if app contributing the account type is disabled or not

- Check if there is an activity to handle the "add connection"
intent

- Check if there are raw contacts in the database with that
account type

- Store this in a cache, and refresh it after a certain
period of time (i.e. 1 second) using an AsyncTask.
This is to prevent computing the list each time the contact
is loaded (which can happen many times especially when looking
at a detail page during a sync).

- Make sure public AccountTypeManager methods
first check ensureAccountsLoaded()

Bug: 5398529
Change-Id: I004f9562a587035a3168aaddb6eb43710fd201e6
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
320b310f646b2c542c6e1ea0c768f5c38539911e 08-Sep-2011 Makoto Onuki <omakoto@google.com> Merge "Make sure only People and Dialtacts responds to search key"
d6272412cdf3fdda90e835ec5b0cd1e15a0c97c9 06-Sep-2011 Daisuke Miyakawa <dmiyakawa@google.com> Let tts read the contact's name on detail screen show up

Bug: 5255060
Change-Id: I222a7dc057102504c01600572c680162ee30e748
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
8d5abcb71ed4d9671b9066b9e3ffaf5372d2b22c 03-Sep-2011 Makoto Onuki <omakoto@google.com> Make sure only People and Dialtacts responds to search key

- Remove the default search activity meta-data from manifest, so the old-style
search dialog won't show up when the serach key is pressed. It was for
pre-HC style search UI. Now the search key only works on people and dialtacts,
which implement either startSearch or onSearchRequested.

- Removed all the startSearch/onSearchRequested methods which are now
unnecessary.

- Also removed startSearch() in some fragmets. They're not used.

- Tested some viewer/editor/picker activities, and also both dialtacts and
people, the launcher search box, and the SEARCH intent, on both the phone
and the tablet (except dialtacts on tablet). All looking good.

Bug 5230790

Change-Id: If269df74ae218707daa5b7039439c6fea2575e8d
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
fab516143c60565b9cc0d18fbe0af33902764546 24-Aug-2011 Katherine Kuan <katherinekuan@google.com> Fix blank screen on contact card after extended screen lock

- After viewing the contact card for someone with social
updates and waiting for an extended screen lock (3+ mins),
unlocking the screen brings up a blank contact card.

- Don't set retain instance state = true for ContactLoaderFragment
so that it follows the normal Fragment lifecycle
(and we already take care of saving/restoring state
anyways in that fragment).

- Don't set the contact data to null onLoaderReset() in
COntactLoaderFragment

- Don't show the "updates" header in the updates fragment
if there are no stream items

Bug: 5141991
Change-Id: Icd8693154f756cf423b64524ffcbd850f1c55d9b
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
51f1071a1dc91dace0de73be1c5fbba4f091f054 16-Aug-2011 Katherine Kuan <katherinekuan@google.com> Allow phone contact card to switch b/t having/not having social updates

- Make phone portrait and landscape layouts have all views necessary
to switch between showing/hiding social updates. Disable swipe
if only the detail fragment is showing.

- Make ContactDetailActivity use ContactDetailLayoutController to
reduce code duplication, add another state for fragment carousel
in ContactDetailLayoutController

- Make fragment widths in fragment carousel configurable based
on screen width instead of fixed dip value

- Make setAlphaLayerValue() save the alpha value if the view
isn't ready yet (otherwise it's a no-op and the caller must
call it setAlphaLayerValue again when the view is attached) -->
this allows us to remove the code to set fragments in the
fragment carousel every time the data is reloaded

- Remove enableAlphaLayer() code and just make the alpha layer
view visible in the XML

Bug: 5164029

Change-Id: I8f28ac27d125502a12221f084ce253611e6f78a1
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
b8b069959ed4ca88517ab033f8e89a9e4ab05dca 10-Aug-2011 Katherine Kuan <katherinekuan@google.com> Contact card fixes

- Move call to TabScrollManager until tab carousel is initialized
(this will allow contact with social updates to scroll + pin header)
- Bring back overlay / touch interceptor on phone landscape
so updates fragment will be dimmed out when it's not the current page
- Remove windowContentOverlay=null on contact detail activity
so the shadow appears below action bar

Bug: 5144095

Change-Id: I206e83906b89c5de0d8860e1bfc89c31b4f638b7
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
8167b14342c4a1e1d1f336470aa3a9be45cb38d3 05-Aug-2011 Katherine Kuan <katherinekuan@google.com> Merge "Attach listener to allow clicks to be handled on contact details"
6befd64143f0c78a768c3fc79151e40a747e391d 05-Aug-2011 Katherine Kuan <katherinekuan@google.com> Attach listener to allow clicks to be handled on contact details

- For phone, contact with no social updates
- We don't hook up the listener for the contact detail fragment
if it's a contact with no social updates.

Bug: 5123726

Change-Id: If051b909c7c9d372eda5c0612f1cb86caafa65f6
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
9def68a878226e0d9fc49701a7f0c63a24219283 05-Aug-2011 Flavio Lerda <flerda@google.com> Extract the functionality for scrolling the tab carousel.

This creates a TabCarouselScrollManager which handles scrolling of
carousel tabs up when the user scrolls one of the two list views.

This extracts a common copy in preparation for changing it to handle the
switching between scrolled tabs.

Bug: 5123933
Change-Id: I8741140b4770173ca33ea5a9baddb7862c5cf7f5
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
22cb663a251af60bc6beeb1954568c8e6a4c34e9 03-Aug-2011 Flavio Lerda <flerda@google.com> Support scrolling of Updates tab.

This commit changes the Updates tab to use a ListView for its items. The
ListView has an extra header item that overlaps with the carousel tab
(if present), and implements the scrolling which hides part of the
carousel (excluding the tab itself).

The fragment now basically contains only a list view, which will store
all the items, and an optional title (I need to check if that's actually
needed, but for now it is there).

The extra header is implemented with a layout: for those configurations
where there is a carousel, the header contains a placeholder which is
the same size as the carousel; for those configurations where there is
no carousel, the header will be an empty FrameLayout (but in those same
cases, there is a header at the top of the list in the fragment's
layout).

This commit does not take care of making the scrolling work across the
two tabs, e.g., when switching between tabs. I will address those issues
in a follow-up.

Bug: 5119353
Change-Id: I0eb6dcc06d624991ab1f5f8fe1197337ba03286b
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
3bbd9a0c3e85262365376ae212f9a8bc521e37d4 04-Aug-2011 Katherine Kuan <katherinekuan@google.com> Fix NPE on tablet contact card with social updates

- In tablet portrait, instead of having 3 fragments
on screen (2 fragments for the view pager and
1 detail fragment for contact with no updates), just
have 2 fragments where the view pager adapter has
count = 1 when there are no updates (which disables
the swipe).

- Store whether or not the contact has updates in
the save instance state bundle so it can be
restored in onCreate()

- Set retain instance = true for the ContactLoaderFragment

- There should always be a ContactDetailFragment and
ContactDetailUpdatesFragment after onCreate() of the
PeopleActivity on the tablet

- Basically apply similar logic from the phone CL:
https://android-git.corp.google.com/g/#change,125585

- TODO: Take out duplicated code from ContactDetailLayoutController
and ContactDetailActivity

Bug: 5106878
Bug: 5082871

Change-Id: I3af08bf84072d3d94e4f3a6bc1d01faf3432e3e7
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
db0d8669cd1ffaa45827edb65b2b0eecb27561f5 03-Aug-2011 Katherine Kuan <katherinekuan@google.com> Reuse fragments when rotating contact card on phone

- Part 1 of refactoring contact card fragment code,
Part 2 will be refactoring the tablet code to fix
bug 5082871

- ContactDetailActivity should always have non-null
fragments after onCreate() (either retrieved from
Fragment Manager or created dynamically)

- New view pager adapter that returns views that contain
existing fragments (instead of generating new fragments)

- The main reason for these changes is that when we
create fragments dynamically (necessary for the ViewPager
otherwise the fragment from XML will already have a parent),
the view ID will be the pager view ID. When we rotate,
the fragments are already defined in XML for the fragment
carousel and already have different view IDs, so it won't
restore properly. We can't put the pager view ID in the
fragment carousel layout, otherwise the ContactDetailActivity
will try to cast it to a ViewPager. Alternatively, if we make
both layouts rely on dynamically created fragments, the problem
becomes the fact that once fragments are added to the fragment manager,
they cannot be retrieved and added again to a different parent if there's a
different layout (exception is thrown). Thus, the solution is to have
the same parent container in both phone portrait and landscape layouts.

- Also it is unclear what was happening to the fragments on
rotation (they weren't being restored but weren't being removed
from the FragmentManager). We can remove the hack now that
would store the ViewPager fragment tags in the saved instance bundle
and manually remove those fragments from the FragmentManager after
an orientation change.

- In onCreate() of the ContactDetailActivity, if this is a
restored instance, then inflate the correct layout right away
so the fragments can find the parent containers.

- Save/restore ListView state on rotation

- Save/restore selected tab for contact with social updates

- Clean up computation code for FragmentCarousel by moving it to
onMeasure() method

Bug: 4976082
Bug: 4686406
Bug: 5082871

Change-Id: I7840b1dd1110da4dcc28ebabe3fc2739ff11c2f2
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
8b1fe76ff6d68b79427acfb4498bed0986a6518c 28-Jul-2011 Katherine Kuan <katherinekuan@google.com> Merge "Use new search pattern in People app"
2b3f3c54d3beb017b2f59f19e9ce0ecc3e039dbc 27-Jul-2011 Dave Santoro <dsantoro@google.com> App changes for account types with data sets.

This is primarily a replacement of the Android Account object in most
parts of the app with a new AccountWithDataSet object that extends
Account (by adding an additional attribute, the data set).

This also includes a major refactoring of the AccountTypeManager,
both to allow it to handle data sets and to allow for
non-sync-adapter packages to be referenced by the sync adapters for
an account and registered as sources of contact data. Attributes of
the sync adapter that would typically come from the authenticator
can be parsed out of the Contacts XML for these packages.

Bug 5077096

Change-Id: I88f311c64eae78c88e9999bff6f7de8538e62157
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
d8a61b7296bf7388505f0211d7ef44700e766193 27-Jul-2011 Katherine Kuan <katherinekuan@google.com> Use new search pattern in People app

- Magnifying glass should go inside the EditText field
- "Done" button on keyboard should hide the keyboard
- When going to a search result (contact card),
the "up" button should return to the search results
and not relaunch PeopleActivity

Bug: 5081198
Change-Id: I32e103c39c40da26bfd12f1fa8cef000f33ee1c9
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
bed71bedbaae4d6b26b2b64db476bffa710753e5 26-Jul-2011 Makoto Onuki <omakoto@google.com> Don't execute Runnables after host activity is destroyed

Use Activity.isFinishing() to detect if an activity is (or will soon
be) destroyed.

Also use FragmentTransaction.commitAllowingStateLoss() instead of commit()
in ContactDetailLayoutController.initialize(), which can be called from
Handler.post().
(And removed TODOs related to this.)

Bug 5032952

Change-Id: Ib5598a3e0a94adeaafd0497ac54518f2c6634603
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
b7ae952816e330e4e1f7e148df1b6dbb52f28f5a 25-Jul-2011 Katherine Kuan <katherinekuan@google.com> Make "up" button different from "back" button

- Explicitly go to PeopleActivity when "up" is pressed
- Use flag FLAG_ACTIVITY_CLEAR_TOP to prevent having
PeopleActivity multiple times in the back stack
- Use PeopleActivity.class because we don't want to use
a URI like LIST_ALL_CONTACTS otherwise it will switch
the tab or the account filter that has been last set
by the user

Bug: 5071475
Change-Id: Id6f768db3838fa0bc007feda89a92e3d36c8a694
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
9bd85b3ecd9129feb2f317784a3d8023aa211d42 24-Jul-2011 Katherine Kuan <katherinekuan@google.com> Fix photo + basic contact info header on tablet

- Fix these cases:
* On tablet landscape, for a contact with social updates, the name
has to be displayed to the right of the photo.
* On tablet landscape, for a contact without social updates, the
photo must be static and the name should scroll with the list of
details

- In order to support these cases, specify the header of the list
in XML in the case with and without social updates, otherwise there will
be a lot of boolean flags and unnecessary views inflated

- There still needs to be a flag in the tablet landscape view
because the ContactDetailFragment is reused for both cases where the
contact does and does not have social updates. The static photo
must be explicitly hidden in the case of the contact with social
updates because it will appear in the scrolling header. This flag
must be set outside the ContactDetailFragment b/t the phone
landscape view has a static photo that is shown regardless
of whether the contact has social updates or not.

Bug: 4689488

Change-Id: Ifea16c48496b8552b313a05cbb8ade80ae117069
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
3915600d2b0ff499e0129e951dfd39bff46b2f42 19-Jul-2011 Dave Santoro <dsantoro@google.com> Stream items UI.

This is still pretty rough at this point, and does not fully implement
the UI. It handles loading in the stream items and photo metadata in
the contact loader, and displaying those items in a scrollable view
in the updates pane.

Change-Id: I3e796a6141ffa385aa2acc769cf6dd11f37aa39c
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
5649a12fe551855f00c8dbeacfc96511c2a5fb71 20-Jul-2011 Katherine Kuan <katherinekuan@google.com> Go to contact card after editing

- In PeopleActivity, get rid of startActivityForResult to launch editor
because the editor will take care of launching the
contact card itself (instead of relying on the PeopleActivity
in the tablet to reload the contact details)

Bug: 4769324
Change-Id: Ibbaaccb03ac7961784dfa7b15c246b8d6f6489a4
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
13fd2d99efcafa86c117855aafaf9fca445d38db 19-Jul-2011 Makoto Onuki <omakoto@google.com> Show only "UP" on contact details.

USing action bar's new mode. In this mode, you can tap either
the "UP" or the title area.
(There's an issue with how the area is highlighted when you touch it,
but it's a framework issue which should be fixed when they get
new assets: b/5049406)

Change-Id: I2edc60708688cbab77aab070a034eea6880e52d5
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
53b427b3dc6f04340133b2da135b3f5efea4de11 17-Jul-2011 Makoto Onuki <omakoto@google.com> Make search less magical

- Remove PeopleActivity.mSearchMode. Instead, always ask ActionBarAdapter
the current mode.

- Don't use the default search behavior (i.e. send a new intent) on 1-pane.
Now 1-pane and 2-pane go through the same path for the search menu item
and for the search key.
i.e. when search key is pressed, show the search view (only on 1-pane),
set focus, turn the "all" list into the search mode too.
(and the "all" list should initially show all contantacts eventually, but
it's another issue which hasn't been fixed yet.)

- Remove dead branches.

- Instead of startSearch, override onSearchRequested(), which is the preferred
way of implementing a custom search action.

Change-Id: I4fd15a7f3164a3832df21b8fa1fb215e53d1a3e1
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
43fbbc1e5bbc295d0be5033a002e9f532fdfb119 15-Jul-2011 Makoto Onuki <omakoto@google.com> Disable search key press on 1-pane detail/editor activities

These activities don't have the search menu item, so the search key shouldn't
work.
(The behavior was weird anyway... e.g. it worked differently on
ContactDetailActivity and GroupDetailActivity...)

Bug 5032530

Change-Id: If3504cbd3e5cf027d43eec68d8f89e41bd7d324c
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
f6141f1bc0116dd5c9dc399567502d74300326b6 11-Jul-2011 Katherine Kuan <katherinekuan@google.com> Fix NPE in onKeyDown

- If the fragments have not been attached yet, but the user
presses a physical key, then a NPE is thrown

Bug: 4996118
Change-Id: Ibd1640c5e4e546123b08face627cb94dad64ea93
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
46a39e5b50f1bf5f6b2f37f05900acaa979604a2 10-Jul-2011 Katherine Kuan <katherinekuan@google.com> Fix refresh problem in the contact card

- Reset the contact data on the fragments after onLoadFinished() is called
so any editor changes will actually update the contact card now
- Fix the issue of the details list going blank by only creating max 1
ViewPagerAdapter per ContactDetailActivity. Check if the layout's already
been setup or not and then go ahead with setting the new contact data

Bug: 5011155
Bug: 4991868
Change-Id: I6ff0613413692212c9ffd23472450e9853b00f54
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
58fc577bd7966e6566cdcac09589a0d3e05128e7 04-Jul-2011 Katherine Kuan <katherinekuan@google.com> Contact card on tablet

- Two-column layout in landscape
- ViewPager and tab carousel in portrait
- Views with and without social updates
- Use ContactDetailLayoutController which controls hiding/showing
fragments based on orietnation and contact data
- Move options menu into the loader fragment because there can
be multiple ContactDetailFragments on the screen now at one time
or it can be dynamically created by the ViewPagerAdapter and
we won't have a reference to that in the PeopleActivity

TODO: Use ContactDetailLayoutController in ContactDetailActivity
so there isn't duplicated code. But just make it work now and do
cleanup later.

Change-Id: Ibf8eb317c6e19bc3d98eb9ce46a45cccb237c631
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
e405753872c29c04e4099ce5c68313e9580687c8 07-Jul-2011 Isaac Katzenelson <isaack@android.com> Merge "Made "up" button go back. Fixed on Group View, Contact View and Contact Option View"
4ec198790236ab4be6bc5d73441215b684832618 06-Jul-2011 Isaac Katzenelson <isaack@android.com> Made "up" button go back.
Fixed on Group View, Contact View and Contact Option View

Change-Id: I6ee4de75dee59b0bc35a611adbe837cebe7ed722
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
17a4e622a8e9b55fce562bb21d73a204ada198b9 02-Jul-2011 Katherine Kuan <katherinekuan@google.com> Fix bugs in contact card tab carousel

- Fix NPE in scroll length calculation. I was calculating
the allowed scroll length on the fly when it was requested, but
apparently it was being requested before the data was
being loaded in. Anyhow, move the measure code to its
proper place in onMeasure().

- Programatically determine tab width instead of hardcoding it to
240dip

- Move findViewById calls to the onFinishInflate() method
so it only happens once instead of every time loadData() is called

- Fix the bug where if you vertically fling the contact details
too fast, the pinned headers get stuck in some odd state (b/c the scroll
listener missed a frame, we need to always make sure the tab
carousel is in the correct place at all times)

Bug: 4965089

Change-Id: I9ee3261dfff86d7df6f3eb27ec464eea26a900db
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
16c4b2943e02a0b919e7da7bb5e58ced7523b8f6 04-Jul-2011 Katherine Kuan <katherinekuan@google.com> Fix crash when trying to edit a contact

- Set the lookup URI manually in setData since we're no longer calling
loadData on the detail and update fragments

Change-Id: I5838e2bfe4a77d9d47444b4e16ce02485af17307
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
2eb969cc399d87b659a45568fa951d394c216917 28-Jun-2011 Katherine Kuan <katherinekuan@google.com> Contact card with and without social updates

- This is for the phone (landscape and portrait)
- Some tweaks were done to the tablet to prevent regression
but it's not quite ready yet
- No social updates means a single scrolling list of details
- Having social updates means a tab carousel and ViewPager
- Add invisible contact loader fragment
- Now the loader fragment loads the contact --> passes to
ContactDetailActivity --> passes to all necessary fragments /
carousels (no matter the configuration)
- Get rid of ContactDetailAboutFragment and move those changes
into the ContactDetailFragment

Change-Id: I7be55ae7205bbcb8106bf2f2e4ae8dd6ce2c6a78
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
942cec2d8a248b1a22e95f4d573d235e281ee91a 29-Jun-2011 Katherine Kuan <katherinekuan@google.com> Move favorites star to the action bar on contact card

- Only applies to the phone
- Remove star from tab carousel

Change-Id: I214a4d2a310b5f2060b55856755e9635a8c45a58
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
8f0f3343e4363a5e1f11b35392c8393f263aaa41 21-Jun-2011 Katherine Kuan <katherinekuan@google.com> Phone landscape view of contact card

- No tab carousel, show half of the other (about or updates) page,
tap or swipe to see the other page
- Add alpha layer and touch interceptor layer
- Add new resources folder for w470dp to cover landscape on
phone sized devices

Change-Id: Ia3b1cd76ebe35420b1facd415998b14ba161b0ba
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
a1455a2288a7956ea9543177cee4a3be75745e32 19-Jun-2011 Katherine Kuan <katherinekuan@google.com> Pinned tab headers on contact card

- When vertically scrolling the contact details, move the
tab carousel vertically off the screen until just the
tabs are showing
- Make ViewPager span the entire height/width of the screen
- Make the tab carousel go on top of the ViewPager

Change-Id: I8e93fb64e8bb6d1749b371a030a36883fc57f0dd
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
79700889dad553dcde9e22a2fd23df768f68080f 15-Jun-2011 Katherine Kuan <katherinekuan@google.com> Add tabs to contact card

- Since the ContactHeaderView and ContactDetailFragment will still be used
for contacts without updates, leave this code in. Temporarily make all
contact cards have the about and update tabs.
- Use ViewPager for contact details
- Move name and job to action bar
- Add about fragment and updates fragment
- Add carousel for "about" and "updates" tab
- Create utils class for converting ContactLoader results into
strings for display since the ContactHeaderView will no longer
be the only customer for this data

Change-Id: I84ff759ee09daefcc7e7514564c180f27f0400b6
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
5e684a424e7036ba3d379221d1889b4dd7265021 10-Jun-2011 Dave Santoro <dsantoro@google.com> Update references to ContactBrowserActivity.

The activity was moved to PeopleActivity - references in comments
and test were not all updated.

Change-Id: Ie01e514323a05c4316d4f42c9af75f7759434352
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
9856fcee477d04f51bdbcbfdf632876c6b8a1173 01-Jun-2011 Katherine Kuan <katherinekuan@google.com> New People activity

- This is part 1 of bringing up the new People app
- Rename ContactBrowserActivity and related XMLs to PeopleActivity
- Change Contacts to People app launcher icon
- Create new task affinity for phone app activities
- Get rid of ContactsFrontDoor activity because it doesn't need
to distinguish between Dialtacts and ContactBrowserActivity anymore

Change-Id: I8c5e1ed540b294c1bda85409ca1499f88d4459ee
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
c90c705db8b3665ba9c8d8ce4b8ab3a03e38ddc7 17-Mar-2011 Daniel Lehmann <lehmannd@google.com> Show contact details when contact is tapped.

Do this by changing the routing logic: For viewing contacts, we
do not use the FrontDoorActivity as a proxy anymore. Instead,
ContactDetailActivity will forward the Intent to the ContactBrowserActivity
on a tablet

Change-Id: I04a03404410f3108f583da4592f6ae9f0f4e5bd2
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
c9eda37df2ff1ba2f845ae330bae364cb35fa50a 23-Feb-2011 Dmitri Plotnikov <dplotnikov@google.com> Close contact editor after deleting contact

Bug: 3396132
Change-Id: I1818446b8ecb6ef71d7c763d3e7ea3dc4c820b02
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
6f667b55687bf9193323802e8f3234f0ab254388 09-Jan-2011 Dmitri Plotnikov <dplotnikov@google.com> Turning AccountTypeManager into a "system" service.

It's really not a system service proper. It just
uses the same API and the same dependency injection
mechanism as for system services.

Change-Id: I56e24e0f16642a5ab25e809ee12906d965845379
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
18ffaa2561cc7dd2e3ef81737e6537931c0a9a11 03-Dec-2010 Dmitri Plotnikov <dplotnikov@google.com> Renaming a couple of packages

Change-Id: I2c0f86b51baa622df629206f8b79ef1d0df09119
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
66bca8f360c9e21b6a47006f21db7b46b6b46340 25-Nov-2010 Dmitri Plotnikov <dplotnikov@google.com> Turning ContactDeletionInteraction into a Fragment

Change-Id: I6edb576d0158b7082d3e2bc4d1902d34fc62cc7a
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
9d730dd9d9efe125c9102b298f897577157ffecd 24-Nov-2010 Dmitri Plotnikov <dplotnikov@google.com> Moving contact starring to the service.

Also, cleaning up some internal API.

Change-Id: I5bd2c5e24413f4e9ea538757ab05c85885f8533e
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
1624964ef877dc7d67452cbdacfb4d811c245c17 11-Sep-2010 Daniel Lehmann <lehmannd@google.com> Fix "Make as default" (there was an Id clash)

Also add a bunch of @Overrides to show fewer warnings

Change-Id: I33e7a1d8ef7b52cf2a4542598617bd2d5bfcf0df
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
caf0bc759c4ef96dde5bb0a5256c1dcb51b6ccc4 04-Sep-2010 Dmitri Plotnikov <dplotnikov@google.com> Adding "make personal copy" feature

The is the first in a series of CLs.
For now we create the copy, but we don't
actually select it in the UI.

Change-Id: Ie2719bf4e91915992f0e785b7a9827b3c934a6a2
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
825cb62b7df3cfe208651d488278e1b57c863884 27-Aug-2010 Daniel Lehmann <lehmannd@google.com> Show the editor in full-screen for Edit and New.

Change-Id: I1f02d979db141d2b08b82aac85fa2deb39c5fbec
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
3514fd3fbc7aabdddc647cd6f745437ba4f780a6 19-Aug-2010 Daniel Lehmann <lehmannd@google.com> Use new FragmentManager APIs

Change-Id: I31a862f131c58dbe482573fee177d934fa1e4710
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
60be1a1e8639a58d16f58686f8a89747d6079cc7 06-Aug-2010 Daniel Lehmann <lehmannd@google.com> Fix a crash with custom IM protocol

Change-Id: I42268ca06ed61b987e0f15289fd29da057a7049a
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
a35a7e2aabc4edfafb9b4171e279bdb4c0c03d44 04-Aug-2010 Daniel Lehmann <lehmannd@google.com> Redo dialogs with DialogFragment and fix Join/Seperate

Change-Id: Ied997ad6ba3cf260eb2a04b8882184f1f800140c
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
ef3f8f045ed4150caa64749742227acd0e6b85d8 27-Jul-2010 Daniel Lehmann <lehmannd@google.com> Replaced Google by Android Open Source project

Change-Id: I41bf58262c5524d19119aa767e6961a46c679611
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
69e7fec6dd8a3d24054863c6c648512577fce35c 20-Jul-2010 Daniel Lehmann <lehmannd@google.com> Implement Delete on Contact-Detail; re-use the code from the ContactBrowser

Change-Id: I5b567174b45499c4871db454882bd275b482a014
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
eb4d1bf9868dfddd958d8f028e36a4d2da7a8731 09-Jun-2010 Dianne Hackborn <hackbod@google.com> Follow Fragment API change: framework now handles menus.

Change-Id: I1bb8d4616e2b09a9c7139d4f4f5a5267c55c96e9
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
cdef2b60aa87b1178033fdc964a3402386c03d7c 07-Jun-2010 Daniel Lehmann <lehmannd@google.com> Modal field editors

Bug:2680726
Change-Id: I167b02c50653abfa22ed72023993c9dd31f752a9
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
9c3f337422f5147220d85c0779daf6c10c4e96f7 17-May-2010 Daniel Lehmann <lehmannd@google.com> Remove instance hacks, now that findFragmentById works

Change-Id: Id31aa717299a575ed8612b197f72e71bab508174
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
25a0282e968ebcdec6510bdb766ffba79b6fb8c4 12-May-2010 Daniel Lehmann <lehmannd@google.com> Changed fragments so that they can be used in Xml. Made demo 2-pane activity working

Bug: 2579760

Change-Id: I1d499643efd5911aa1387bfdd97b7b973c4a929a
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
18f104fa8c167a510b2cca3c15a43833c9a54c7c 08-May-2010 Daniel Lehmann <lehmannd@google.com> Refactor Contact-Editor and Contact-Viewer.

Bug:2579760

Change-Id: Id61cc6fbc2b4def72df012cca3ac3c0185b583bb
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
c2687c3c38d8fb5f34ad6d8fb5c33e16f335183c 20-Apr-2010 Daniel Lehmann <lehmannd@google.com> Refactor to coupler/presenter pattern. Moved framework classes to correct packages

Bug:2579760
Change-Id: Ia0c475e55830aa2d8b13cdb2685fc0981b6f6ade
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
c3a00085193e474c69ff0f455dd5d6086ff72e69 13-Apr-2010 Daniel Lehmann <lehmannd@google.com> Some refactorings to MVC

Bug:2579760
Change-Id: Ie07f9a1077f7b3d744477a2deed90c79737eb7a6
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
cbcc44983dc84f25d43e45f25021019233a4e2ef 13-Apr-2010 Daniel Lehmann <lehmannd@google.com> Update to new MVC framework

Change-Id: I792037f910de24b30f5b33e1b3f789c69a854ff5
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java
4cd94419d615e5513849516dfcbf0ce4cd08ecd0 09-Apr-2010 Daniel Lehmann <lehmannd@google.com> Break up view-contact-activity into smaller pieces so that they can be better recombined. Also first import of temporary mvc-framework classes that should later go into the framework.
Bug:2579760

Change-Id: I865b6194fbd28abb415e9d54622b91d719288204
/packages/apps/Contacts/src/com/android/contacts/activities/ContactDetailActivity.java