History log of /packages/apps/Contacts/src/com/android/contacts/detail/ContactDetailUpdatesFragment.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
cd321f65f1e50409812976380ad1f0fdb3fa35cb 28-Oct-2013 Yorke Lee <yorkelee@google.com> Move ContactLoader related code to ContactsCommon

This CL simply moves classes from Contacts into ContactsCommon.

This is needed so that Dialer can use ContactLoader related code
for b/11294679. A ContactLoader will also be needed in the future
to allow InCallUI to download hi-res photos while in call.
Bug: 11294679

Change-Id: Ia033f3ea2406a907a4e71290c9ce810a5583dab8
/packages/apps/Contacts/src/com/android/contacts/detail/ContactDetailUpdatesFragment.java
0d5588da244d0992c3ff8f25d0875fdf95a8c644 27-Nov-2012 Chiao Cheng <chiaocheng@google.com> Move AccountTypeManager to ContactsCommon.

Moving AccountTypeManager to ContactsCommon so it can be shared by Contacts
and Dialer.

Bug: 6993891
Change-Id: I9526ac7cda758290caecabfcaebe620238d8dd6b
/packages/apps/Contacts/src/com/android/contacts/detail/ContactDetailUpdatesFragment.java
428f008513d1591cc08fcfe2cf0c9237fb313241 14-Nov-2012 Chiao Cheng <chiaocheng@google.com> Move dependencies of AccountTypeManager into ContactsCommon.

Moving dependencies in preparation to move AccountTypeManager.

Bug: 6993891
Change-Id: I804cdbe64b9b8111ed286037943d593e11dc4044
/packages/apps/Contacts/src/com/android/contacts/detail/ContactDetailUpdatesFragment.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/detail/ContactDetailUpdatesFragment.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/detail/ContactDetailUpdatesFragment.java
82a4f4408b74e193b43a12dc8e16c946a93bae4a 08-May-2012 Makoto Onuki <omakoto@google.com> Clarify AccountType.resPackageName/summaryResPackageName

Gave them clearer names and added javadoc.

And added a workaround for the fact that the view notification
service for the google account type is implemented in the sync
adapter, not in the authenticator.

This really needs further clean up.

Change-Id: I567656393fab30293c831fac802884dc84daf861
/packages/apps/Contacts/src/com/android/contacts/detail/ContactDetailUpdatesFragment.java
7edad9dd95a411cc5ed69815e5f0be8a5d1e8b19 20-Apr-2012 Josh Gargus <jjosh@google.com> Fix broken touch-interception in ContactDetailFragmentCarousel.

Tear out a confusion of code that wires XML specs up to alpha-
and touch-interceptor layers. Encapsulate in a new class,
FrameLayoutWithOverlay.

Bug: 6324499
Change-Id: Ic531327d67db8b5069abbd93e31fa10d99d4c4cd
/packages/apps/Contacts/src/com/android/contacts/detail/ContactDetailUpdatesFragment.java
84edfd9a76657a653491faac53b5976adf9fd2cb 16-Mar-2012 Josh Gargus <jjosh@google.com> Miscellaneous contact-detail fixes.

View-pager containing contact details and social updates are now
scrolled by the appropriate amount when ContactDetailTabCarousel is
swiped. Also, fix "bounce-back" where the carousel improperly
selected the wrong tab (i.e. the one you just swiped away from).
Finally, make it possible to start a swipe back to the "about" tab
from the "updates" tab (previously, you had to initiate the swipe
on the partially-revealed "about" tab).

In ContactDetailFragment, only make photos tappable when either:
- the photo is settable (i.e. the contact is not read-only), or
- the photo should expand when tapped.

Bug: 6009463

Change-Id: I291e0c42b1d77a11babc7a9cb282a19cdb305025
/packages/apps/Contacts/src/com/android/contacts/detail/ContactDetailUpdatesFragment.java
ab5387bb8728c34bafcb554830961341f1f9daea 01-Nov-2011 Katherine Kuan <katherinekuan@google.com> Reset views when changing contacts on tablet

- On tablet, we re-use the same fragments for
different contacts because we have a 2-pane view.
We need to reset the state to prevent showing
the wrong tab or old scroll state information from
a previous contact.

- Resetting the list adapter is getting rid of the
scroll state information and resetting the tab
carousel / view pager gets us back to the "about"
tab.

