/*
* Copyright (C) 2009 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.mogoo.launcher2.search.ui;
import android.content.Context;
import android.provider.ContactsContract;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.mogoo.launcher.R;
import com.mogoo.launcher2.search.Source;
import com.mogoo.launcher2.search.WebSource;
/**
* Inflates suggestion views.
*/
public class SuggestionViewInflater implements SuggestionViewFactory {
// The suggestion view classes that may be returned by this factory.
private static final Class<?>[] SUGGESTION_VIEW_CLASSES = {
DefaultSuggestionView.class, WebSuggestionView.class
};
// The layout ids associated with each of the above classes.
private static final int[] SUGGESTION_VIEW_LAYOUTS = {
R.layout.mogoo_search_list_item, R.layout.mogoo_search_list_item_web
};
private static final String CONTACT_LOOKUP_URI
= ContactsContract.Contacts.CONTENT_LOOKUP_URI.toString();
private final Context mContext;
public SuggestionViewInflater(Context context) {
mContext = context;
}
protected LayoutInflater getInflater() {
return (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getSuggestionViewTypeCount() {
return SUGGESTION_VIEW_CLASSES.length;
}
public int getSuggestionViewType(Source source) {
return source instanceof WebSource ? 1 : 0;
}
public SuggestionView getSuggestionView(int viewType, View convertView,
ViewGroup parentViewType) {
if (convertView == null || !convertView.getClass().equals(
SUGGESTION_VIEW_CLASSES[viewType])) {
int layoutId = SUGGESTION_VIEW_LAYOUTS[viewType];
convertView = getInflater().inflate(layoutId, parentViewType, false);
}
return (SuggestionView) convertView;
}
// private boolean isContactSuggestion(SuggestionCursor suggestion) {
// String intentData = suggestion.getSuggestionIntentDataString();
// return intentData != null && intentData.startsWith(CONTACT_LOOKUP_URI);
// }
}