Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6eb6322f authored by Wenyi Wang's avatar Wenyi Wang Committed by android-build-merger
Browse files

Add loaders to DrawerFragment and make status bar transparent

am: b8b86d1a

Change-Id: Id2de94f3645730eb3ec638125aba2d023b546c6a
parents 92f02b80 b8b86d1a
Loading
Loading
Loading
Loading
+4 −1
Original line number Original line Diff line number Diff line
@@ -15,15 +15,18 @@
     limitations under the License.
     limitations under the License.
-->
-->


<!-- Layout for the navigation drawer. The content view needs to be wrapped in a FrameLayout in
     order to go full screen with a ScrimDrawable. -->
<FrameLayout
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_fragment_root"
    android:layout_width="match_parent"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">
    android:fitsSystemWindows="true">


    <android.support.v7.widget.RecyclerView
    <android.support.v7.widget.RecyclerView
        android:id="@+id/list"
        android:id="@+id/list"
        android:background="#FAFAFA"
        android:background="@color/navigation_drawer_background_color"
        android:layout_width="match_parent"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_height="match_parent"
        android:divider="@null" />
        android:divider="@null" />
+3 −9
Original line number Original line Diff line number Diff line
@@ -16,16 +16,10 @@
  limitations under the License.
  limitations under the License.
  -->
  -->


