184662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao/*
284662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao * Copyright (C) 2014 Google Inc.
384662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao * Licensed to The Android Open Source Project.
484662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao *
584662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao * Licensed under the Apache License, Version 2.0 (the "License");
684662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao * you may not use this file except in compliance with the License.
784662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao * You may obtain a copy of the License at
884662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao *
984662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao *      http://www.apache.org/licenses/LICENSE-2.0
1084662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao *
1184662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao * Unless required by applicable law or agreed to in writing, software
1284662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao * distributed under the License is distributed on an "AS IS" BASIS,
1384662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1484662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao * See the License for the specific language governing permissions and
1584662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao * limitations under the License.
1684662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao */
1784662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao
1884662ce9ac05081b16dd58202acbc69c7e24a354Jin Caopackage com.android.mail.utils;
1984662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao
2084662ce9ac05081b16dd58202acbc69c7e24a354Jin Caoimport android.content.res.Resources;
2184662ce9ac05081b16dd58202acbc69c7e24a354Jin Caoimport android.support.v4.text.BidiFormatter;
2284662ce9ac05081b16dd58202acbc69c7e24a354Jin Caoimport android.widget.ImageView;
2384662ce9ac05081b16dd58202acbc69c7e24a354Jin Caoimport android.widget.TextView;
2484662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao
2584662ce9ac05081b16dd58202acbc69c7e24a354Jin Caoimport com.android.mail.R;
2684662ce9ac05081b16dd58202acbc69c7e24a354Jin Caoimport com.android.mail.providers.Folder;
2784662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao
2884662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao/**
2984662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao * Utility class for handling logic related to empty states throughout the app.
3084662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao */
3184662ce9ac05081b16dd58202acbc69c7e24a354Jin Caopublic class EmptyStateUtils {
3284662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao
3384662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao    /**
3484662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao     * Given an empty folder, set the corresponding empty state icon for that folder.
3584662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao     */
3684662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao    public static void bindEmptyFolderIcon(ImageView view, Folder folder) {
3784662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao        if (folder == null) {
38b29afab8f42465843c634b74190f6d6f9fb94513Jin Cao            view.setImageResource(R.drawable.ic_empty_default);
3984662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao        } else if (folder.isInbox()) {
40b29afab8f42465843c634b74190f6d6f9fb94513Jin Cao            view.setImageResource(R.drawable.ic_empty_inbox);
4184662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao        } else if (folder.isSearch()) {
42b29afab8f42465843c634b74190f6d6f9fb94513Jin Cao            view.setImageResource(R.drawable.ic_empty_search);
4384662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao        } else if (folder.isSpam()) {
44b29afab8f42465843c634b74190f6d6f9fb94513Jin Cao            view.setImageResource(R.drawable.ic_empty_spam);
4584662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao        } else if (folder.isTrash()) {
46b29afab8f42465843c634b74190f6d6f9fb94513Jin Cao            view.setImageResource(R.drawable.ic_empty_trash);
4784662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao        } else {
48b29afab8f42465843c634b74190f6d6f9fb94513Jin Cao            view.setImageResource(R.drawable.ic_empty_default);
4984662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao        }
5084662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao    }
5184662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao
5284662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao    /**
5384662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao     * Given an empty folder, set the corresponding text for indicating the empty state.
5484662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao     */
5584662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao    public static void bindEmptyFolderText(TextView view, Folder folder, Resources res,
5684662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao            String searchQuery, BidiFormatter bidiFormatter) {
5784662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao        if (folder == null) {
5884662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao            view.setText(R.string.empty_folder);
5984662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao        } else if (folder.isInbox()) {
6084662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao            view.setText(R.string.empty_inbox);
6184662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao        } else if (folder.isSearch()) {
6284662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao            final String text = res.getString(R.string.empty_search,
6384662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao                    bidiFormatter.unicodeWrap(searchQuery));
6484662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao            view.setText(text);
6584662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao        } else if (folder.isSpam()) {
6684662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao            view.setText(R.string.empty_spam_folder);
6784662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao        } else if (folder.isTrash()) {
6884662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao            view.setText(R.string.empty_trash_folder);
6984662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao        } else {
7084662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao            view.setText(R.string.empty_folder);
7184662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao        }
7284662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao    }
7384662ce9ac05081b16dd58202acbc69c7e24a354Jin Cao}
74