- Store the contact URI in the saved instance
state bundle so that on rotation, we still
recognize that it could be the same contact
and restore scroll position.

Bug: 5529595
Change-Id: Ibd874799f926b70430e47518a4b995394fbfe547
/packages/apps/Contacts/src/com/android/contacts/detail/ContactDetailUpdatesFragment.java
6c0470e21d8506fb53915df7463634fd47288343 17-Aug-2011 Katherine Kuan <katherinekuan@google.com> Coordinate scrolling between two lists on contact card

FRAGMENT CHANGES:

- Add a method on each of these fragments to scroll the list by
a given offset (only when the first "fake" item in the list
is at the first visible position on the list). If any other
item (2nd, 3rd, etc..) is the first visible position on the list,
then it gets too complicated to figure out how much to offset the
list, so it's better to just animate the tab carousel to be at the
right spot.

- Add a method that returns the top position of the first item
in the list if the first item in list is visible (to verify
that the offset was done properly). If the offset is not
what we expect, then we know the list couldn't be scrolled.

TAB CAROUSEL:

- Keep track of the Y position of the carousel the last time
the user was on the details page, and the last time the user was
on the updates page. This is because syncing the scroll position
of the 2 lists or animating the tab carousel vertically is only
necessary if the tab carousel position has changed between the
two pages.

LAYOUT CONTROLLER:

- We need to be able to animate the tab carousel to the correct
Y position anyways because if the list in the fragment is not
scrollable (but the other list is scrollable), we need to rely on
animation to hide the big white space below the carousel.

- When a list (i.e. in the ContactDetailFragment) is idle, the user
has stopped interacting with the list, so use the time to sync
its position with the other list (since this may involve a
requestLayout() if a scroll is triggered).

- Because the list may not become completely idle (i.e. the user
flings the list and then starts to swipe), we still need a check
when the user starts swiping the view pager to sync the two lists.
If it's already at the right spot, then do nothing. If we can't
scroll the other list dynamically and we need to animate the tab
carousel, and we should only do this when the view pager has
settled down and is idle.

MISCELLANEOUSE EDGE CASES:

- Fix the tab carousel jumping to the starting position (if a sync
happens and the loader data is refreshed) because the layout is
likely being redrawn and the tab carousel is potentially redrawn
back inside the bounds of its parent. Hence store and reset the
tab carousel position to its previous Y value (which could be
outside the bounds of its parent).

- If the list is scrollable but only by a little bit, allow
the tab carousel to compensate by animating down the rest of the
offset amount

- Tapping on the tab should also work now

- Make photo in updates tab fill the whole tab, change
updates fragment background except for the tablet landscape mode

Bug: 5044680
Change-Id: Icc9445606ea52779dea97b194763c74a0b2a27ee
/packages/apps/Contacts/src/com/android/contacts/detail/ContactDetailUpdatesFragment.java
f748d59e8a31f8c9d054fd11deb9b70250387dab 19-Aug-2011 Makoto Onuki <omakoto@google.com> Launch viewStreamItemPhotoActivity when photo is tapped...

on stream item list, if the account type supports it.

If the account type doesn't support it, tap of photos launches
viewStreamItemActivity as before.

Bug 5185880

Change-Id: I0b43da3e966ee7737937b2dde7a97e4c440d00dc
/packages/apps/Contacts/src/com/android/contacts/detail/ContactDetailUpdatesFragment.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/detail/ContactDetailUpdatesFragment.java
d78ee90c0d4d93b82ad440396e87ae4f47f53e93 15-Aug-2011 Daniel Lehmann <lehmannd@google.com> Several DB changes as requested by ES

- Switch from resource ids to names to prevent breakage on package upgrade
Bug:5135277
- Add SYNC1...SYNC4 columns to StreamItems and StreamItemPhotos
Bug:5119385
- Remove ACTION, ACTION_URI from Groups, StreamItems and StreamItemPhotos
(this reduces db size and prevents click intercepting)
Bug:5135808
- Add some raw-contact fields to the StreamItem and StreamItemPhotos query
Bug:5134081

Doing those changes in one block to prevent too many db upgrade steps

Change-Id: I4c90742580c86203a1686bb625c026438ed19b8f
/packages/apps/Contacts/src/com/android/contacts/detail/ContactDetailUpdatesFragment.java
25594d6db384d27641b402cddf23d44818e1cd10 13-Aug-2011 Katherine Kuan <katherinekuan@google.com> Performance improvements for contact card with social updates