<LinearLayout
<View
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/nav_status_bar_spacer"
    android:layout_width="match_parent"
    android:layout_width="match_parent"
    android:layout_height="@dimen/nav_header_height"
    android:layout_height="@dimen/nav_header_height"
    android:background="@color/contacts_accent_color"
    android:background="@color/contacts_accent_color"
    android:gravity="bottom"
    android:importantForAccessibility="no"/>
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:theme="@style/ThemeOverlay.AppCompat.Dark">
</LinearLayout>
+1 −1
Original line number Original line Diff line number Diff line
@@ -1127,7 +1127,7 @@ public class PeopleActivity extends AppCompatContactsActivity implements
    }
    }


    private void selectAccountForNewGroup() {
    private void selectAccountForNewGroup() {
        // This should never block because the GroupsFragment loads the accounts and the
        // This should never block because the DrawerFragment loads the accounts and the
        // "Create Label" item only exists when that loading finishes
        // "Create Label" item only exists when that loading finishes
        final List<AccountInfo> accounts = Futures.getUnchecked(AccountTypeManager.getInstance(this)
        final List<AccountInfo> accounts = Futures.getUnchecked(AccountTypeManager.getInstance(this)
                .filterAccountsAsync(AccountTypeManager.AccountFilter.GROUPS_WRITABLE));
                .filterAccountsAsync(AccountTypeManager.AccountFilter.GROUPS_WRITABLE));
+18 −2
Original line number Original line Diff line number Diff line
@@ -47,7 +47,8 @@ public class DrawerAdapter extends RecyclerView.Adapter {
    private static final int VIEW_TYPE_ACCOUNT_ENTRY = 4;
    private static final int VIEW_TYPE_ACCOUNT_ENTRY = 4;
    private static final int VIEW_TYPE_CREATE_LABEL = 5;
    private static final int VIEW_TYPE_CREATE_LABEL = 5;
    private static final int VIEW_TYPE_NAV_SPACER = 6;
    private static final int VIEW_TYPE_NAV_SPACER = 6;
    private static final int VIEW_TYPE_NAV_DIVIDER = 7;
    private static final int VIEW_TYPE_STATUS_SPACER = 7;
    private static final int VIEW_TYPE_NAV_DIVIDER = 8;


    private static final int TYPEFACE_STYLE_ACTIVATE = R.style.DrawerItemTextActiveStyle;
    private static final int TYPEFACE_STYLE_ACTIVATE = R.style.DrawerItemTextActiveStyle;
    private static final int TYPEFACE_STYLE_INACTIVE = R.style.DrawerItemTextInactiveStyle;
    private static final int TYPEFACE_STYLE_INACTIVE = R.style.DrawerItemTextInactiveStyle;
@@ -61,7 +62,8 @@ public class DrawerAdapter extends RecyclerView.Adapter {
    private long mSelectedGroupId;
    private long mSelectedGroupId;
    private ContactListFilter mSelectedAccount;
    private ContactListFilter mSelectedAccount;


    // Adapter elements, ordered in this way in the getItem() method. The ordering is based on:
    // Adapter elements, ordered in this way mItemsList. The ordering is based on:
    //  [Status bar spacer item]
    //  [Navigation spacer item]
    //  [Navigation spacer item]
    //  [Primary items] (Contacts, Suggestions)
    //  [Primary items] (Contacts, Suggestions)
    //  [Group Header]
    //  [Group Header]
@@ -71,6 +73,7 @@ public class DrawerAdapter extends RecyclerView.Adapter {
    //  [Accounts]
    //  [Accounts]
    //  [Misc items] (a divider, Settings, Help & Feedback)
    //  [Misc items] (a divider, Settings, Help & Feedback)
    //  [Navigation spacer item]
    //  [Navigation spacer item]
    private StatusBarSpacerItem mStatusBarSpacerItem = null;
    private NavSpacerItem mNavSpacerItem = null;
    private NavSpacerItem mNavSpacerItem = null;
    private List<PrimaryItem> mPrimaryItems = new ArrayList<>();
    private List<PrimaryItem> mPrimaryItems = new ArrayList<>();
    private HeaderItem mGroupHeader = null;
    private HeaderItem mGroupHeader = null;
@@ -94,6 +97,7 @@ public class DrawerAdapter extends RecyclerView.Adapter {
    private void initializeDrawerMenuItems() {
    private void initializeDrawerMenuItems() {
        // Spacer item for dividing sections in drawer
        // Spacer item for dividing sections in drawer
        mNavSpacerItem = new NavSpacerItem(R.id.nav_drawer_spacer);
        mNavSpacerItem = new NavSpacerItem(R.id.nav_drawer_spacer);
        mStatusBarSpacerItem = new StatusBarSpacerItem(R.id.nav_status_bar_spacer);
        // Primary items
        // Primary items
        mPrimaryItems.add(new PrimaryItem(R.id.nav_all_contacts, R.string.contactsList,
        mPrimaryItems.add(new PrimaryItem(R.id.nav_all_contacts, R.string.contactsList,
                R.drawable.quantum_ic_account_circle_vd_theme_24, ContactsView.ALL_CONTACTS));
                R.drawable.quantum_ic_account_circle_vd_theme_24, ContactsView.ALL_CONTACTS));
@@ -117,6 +121,7 @@ public class DrawerAdapter extends RecyclerView.Adapter {


    private void rebuildItemsList() {
    private void rebuildItemsList() {
        mItemsList.clear();
        mItemsList.clear();
        mItemsList.add(mStatusBarSpacerItem);
        mItemsList.add(mNavSpacerItem);
        mItemsList.add(mNavSpacerItem);
        mItemsList.addAll(mPrimaryItems);
        mItemsList.addAll(mPrimaryItems);
        if (mAreGroupWritableAccountsAvailable) {
        if (mAreGroupWritableAccountsAvailable) {
@@ -184,6 +189,8 @@ public class DrawerAdapter extends RecyclerView.Adapter {
    @Override
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        switch (viewType) {
        switch (viewType) {
            case VIEW_TYPE_STATUS_SPACER:
                return getBaseViewHolder(R.layout.nav_header_main, parent);
            case VIEW_TYPE_NAV_SPACER:
            case VIEW_TYPE_NAV_SPACER:
                return getBaseViewHolder(R.layout.nav_drawer_spacer, parent);
                return getBaseViewHolder(R.layout.nav_drawer_spacer, parent);
            case VIEW_TYPE_PRIMARY_ITEM:
            case VIEW_TYPE_PRIMARY_ITEM:
@@ -394,6 +401,15 @@ public class DrawerAdapter extends RecyclerView.Adapter {
        }
        }
    }
    }



    // Navigation drawer item for status bar spacer item to take up the height of status bar in the
    // drawer.
    public static class StatusBarSpacerItem extends BaseDrawerItem {
        public StatusBarSpacerItem(int id) {
            super(VIEW_TYPE_STATUS_SPACER, id, /* textResId */ 0, /* iconResId */ 0);
        }
    }

    // Navigation drawer item for spacer item for dividing sections in the drawer.
    // Navigation drawer item for spacer item for dividing sections in the drawer.
    public static class NavSpacerItem extends BaseDrawerItem {
    public static class NavSpacerItem extends BaseDrawerItem {
        public NavSpacerItem(int id) {
        public NavSpacerItem(int id) {
Loading