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

Commit d78ee90c authored by Daniel Lehmann's avatar Daniel Lehmann
Browse files

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
parent 21759ceb
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -34,8 +34,6 @@ public final class GroupListLoader extends CursorLoader {
        Groups.DATA_SET,
        Groups._ID,
        Groups.TITLE,
        Groups.ACTION,
        Groups.ACTION_URI,
        Groups.SUMMARY_COUNT,
    };

@@ -44,9 +42,7 @@ public final class GroupListLoader extends CursorLoader {
    public final static int DATA_SET = 2;
    public final static int GROUP_ID = 3;
    public final static int TITLE = 4;
    public final static int ACTION = 5;
    public final static int ACTION_URI = 6;
    public final static int MEMBER_COUNT = 7;
    public final static int MEMBER_COUNT = 5;

    private static final Uri GROUP_LIST_URI = Groups.CONTENT_SUMMARY_URI;

+0 −4
Original line number Diff line number Diff line
@@ -36,8 +36,6 @@ public final class GroupMetaDataLoader extends CursorLoader {
        Groups.FAVORITES,
        Groups.GROUP_IS_READ_ONLY,
        Groups.DELETED,
        Groups.ACTION,
        Groups.ACTION_URI,
    };

    public final static int ACCOUNT_NAME = 0;
@@ -49,8 +47,6 @@ public final class GroupMetaDataLoader extends CursorLoader {
    public final static int FAVORITES = 6;
    public final static int IS_READ_ONLY = 7;
    public final static int DELETED = 8;
    public final static int ACTION = 9;
    public final static int ACTION_URI = 10;

    public GroupMetaDataLoader(Context context, Uri groupUri) {
        super(context, ensureIsGroupUri(groupUri), COLUMNS, Groups.ACCOUNT_TYPE + " NOT NULL AND "
+22 −14
Original line number Diff line number Diff line
@@ -20,11 +20,15 @@ import com.android.contacts.ContactsActivity;
import com.android.contacts.R;
import com.android.contacts.group.GroupDetailDisplayUtils;
import com.android.contacts.group.GroupDetailFragment;
import com.android.contacts.model.AccountType;
import com.android.contacts.model.AccountTypeManager;

import android.app.ActionBar;
import android.content.ContentUris;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract.Groups;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuInflater;
@@ -40,8 +44,8 @@ public class GroupDetailActivity extends ContactsActivity {

    private String mAccountTypeString;
    private String mDataSet;
    private String mGroupSourceAction;
    private String mGroupSourceUri;

    private GroupDetailFragment mFragment;

    @Override
    public void onCreate(Bundle savedState) {
@@ -55,12 +59,12 @@ public class GroupDetailActivity extends ContactsActivity {
        mShowGroupSourceInActionBar = getResources().getBoolean(
                R.bool.config_show_group_action_in_action_bar);

        GroupDetailFragment fragment = (GroupDetailFragment) getFragmentManager().findFragmentById(
        mFragment = (GroupDetailFragment) getFragmentManager().findFragmentById(
                R.id.group_detail_fragment);
        fragment.setListener(mFragmentListener);
        fragment.setShowGroupSourceInActionBar(mShowGroupSourceInActionBar);
        fragment.loadGroup(getIntent().getData());
        fragment.closeActivityAfterDelete(true);
        mFragment.setListener(mFragmentListener);
        mFragment.setShowGroupSourceInActionBar(mShowGroupSourceInActionBar);
        mFragment.loadGroup(getIntent().getData());
        mFragment.closeActivityAfterDelete(true);

        // We want the UP affordance but no app icon.
        ActionBar actionBar = getActionBar();
@@ -85,12 +89,9 @@ public class GroupDetailActivity extends ContactsActivity {
        }

        @Override
        public void onGroupSourceUpdated(String accountTypeString, String dataSet,
                String groupSourceAction, String groupSourceActionUri) {
        public void onAccountTypeUpdated(String accountTypeString, String dataSet) {
            mAccountTypeString = accountTypeString;
            mDataSet = dataSet;
            mGroupSourceAction = groupSourceAction;
            mGroupSourceUri = groupSourceActionUri;
            invalidateOptionsMenu();
        }

@@ -128,8 +129,11 @@ public class GroupDetailActivity extends ContactsActivity {
        if (groupSourceMenuItem == null) {
            return false;
        }
        if (TextUtils.isEmpty(mAccountTypeString) || TextUtils.isEmpty(mGroupSourceAction) ||
                TextUtils.isEmpty(mGroupSourceUri)) {
        final AccountTypeManager manager = AccountTypeManager.getInstance(this);
        final AccountType accountType =
                manager.getAccountType(mAccountTypeString, mDataSet);
        if (TextUtils.isEmpty(mAccountTypeString)
                || TextUtils.isEmpty(accountType.getViewGroupActivity())) {
            groupSourceMenuItem.setVisible(false);
            return false;
        }
@@ -139,7 +143,11 @@ public class GroupDetailActivity extends ContactsActivity {
        groupSourceView.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(mGroupSourceAction, Uri.parse(mGroupSourceUri)));
                final Uri uri = ContentUris.withAppendedId(Groups.CONTENT_URI,
                        mFragment.getGroupId());
                final Intent intent = new Intent(Intent.ACTION_VIEW, uri);
                intent.setClassName(accountType.resPackageName, accountType.getViewGroupActivity());
                startActivity(intent);
            }
        });
        groupSourceMenuItem.setActionView(groupSourceView);
+2 −4
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ import com.android.contacts.R;
import com.android.contacts.activities.ActionBarAdapter.TabState;
import com.android.contacts.detail.ContactDetailFragment;
import com.android.contacts.detail.ContactDetailLayoutController;
import com.android.contacts.detail.ContactDetailTabCarousel;
import com.android.contacts.detail.ContactDetailUpdatesFragment;
import com.android.contacts.detail.ContactLoaderFragment;
import com.android.contacts.detail.ContactLoaderFragment.ContactLoaderFragmentListener;
@@ -39,6 +38,7 @@ import com.android.contacts.list.ContactEntryListFragment;
import com.android.contacts.list.ContactListFilter;
import com.android.contacts.list.ContactListFilterController;
import com.android.contacts.list.ContactTileAdapter.DisplayType;
import com.android.contacts.list.ContactTileListFragment;
import com.android.contacts.list.ContactsIntentResolver;
import com.android.contacts.list.ContactsRequest;
import com.android.contacts.list.ContactsUnavailableFragment;
@@ -48,7 +48,6 @@ import com.android.contacts.list.OnContactBrowserActionListener;
import com.android.contacts.list.OnContactsUnavailableActionListener;
import com.android.contacts.list.ProviderStatusLoader;
import com.android.contacts.list.ProviderStatusLoader.ProviderStatusListener;
import com.android.contacts.list.ContactTileListFragment;
import com.android.contacts.model.AccountTypeManager;
import com.android.contacts.model.AccountWithDataSet;
import com.android.contacts.preference.ContactsPreferenceActivity;
@@ -1160,8 +1159,7 @@ public class PeopleActivity extends ContactsActivity
        }

        @Override
        public void onGroupSourceUpdated(String accountTypeString, String dataSet,
                String groupSourceAction, String groupSourceUri) {
        public void onAccountTypeUpdated(String accountTypeString, String dataSet) {
            // Nothing needs to be done here because the group source will be displayed in the
            // detail fragment
        }
+14 −21
Original line number Diff line number Diff line
@@ -19,12 +19,16 @@ package com.android.contacts.detail;
import com.android.contacts.ContactLoader;
import com.android.contacts.R;
import com.android.contacts.activities.ContactDetailActivity.FragmentKeyListener;
import com.android.contacts.model.AccountType;
import com.android.contacts.model.AccountTypeManager;
import com.android.contacts.util.StreamItemEntry;

import android.app.ListFragment;
import android.content.ContentUris;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract.StreamItems;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -69,27 +73,16 @@ public class ContactDetailUpdatesFragment extends ListFragment
                // Ignore if this item does not have a stream item associated with it.
                return;
            }
            String actionUri = streamItemEntry.getActionUri();
            if (actionUri == null) {
                // Ignore if this item does not have a URI.
                return;
            }
            // Parse the URI.
            Uri uri;
            try {
                uri = Uri.parse(actionUri);
            } catch (Throwable throwable) {
                // This may fail if the URI is invalid: instead of failing, just ignore it.
                Log.e(TAG, "invalid URI for stream item #" + streamItemEntry.getId() + ": "
                        + actionUri);
                return;
            }
            String action = streamItemEntry.getAction();
            if (action == null) {
                // Ignore if this item does not have an action.
                return;
            }
            startActivity(new Intent(action, uri));
            final AccountTypeManager manager = AccountTypeManager.getInstance(getActivity());
            final AccountType accountType = manager.getAccountType(
                    streamItemEntry.getAccountType(), streamItemEntry.getDataSet());

            final Uri uri = ContentUris.withAppendedId(StreamItems.CONTENT_URI,
                    streamItemEntry.getId());
            final Intent intent = new Intent(Intent.ACTION_VIEW, uri);
            intent.setClassName(accountType.resPackageName,
                    accountType.getViewStreamItemActivity());
            startActivity(intent);
        }
    };

Loading