package com.kitty.poclient.common;
import android.app.Activity;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.kitty.poclient.R;
import de.keyboardsurfer.android.widget.crouton.Configuration;
import de.keyboardsurfer.android.widget.crouton.Crouton;
import de.keyboardsurfer.android.widget.crouton.Style;
/**
* 实现自定义的弹出通知视图(Notification)。对于不同类型的通知,会有不同的颜色,
* 比如info是蓝色,alert是红色,confirm是绿色等等。 可以在通知中加入图片。支持在屏幕顶部或者屏幕中间弹出通知。
* @author fangyishuai@dfim.com.cn
* @version 1.0
* @since 1.3.38
* @created 2013-12-31
*/
public class CroutonHelper {
public static final int TYPE_INFO_DEFAULT = 0; //无图标
public static final int TYPE_INFO_LOADING = 1;
public static final int TYPE_INFO_ADD_SUCCESS = 2;
public static final int DEFAULT_DURATION = 1500;
/**
* Show Crouton on Activity with specified text, style & configuration.
* @param activity The {@link Activity} that the {@link Crouton} should be attached to.
* @param croutonText The text you want to display.
* @param croutonStyle The style that this {@link Crouton} should be created with.
* @param configuration The {@link Configuration} for this {@link Crouton}.
* @version 1.0
*/
public static void showCrouton(final Activity activity,
final String croutonText, final Style croutonStyle,
final Configuration configuration) {
final Crouton crouton;
crouton = Crouton.makeText(activity, croutonText, croutonStyle);
crouton.setConfiguration(configuration).show();
}
public static void showCrouton(Activity activity, String croutonText, int croutonDuration, int croutonViewColor, int croutonImageId){
Configuration croutonConfiguration = new Configuration.Builder().setDuration(croutonDuration).build();
View view = activity.getLayoutInflater().inflate(R.layout.crouton_view, null);
view.setBackgroundColor(croutonViewColor);
TextView textView = (TextView) view.findViewById(R.id.crouton_text);
textView.setText(croutonText);
ImageView image = (ImageView) view.findViewById(R.id.crouton_image);
if(croutonImageId == 0){
image.setVisibility(View.INVISIBLE);
}else{
image.setImageResource(croutonImageId);
}
final Crouton crouton;
crouton = Crouton.make(activity, view);
crouton.setConfiguration(croutonConfiguration).show();
}
public static void showAlertCrouton(Activity activity, String croutonText, int croutonDuration) {
int croutonViewColor = activity.getResources().getColor(R.color.crouton_alert_color);
int croutonImageId = R.drawable.crouton_alert;
showCrouton(activity, croutonText, croutonDuration, croutonViewColor, croutonImageId);
}
public static void showAlertCrouton(Activity activity, String croutonText){
int croutonDuration = DEFAULT_DURATION;
showAlertCrouton(activity, croutonText, croutonDuration);
}
/* Same as alert*/
// public static void showErrorCrouton(Activity activity, String croutonText){
// int croutonDuration = DEFAULT_DURATION;
// showAlertCrouton(activity, croutonText, croutonDuration);
// }
private static void showInfoCrouton(Activity activity, String croutonText, int croutonDuration, int infoType){
int croutonViewColor = activity.getResources().getColor(R.color.crouton_info_color);
int croutonImageId;
switch (infoType) {
case TYPE_INFO_LOADING:
croutonImageId = R.drawable.crouton_loading;
break;
case TYPE_INFO_ADD_SUCCESS:
croutonImageId = R.drawable.crouton_add_success;
break;
default:
//TODO 待设计默认info图标
croutonImageId = 0;
break;
}
showCrouton(activity, croutonText, croutonDuration, croutonViewColor, croutonImageId);
}
/* 无图标info */
public static void showInfoCrouton(Activity activity, String croutonText){
int croutonDuration = DEFAULT_DURATION;
int infoType = TYPE_INFO_DEFAULT;
showInfoCrouton(activity, croutonText, croutonDuration, infoType);
}
/* show info Crouton on MainActivity */
public static void showSystemInfoCrouton(String croutonText){
int croutonDuration = DEFAULT_DURATION;
int infoType = TYPE_INFO_DEFAULT;
showInfoCrouton(UpnpApp.mainActivity, croutonText, croutonDuration, infoType);
}
/* show alert Crouton on MainActivity */
public static void showSystemAlertCrouton(String croutonText){
showAlertCrouton(UpnpApp.mainActivity, croutonText);
}
}