package com.moez.QKSMS.ui.view;
import android.content.Context;
import android.content.SharedPreferences;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.widget.MultiAutoCompleteTextView;
import com.android.ex.chips.BaseRecipientAdapter;
import com.android.ex.chips.RecipientEditTextView;
import com.moez.QKSMS.common.FontManager;
import com.moez.QKSMS.common.LiveViewManager;
import com.moez.QKSMS.enums.QKPreference;
import com.moez.QKSMS.ui.ThemeManager;
import com.moez.QKSMS.ui.base.QKActivity;
import com.moez.QKSMS.ui.settings.SettingsFragment;
public class AutoCompleteContactView extends RecipientEditTextView {
public static final String TAG = "AutoCompleteContactView";
private QKActivity mContext;
private BaseRecipientAdapter mAdapter;
public AutoCompleteContactView(Context context) {
this(context, null);
if (!isInEditMode()) {
init(context);
}
}
public AutoCompleteContactView(Context context, AttributeSet attrs) {
super(context, attrs);
if (!isInEditMode()) {
init(context);
}
}
private void init(Context context) {
mContext = (QKActivity) context;
mAdapter = new BaseRecipientAdapter(BaseRecipientAdapter.QUERY_TYPE_PHONE, getContext());
setThreshold(1);
setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
setAdapter(mAdapter);
setOnItemClickListener(this);
LiveViewManager.registerView(QKPreference.FONT_FAMILY, this, key -> {
setTypeface(FontManager.getFont(mContext));
});
LiveViewManager.registerView(QKPreference.FONT_WEIGHT, this, key -> {
setTypeface(FontManager.getFont(mContext));
});
LiveViewManager.registerView(QKPreference.FONT_SIZE, this, key -> {
setTextSize(TypedValue.COMPLEX_UNIT_SP, FontManager.getTextSize(mContext, FontManager.TEXT_TYPE_PRIMARY));
});
LiveViewManager.registerView(QKPreference.BACKGROUND, this, key -> {
setTextColor(ThemeManager.getTextOnBackgroundPrimary());
setHintTextColor(ThemeManager.getTextOnBackgroundSecondary());
});
LiveViewManager.registerView(QKPreference.MOBILE_ONLY, this, key -> {
if (mAdapter != null) {
SharedPreferences prefs1 = mContext.getPrefs();
mAdapter.setShowMobileOnly(prefs1.getBoolean(SettingsFragment.MOBILE_ONLY, false));
}
});
}
}