- Use background color with alpha hex color instead of
alpha attribute of View
- Instead of posting a runnable in onMeasure, move it
to setCurrentPage / setFragments methods

Bug: 5161205

Change-Id: Ib1ad3b11c359d8fdc1e9143ab9d64c39aa914b91
/packages/apps/Contacts/src/com/android/contacts/detail/ContactDetailUpdatesFragment.java
48eca3fd31689f05c75241749b987d05d1602d1e 12-Aug-2011 Katherine Kuan <katherinekuan@google.com> Fix NPE in ContactDetailUpdatesFragment

setData() is getting called before onViewCreated() in the
fragment, so check if the adaper has been initialized or
not before trying to set the stream items to it.

Bug: 5153519
Change-Id: I4a65f4713f7cd9cfc1a6fad494fb65a1f1352b1f
/packages/apps/Contacts/src/com/android/contacts/detail/ContactDetailUpdatesFragment.java
942a2f2f06ae3919560ce014fccf5c09f0f6027e 11-Aug-2011 Flavio Lerda <flerda@google.com> Add title on top of updates.

There should be a title at the top of updates.
It should be "Recent" if the tab carousel is present and "Recent
updates" if not.

Bug: 5082091
Change-Id: Ib97f8918738c96aee9bffc1c846dabb7d4d2ffe6
/packages/apps/Contacts/src/com/android/contacts/detail/ContactDetailUpdatesFragment.java
a21993720988a5fc0b48594d1ff0ce6f932780b7 04-Aug-2011 Flavio Lerda <flerda@google.com> Small clean-up of stream items utility class.

We do not need a way to add a set of stream items to a container: we now
use a ListView.

Do not set the listener in the helper method: we can just do that in the
adapter itself.

Bug: 5119353
Change-Id: Id647ddc358f82b5fee8628b06645412e48712229
/packages/apps/Contacts/src/com/android/contacts/detail/ContactDetailUpdatesFragment.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/detail/ContactDetailUpdatesFragment.java
965da8446f4bf73217611b43059bd92f311db089 28-Jul-2011 Flavio Lerda <flerda@google.com> Add actions to update items.

This commit let you click on an update item if it has an associated
action and actionUri.

In order to make this visible to the user, it adds a background that
will be highlighted when the item is selected. It also marks the item as
focusable for accessibility.

In order to make the selection expand to the entire row, play around
with the padding a little bit: basically, the update list itself is
now as wide as the screen, and the individual items have padding as
appropriate.

Bug: 5095755
Change-Id: Ib1b2d179152beae125dded1b393b3dfc8b22abc9
/packages/apps/Contacts/src/com/android/contacts/detail/ContactDetailUpdatesFragment.java
2ad0dea36362beb70f5a92ac9b4c6a1db7bbb8b9 27-Jul-2011 Katherine Kuan <katherinekuan@google.com> Add alpha layer to tab carousel on contact card

- Introduce CarouselTab class to handle the
alpha layer and touch interceptor
- Clicking anywhere on the tab will select that
tab
- Remove split style action bar on contact card
so favorites star will be in upper right corner

Bug: 5081735
Bug: 5042660

Change-Id: I54088b49c928297dbfc523752258ceaa97cce445
/packages/apps/Contacts/src/com/android/contacts/detail/ContactDetailUpdatesFragment.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/detail/ContactDetailUpdatesFragment.java
d814e42a6ac71962a6eeb9ce37b4abc2c1205952 04-Jul-2011 Katherine Kuan <katherinekuan@google.com> Move social snippet and date to updates fragment

- Now the phone landscape view shows the social update
- Make updates tab show 3 lines of the social update
(no status date)
- Remove empty "no updates" view in updates fragment
(if there are no updates, the updates tab shouldn't
even appear)
- Remove star in "about" tab because it's been moved
to the action bar
- TODO: Make this a list of updates when social
integration is ready

Change-Id: I60cf15edb58b8818c63e6fe9b5fec01f64fca563
/packages/apps/Contacts/src/com/android/contacts/detail/ContactDetailUpdatesFragment.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/detail/ContactDetailUpdatesFragment.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/detail/ContactDetailUpdatesFragment.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/detail/ContactDetailUpdatesFragment.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/detail/ContactDetailUpdatesFragment.java