18b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov/*
28b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov * Copyright (C) 2010 The Android Open Source Project
38b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov *
48b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov * Licensed under the Apache License, Version 2.0 (the "License");
58b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov * you may not use this file except in compliance with the License.
68b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov * You may obtain a copy of the License at
78b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov *
88b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov *      http://www.apache.org/licenses/LICENSE-2.0
98b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov *
108b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov * Unless required by applicable law or agreed to in writing, software
118b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov * distributed under the License is distributed on an "AS IS" BASIS,
128b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
138b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov * See the License for the specific language governing permissions and
148b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov * limitations under the License.
158b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov */
168b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikovpackage com.android.contacts.list;
178b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov
188b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikovimport android.app.Fragment;
19d8fa716e5428791f79f54437087df3005cc907bfMakoto Onukiimport android.content.Context;
208b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikovimport android.os.Bundle;
218b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikovimport android.provider.ContactsContract.ProviderStatus;
228b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikovimport android.view.Gravity;
238b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikovimport android.view.LayoutInflater;
248b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikovimport android.view.View;
258b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikovimport android.view.View.OnClickListener;
268b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikovimport android.view.ViewGroup;
278b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikovimport android.widget.Button;
288b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikovimport android.widget.ProgressBar;
298b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikovimport android.widget.TextView;
308b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov
31e0b2f1e2d01d1ac52ba207dc7ce76971d853298eChiao Chengimport com.android.contacts.R;
32e0b2f1e2d01d1ac52ba207dc7ce76971d853298eChiao Cheng
338b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov/**
348b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov * Fragment shown when contacts are unavailable. It contains provider status
358b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov * messaging as well as instructions for the user.
368b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov */
378b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikovpublic class ContactsUnavailableFragment extends Fragment implements OnClickListener {
388b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov
398b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov    private View mView;
408b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov    private TextView mMessageView;
41a1bbf6139bb1e0d30078fe6c99effaf45f7416efIsaac Katzenelson    private TextView mSecondaryMessageView;
428b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov    private Button mCreateContactButton;
438b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov    private Button mAddAccountButton;
448b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov    private Button mImportContactsButton;
458b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov    private Button mUninstallAppsButton;
468b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov    private Button mRetryUpgradeButton;
478b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov    private ProgressBar mProgress;
4866606b648d7eee16b6e5a55506bbee141887b55eIsaac Katzenelson    private int mNoContactsMsgResId = -1;
49a1bbf6139bb1e0d30078fe6c99effaf45f7416efIsaac Katzenelson    private int mNSecNoContactsMsgResId = -1;
508b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov
518b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov    private OnContactsUnavailableActionListener mListener;
528b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov
53d8fa716e5428791f79f54437087df3005cc907bfMakoto Onuki    private ProviderStatusWatcher.Status mProviderStatus;
54d8fa716e5428791f79f54437087df3005cc907bfMakoto Onuki
558b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov    @Override
56c2bd6138e19fdcf734843eb55c83d6ffe00e91daMakoto Onuki    public void onCreate(Bundle savedInstanceState) {
57c2bd6138e19fdcf734843eb55c83d6ffe00e91daMakoto Onuki        super.onCreate(savedInstanceState);
58c2bd6138e19fdcf734843eb55c83d6ffe00e91daMakoto Onuki    }
59c2bd6138e19fdcf734843eb55c83d6ffe00e91daMakoto Onuki
60c2bd6138e19fdcf734843eb55c83d6ffe00e91daMakoto Onuki    @Override
618b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov    public View onCreateView(
628b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov            LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
638b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov        mView = inflater.inflate(R.layout.contacts_unavailable_fragment, null);
648b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov        mMessageView = (TextView) mView.findViewById(R.id.message);
65a1bbf6139bb1e0d30078fe6c99effaf45f7416efIsaac Katzenelson        mSecondaryMessageView = (TextView) mView.findViewById(R.id.secondary_message);
668b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov        mCreateContactButton = (Button) mView.findViewById(R.id.create_contact_button);
678b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov        mCreateContactButton.setOnClickListener(this);
688b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov        mAddAccountButton = (Button) mView.findViewById(R.id.add_account_button);
698b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov        mAddAccountButton.setOnClickListener(this);
708b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov        mImportContactsButton = (Button) mView.findViewById(R.id.import_contacts_button);
718b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov        mImportContactsButton.setOnClickListener(this);
728b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov        mUninstallAppsButton = (Button) mView.findViewById(R.id.import_failure_uninstall_button);
738b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov        mUninstallAppsButton.setOnClickListener(this);
748b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov        mRetryUpgradeButton = (Button) mView.findViewById(R.id.import_failure_retry_button);
758b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov        mRetryUpgradeButton.setOnClickListener(this);
768b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov        mProgress = (ProgressBar) mView.findViewById(R.id.progress);
77d8fa716e5428791f79f54437087df3005cc907bfMakoto Onuki
78d8fa716e5428791f79f54437087df3005cc907bfMakoto Onuki        if (mProviderStatus != null) {
79d8fa716e5428791f79f54437087df3005cc907bfMakoto Onuki            updateStatus(mProviderStatus);
80d8fa716e5428791f79f54437087df3005cc907bfMakoto Onuki        }
81d8fa716e5428791f79f54437087df3005cc907bfMakoto Onuki
828b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov        return mView;
838b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov    }
848b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov
858b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov    public void setOnContactsUnavailableActionListener(
868b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov            OnContactsUnavailableActionListener listener) {
878b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov        mListener = listener;
888b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov    }
898b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov
90d8fa716e5428791f79f54437087df3005cc907bfMakoto Onuki    public void updateStatus(ProviderStatusWatcher.Status providerStatus) {
91d8fa716e5428791f79f54437087df3005cc907bfMakoto Onuki        mProviderStatus = providerStatus;
92d8fa716e5428791f79f54437087df3005cc907bfMakoto Onuki        if (mView == null) {
93d8fa716e5428791f79f54437087df3005cc907bfMakoto Onuki            // The view hasn't been inflated yet.
94d8fa716e5428791f79f54437087df3005cc907bfMakoto Onuki            return;
95d8fa716e5428791f79f54437087df3005cc907bfMakoto Onuki        }
96d8fa716e5428791f79f54437087df3005cc907bfMakoto Onuki        switch (providerStatus.status) {
97c3f2a52067b799e223f0964207a2d1957165e960Dmitri Plotnikov            case ProviderStatus.STATUS_NO_ACCOUNTS_NO_CONTACTS:
98a1bbf6139bb1e0d30078fe6c99effaf45f7416efIsaac Katzenelson                setMessageText(mNoContactsMsgResId, mNSecNoContactsMsgResId);
99c3f2a52067b799e223f0964207a2d1957165e960Dmitri Plotnikov                mCreateContactButton.setVisibility(View.VISIBLE);
100c3f2a52067b799e223f0964207a2d1957165e960Dmitri Plotnikov                mAddAccountButton.setVisibility(View.VISIBLE);
101c3f2a52067b799e223f0964207a2d1957165e960Dmitri Plotnikov                mImportContactsButton.setVisibility(View.VISIBLE);
102c3f2a52067b799e223f0964207a2d1957165e960Dmitri Plotnikov                mUninstallAppsButton.setVisibility(View.GONE);
103c3f2a52067b799e223f0964207a2d1957165e960Dmitri Plotnikov                mRetryUpgradeButton.setVisibility(View.GONE);
104c3f2a52067b799e223f0964207a2d1957165e960Dmitri Plotnikov                mProgress.setVisibility(View.GONE);
105c3f2a52067b799e223f0964207a2d1957165e960Dmitri Plotnikov                break;
106c3f2a52067b799e223f0964207a2d1957165e960Dmitri Plotnikov
1078b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov            case ProviderStatus.STATUS_CHANGING_LOCALE:
1088b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mMessageView.setText(R.string.locale_change_in_progress);
1098b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mMessageView.setGravity(Gravity.CENTER_HORIZONTAL);
110c3f2a52067b799e223f0964207a2d1957165e960Dmitri Plotnikov                mMessageView.setVisibility(View.VISIBLE);
1118b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mCreateContactButton.setVisibility(View.GONE);
1128b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mAddAccountButton.setVisibility(View.GONE);
1138b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mImportContactsButton.setVisibility(View.GONE);
1148b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mUninstallAppsButton.setVisibility(View.GONE);
1158b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mRetryUpgradeButton.setVisibility(View.GONE);
1168b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mProgress.setVisibility(View.VISIBLE);
1178b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                break;
118c3f2a52067b799e223f0964207a2d1957165e960Dmitri Plotnikov
1198b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov            case ProviderStatus.STATUS_UPGRADING:
1208b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mMessageView.setText(R.string.upgrade_in_progress);
1218b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mMessageView.setGravity(Gravity.CENTER_HORIZONTAL);
122c3f2a52067b799e223f0964207a2d1957165e960Dmitri Plotnikov                mMessageView.setVisibility(View.VISIBLE);
1238b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mCreateContactButton.setVisibility(View.GONE);
1248b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mAddAccountButton.setVisibility(View.GONE);
1258b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mImportContactsButton.setVisibility(View.GONE);
1268b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mUninstallAppsButton.setVisibility(View.GONE);
1278b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mRetryUpgradeButton.setVisibility(View.GONE);
1288b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mProgress.setVisibility(View.VISIBLE);
1298b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                break;
130c3f2a52067b799e223f0964207a2d1957165e960Dmitri Plotnikov
1318b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov            case ProviderStatus.STATUS_UPGRADE_OUT_OF_MEMORY:
1328b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                String message = getResources().getString(R.string.upgrade_out_of_memory,
133d8fa716e5428791f79f54437087df3005cc907bfMakoto Onuki                        new Object[] { providerStatus.data});
1348b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mMessageView.setText(message);
1357d3b91577f84a4f5092d28ed0f3cfe7e0df32696Fabrice Di Meglio                mMessageView.setGravity(Gravity.START);
136c3f2a52067b799e223f0964207a2d1957165e960Dmitri Plotnikov                mMessageView.setVisibility(View.VISIBLE);
1378b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mCreateContactButton.setVisibility(View.GONE);
1388b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mAddAccountButton.setVisibility(View.GONE);
1398b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mImportContactsButton.setVisibility(View.GONE);
1408b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mUninstallAppsButton.setVisibility(View.VISIBLE);
1418b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mRetryUpgradeButton.setVisibility(View.VISIBLE);
1428b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mProgress.setVisibility(View.GONE);
1438b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                break;
1448b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov        }
1458b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov    }
1468b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov
1478b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov    @Override
1488b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov    public void onClick(View v) {
1498b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov        if (mListener == null) {
1508b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov            return;
1518b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov        }
1528b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov        switch (v.getId()) {
1538b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov            case R.id.create_contact_button:
1548b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mListener.onCreateNewContactAction();
1558b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                break;
1568b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov            case R.id.add_account_button:
1578b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mListener.onAddAccountAction();
1588b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                break;
1598b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov            case R.id.import_contacts_button:
1608b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mListener.onImportContactsFromFileAction();
1618b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                break;
1628b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov            case R.id.import_failure_uninstall_button:
1638b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                mListener.onFreeInternalStorageAction();
1648b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                break;
1658b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov            case R.id.import_failure_retry_button:
166d8fa716e5428791f79f54437087df3005cc907bfMakoto Onuki                final Context context = getActivity();
167d8fa716e5428791f79f54437087df3005cc907bfMakoto Onuki                if (context != null) { // Just in case.
168d8fa716e5428791f79f54437087df3005cc907bfMakoto Onuki                    ProviderStatusWatcher.retryUpgrade(context);
169d8fa716e5428791f79f54437087df3005cc907bfMakoto Onuki                }
1708b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov                break;
1718b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov        }
1728b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov    }
17366606b648d7eee16b6e5a55506bbee141887b55eIsaac Katzenelson    /**
174a1bbf6139bb1e0d30078fe6c99effaf45f7416efIsaac Katzenelson     * Set the message to be shown if no data is available for the selected tab
17566606b648d7eee16b6e5a55506bbee141887b55eIsaac Katzenelson     *
176a1bbf6139bb1e0d30078fe6c99effaf45f7416efIsaac Katzenelson     * @param resId - String resource ID of the message , -1 means view will not be visible
17766606b648d7eee16b6e5a55506bbee141887b55eIsaac Katzenelson     */
178a1bbf6139bb1e0d30078fe6c99effaf45f7416efIsaac Katzenelson    public void setMessageText(int resId, int secResId) {
17966606b648d7eee16b6e5a55506bbee141887b55eIsaac Katzenelson        mNoContactsMsgResId = resId;
180a1bbf6139bb1e0d30078fe6c99effaf45f7416efIsaac Katzenelson        mNSecNoContactsMsgResId = secResId;
181d8fa716e5428791f79f54437087df3005cc907bfMakoto Onuki        if ((mMessageView != null) && (mProviderStatus != null) &&
182d8fa716e5428791f79f54437087df3005cc907bfMakoto Onuki                (mProviderStatus.status == ProviderStatus.STATUS_NO_ACCOUNTS_NO_CONTACTS)) {
183a1bbf6139bb1e0d30078fe6c99effaf45f7416efIsaac Katzenelson            if (resId != -1) {
184a1bbf6139bb1e0d30078fe6c99effaf45f7416efIsaac Katzenelson                mMessageView.setText(mNoContactsMsgResId);
185a1bbf6139bb1e0d30078fe6c99effaf45f7416efIsaac Katzenelson                mMessageView.setGravity(Gravity.CENTER_HORIZONTAL);
186a1bbf6139bb1e0d30078fe6c99effaf45f7416efIsaac Katzenelson                mMessageView.setVisibility(View.VISIBLE);
187a1bbf6139bb1e0d30078fe6c99effaf45f7416efIsaac Katzenelson                if (secResId != -1) {
188a1bbf6139bb1e0d30078fe6c99effaf45f7416efIsaac Katzenelson                    mSecondaryMessageView.setText(mNSecNoContactsMsgResId);
189a1bbf6139bb1e0d30078fe6c99effaf45f7416efIsaac Katzenelson                    mSecondaryMessageView.setGravity(Gravity.CENTER_HORIZONTAL);
190a1bbf6139bb1e0d30078fe6c99effaf45f7416efIsaac Katzenelson                    mSecondaryMessageView.setVisibility(View.VISIBLE);
191a1bbf6139bb1e0d30078fe6c99effaf45f7416efIsaac Katzenelson                } else {
192a1bbf6139bb1e0d30078fe6c99effaf45f7416efIsaac Katzenelson                    mSecondaryMessageView.setVisibility(View.INVISIBLE);
193a1bbf6139bb1e0d30078fe6c99effaf45f7416efIsaac Katzenelson                }
194a1bbf6139bb1e0d30078fe6c99effaf45f7416efIsaac Katzenelson            } else {
195a1bbf6139bb1e0d30078fe6c99effaf45f7416efIsaac Katzenelson                mSecondaryMessageView.setVisibility(View.GONE);
196a1bbf6139bb1e0d30078fe6c99effaf45f7416efIsaac Katzenelson                mMessageView.setVisibility(View.GONE);
197a1bbf6139bb1e0d30078fe6c99effaf45f7416efIsaac Katzenelson            }
19866606b648d7eee16b6e5a55506bbee141887b55eIsaac Katzenelson        }
19966606b648d7eee16b6e5a55506bbee141887b55eIsaac Katzenelson    }
2008b8264620f9362e089322d1e3a7cc5620900e6f9Dmitri Plotnikov}
201