package com.swifty.fillcolor.factory;
import android.app.Activity;
import android.content.Context;
import android.os.Build;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
import com.swifty.fillcolor.MyApplication;
import com.swifty.fillcolor.listener.OnAddWordsSuccessListener;
import com.swifty.fillcolor.listener.OnChangeBorderListener;
import com.swifty.fillcolor.listener.OnLoginSuccessListener;
import com.swifty.fillcolor.listener.OnUnLockImageSuccessListener;
import com.swifty.fillcolor.R;
import com.swifty.fillcolor.model.AsynImageLoader;
import com.swifty.fillcolor.util.CommentUtil;
import com.swifty.fillcolor.util.DensityUtil;
import com.swifty.fillcolor.util.FileUtils;
import com.swifty.fillcolor.util.SNSUtil;
import com.swifty.fillcolor.util.UmengLoginUtil;
import com.swifty.fillcolor.util.UmengUtil;
import com.swifty.fillcolor.view.ColorPickerSeekBar;
import com.swifty.fillcolor.view.MyDialogStyle;
import com.swifty.fillcolor.view.MyProgressDialog;
/**
* Created by Swifty.Wang on 2015/6/12.
*/
public class MyDialogFactory extends MyDialogStyle {
//just for add border
int drawableid;
public MyDialogFactory(Context context) {
super(context);
}
public void FinishSaveImageDialog(View.OnClickListener savelistener, View.OnClickListener quitlistener) {
showTwoButtonDialog(context.getString(R.string.quitorsave), context.getString(R.string.save), context.getString(R.string.quit), savelistener, quitlistener, true);
}
public void showAboutDialog() {
StringBuffer buffer = new StringBuffer();
buffer.append(context.getString(R.string.version) + ":" + MyApplication.getVersion(context) + "\n");
buffer.append(UmengUtil.getCurrentVersionDetail(context) + "\n");
buffer.append(context.getString(R.string.aboutImage) + "\n");
buffer.append(context.getString(R.string.email) + ":" + context.getString(R.string.authoremail) + "\n");
buffer.append(context.getString(R.string.qqgroup) + ":" + context.getString(R.string.qqgroupnumber));
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View view) {
dismissDialog();
}
};
showOneButtonDialog(context.getString(R.string.app_name), buffer, context.getString(R.string.ok), listener, true);
}
public void showSettingDialog() {
View layout = LayoutInflater.from(context).inflate(R.layout.view_setting, null);
TextView textView = (TextView) layout.findViewById(R.id.current_stacksize);
textView.setText(context.getText(R.string.undostacksize) + " : " + SharedPreferencesFactory.getInteger(context, SharedPreferencesFactory.StackSize));
SeekBar seekBar = (SeekBar) layout.findViewById(R.id.stacksize);
seekBar = SeekBarFactory.getInstance().getStackSeekBar(context, seekBar, textView);
Button button = (Button) layout.findViewById(R.id.clearcache);
button.setText(context.getString(R.string.clearcache));
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MyProgressDialog.show(context, null, context.getString(R.string.clearcacheing));
AsynImageLoader.setOnClearCacheFinishListener(new AsynImageLoader.OnClearCacheFinishListener() {
@Override
public void clearCacheFinish() {
MyProgressDialog.DismissDialog();
Toast.makeText(context, context.getString(R.string.clearcachesuccess), Toast.LENGTH_SHORT).show();
}
});
AsynImageLoader.clearCache();
}
});
Button deletePaint = (Button) layout.findViewById(R.id.deletePaint);
deletePaint.setText(context.getString(R.string.deleteAllPaints));
deletePaint.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MyDialogFactory myDialogFactory = new MyDialogFactory(context);
myDialogFactory.showDeletePaintsDialog();
}
});
Button checkupdate = (Button) layout.findViewById(R.id.checkupdate);
checkupdate.setText(context.getString(R.string.checkupdate));
checkupdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
UmengUtil.checkUpdate(context);
}
});
Button button2 = (Button) layout.findViewById(R.id.joinQQGroup);
button2.setText(context.getString(R.string.joinGroup));
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SNSUtil.joinQQGroup(context);
}
});
RadioGroup radioGroup = (RadioGroup) layout.findViewById(R.id.radiogroup);
initLanguageRadioGroup(radioGroup);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.CN:
MyApplication.setLanguageCode(context, 1);
dismissDialog();
MyApplication.restart(context);
break;
case R.id.TW:
MyApplication.setLanguageCode(context, 2);
dismissDialog();
MyApplication.restart(context);
break;
case R.id.EN:
MyApplication.setLanguageCode(context, 3);
dismissDialog();
MyApplication.restart(context);
break;
}
}
});
showBlankDialog(context.getString(R.string.action_settings), layout);
}
private void initLanguageRadioGroup(RadioGroup radioGroup) {
int lancode = MyApplication.getCurrentLanguageCode(context);
if (lancode == 1) {
((RadioButton) radioGroup.getChildAt(0)).setChecked(true);
} else if (lancode == 2) {
((RadioButton) radioGroup.getChildAt(1)).setChecked(true);
} else if (lancode == 3) {
((RadioButton) radioGroup.getChildAt(2)).setChecked(true);
}
}
private void showDeletePaintsDialog() {
StringBuffer buffer = new StringBuffer();
buffer.append(context.getString(R.string.confirmDeleteAllPaints) + "\n");
View.OnClickListener listener2 = new View.OnClickListener() {
@Override
public void onClick(View view) {
dismissDialog();
}
};
View.OnClickListener listener1 = new View.OnClickListener() {
@Override
public void onClick(View view) {
dismissDialog();
FileUtils.deleteAllPaints();
Toast.makeText(context, context.getString(R.string.deleteAllPaintsSuccess), Toast.LENGTH_SHORT).show();
}
};
showTwoButtonDialog(buffer, context.getString(R.string.delete), context.getString(R.string.cancel), listener1, listener2, true);
}
public void showCommentDialog() {
StringBuffer buffer = new StringBuffer();
buffer.append(context.getString(R.string.commentDialogContent) + "\n");
View.OnClickListener listener2 = new View.OnClickListener() {
@Override
public void onClick(View view) {
dismissDialog();
}
};
View.OnClickListener listener1 = new View.OnClickListener() {
@Override
public void onClick(View view) {
dismissDialog();
CommentUtil.commentApp(context);
}
};
showTwoButtonDialog(buffer, context.getString(R.string.gocomment), context.getString(R.string.nexttime), listener1, listener2, true);
}
public void showUnLockdialog(int status, final OnUnLockImageSuccessListener commentSuccessListener) {
switch (status) {
//status == 1 comment unlock
case 1:
StringBuffer buffer = new StringBuffer();
buffer.append(context.getString(R.string.giveme5stars) + "\n");
View.OnClickListener listener2 = new View.OnClickListener() {
@Override
public void onClick(View view) {
dismissDialog();
}
};
View.OnClickListener listener1 = new View.OnClickListener() {
@Override
public void onClick(View view) {
dismissDialog();
CommentUtil.commentApp(context, commentSuccessListener);
}
};
showTwoButtonDialog(buffer, context.getString(R.string.gocomment), context.getString(R.string.cancel), listener1, listener2, true);
break;
case 2:
//status == 2 share unlock
StringBuffer buffer2 = new StringBuffer();
buffer2.append(context.getString(R.string.sharemeunlock) + "\n");
View.OnClickListener listener4 = new View.OnClickListener() {
@Override
public void onClick(View view) {
dismissDialog();
}
};
View.OnClickListener listener3 = new View.OnClickListener() {
@Override
public void onClick(View view) {
dismissDialog();
SNSUtil.shareApp(context, commentSuccessListener);
}
};
showTwoButtonDialog(buffer2, context.getString(R.string.share), context.getString(R.string.cancel), listener3, listener4, true);
break;
}
}
public void showPaintFirstOpenDialog() {
StringBuffer buffer = new StringBuffer();
buffer.append(context.getString(R.string.paintHint));
showOnceTimesContentDialog(context.getString(R.string.welcomeusethis), buffer, SharedPreferencesFactory.PaintHint);
}
public void showPaintFirstOpenSaveDialog() {
StringBuffer buffer = new StringBuffer();
buffer.append(context.getString(R.string.paintHint2));
showOnceTimesContentDialog(context.getString(R.string.welcomeusethis), buffer, SharedPreferencesFactory.PaintHint2);
}
public void showAddWordsDialog(final OnAddWordsSuccessListener onAddWordsSuccessListener) {
View layout = LayoutInflater.from(context).inflate(R.layout.view_addwords, null);
final EditText editText = (EditText) layout.findViewById(R.id.addeditwords);
RadioGroup radioGroup = (RadioGroup) layout.findViewById(R.id.radiogroup);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
switch (i) {
case R.id.small:
editText.setTextSize(TypedValue.COMPLEX_UNIT_SP, DragTextViewFactory.getInstance().SmallTextSize);
break;
case R.id.middle:
editText.setTextSize(TypedValue.COMPLEX_UNIT_SP, DragTextViewFactory.getInstance().MiddleTextSize);
break;
case R.id.large:
editText.setTextSize(TypedValue.COMPLEX_UNIT_SP, DragTextViewFactory.getInstance().BigTextSize);
break;
case R.id.huge:
editText.setTextSize(TypedValue.COMPLEX_UNIT_SP, DragTextViewFactory.getInstance().HugeSize);
break;
}
}
});
ColorPickerSeekBar colorPicker = (ColorPickerSeekBar) layout.findViewById(R.id.seekcolorpicker);
colorPicker.setOnColorSeekbarChangeListener(new ColorPickerSeekBar.OnColorSeekBarChangeListener() {
@Override
public void onColorChanged(SeekBar seekBar, int color, boolean b) {
editText.setTextColor(color);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!editText.getText().toString().trim().isEmpty()) {
dismissDialog();
onAddWordsSuccessListener.addWordsSuccess(DragTextViewFactory.getInstance().createUserWordTextView(context, editText.getText().toString(), editText.getCurrentTextColor(), (int) editText.getTextSize()));
} else {
Toast.makeText(context, context.getString(R.string.nowords), Toast.LENGTH_SHORT).show();
}
}
};
showBlankDialog(context.getString(R.string.addtext), layout, listener);
}
public void showRepaintDialog(View.OnClickListener confirm) {
StringBuffer buffer = new StringBuffer();
buffer.append(context.getString(R.string.confirmRepaint) + "\n");
View.OnClickListener listener2 = new View.OnClickListener() {
@Override
public void onClick(View view) {
dismissDialog();
}
};
showTwoButtonDialog(buffer, context.getString(R.string.repaint), context.getString(R.string.cancel), confirm, listener2, true);
}
public void showPleaseUpdateVersionDialog() {
StringBuffer buffer = new StringBuffer();
buffer.append(context.getString(R.string.currentVersionIsntSupport) + "\n");
View.OnClickListener listener2 = new View.OnClickListener() {
@Override
public void onClick(View view) {
dismissDialog();
}
};
View.OnClickListener listener1 = new View.OnClickListener() {
@Override
public void onClick(View view) {
dismissDialog();
UmengUtil.checkUpdate(context);
}
};
showTwoButtonDialog(buffer, context.getString(R.string.updateVersion), context.getString(R.string.cancel), listener1, listener2, true);
}
public void showAddBorderDialog(final OnChangeBorderListener onChangeBorderListener) {
View layout = LayoutInflater.from(context).inflate(R.layout.view_addborder, null);
final ImageView border1 = (ImageView) layout.findViewById(R.id.xiangkuang1);
final ImageView border2 = (ImageView) layout.findViewById(R.id.xiangkuang2);
drawableid = 1;
final View.OnClickListener changeBorderOnclickListener = new View.OnClickListener() {
@Override
public void onClick(View view) {
if (view.getId() == border1.getId()) {
border1.setBackgroundResource(R.drawable.maincolor_border_bg);
drawableid = 1;
border2.setBackgroundResource(0);
} else {
border2.setBackgroundResource(R.drawable.maincolor_border_bg);
drawableid = 2;
border1.setBackgroundResource(0);
}
}
};
border1.setOnClickListener(changeBorderOnclickListener);
border2.setOnClickListener(changeBorderOnclickListener);
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View view) {
dismissDialog();
if (drawableid == 1) {
onChangeBorderListener.changeBorder(R.drawable.xiangkuang, DensityUtil.dip2px(context, 36), DensityUtil.dip2px(context, 36), DensityUtil.dip2px(context, 21), DensityUtil.dip2px(context, 21));
} else {
onChangeBorderListener.changeBorder(R.drawable.xiangkuang2, DensityUtil.dip2px(context, 16), DensityUtil.dip2px(context, 16), DensityUtil.dip2px(context, 16), DensityUtil.dip2px(context, 16));
}
}
};
showBlankDialog(context.getString(R.string.addborder), layout, listener);
}
public void showAddQQgroup() {
StringBuffer buffer = new StringBuffer();
buffer.append(context.getString(R.string.addQQgroupContent) + "\n");
View.OnClickListener listener2 = new View.OnClickListener() {
@Override
public void onClick(View view) {
dismissDialog();
}
};
View.OnClickListener listener1 = new View.OnClickListener() {
@Override
public void onClick(View view) {
dismissDialog();
SNSUtil.joinQQGroup(context);
}
};
showTwoButtonDialog(buffer, context.getString(R.string.addQQgroup), context.getString(R.string.nexttime), listener1, listener2, true);
}
public void showBuxianButtonClickDialog() {
showOnceTimesContentDialog(context.getString(R.string.buxianfunction), context.getString(R.string.buxianfunctionhint), SharedPreferencesFactory.BuXianButtonClickDialogEnable);
}
public void showBuxianFirstPointSetDialog() {
showOnceTimesContentDialog(context.getString(R.string.buxianfunction), context.getString(R.string.buxianfirstpointsethint), SharedPreferencesFactory.BuXianFirstPointDialogEnable);
}
public void showBuxianNextPointSetDialog() {
showOnceTimesContentDialog(context.getString(R.string.buxianfunction), context.getString(R.string.buxiannextpointsethint), SharedPreferencesFactory.BuXianNextPointDialogEnable);
}
public void showPickColorHintDialog() {
showOnceTimesContentDialog(context.getString(R.string.pickcolor), context.getString(R.string.pickcolorhint), SharedPreferencesFactory.PickColorDialogEnable);
}
private void showOnceTimesContentDialog(String title, CharSequence contentstr, final String whichDialog) {
if (SharedPreferencesFactory.getBoolean(context, whichDialog, true)) {
View layout = LayoutInflater.from(context).inflate(R.layout.view_dialog_with_checkbox, null);
TextView content = (TextView) layout.findViewById(R.id.content);
final CheckBox checkBox = (CheckBox) layout.findViewById(R.id.checkbox_dontshow);
content.setText(contentstr);
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
if (checkBox.isChecked()) {
SharedPreferencesFactory.saveBoolean(context, whichDialog, false);
}
dismissDialog();
}
};
showBlankDialog(title, layout, listener);
}
}
public void showPaintHintDialog() {
showPaintFirstOpenDialog();
if (!dialog.isShowing()) {
showPaintFirstOpenSaveDialog();
}
}
public void showLoginDialog(final OnLoginSuccessListener onLoginSuccessListener) {
StringBuffer buffer = new StringBuffer();
buffer.append(context.getString(R.string.logincontent) + "\n");
View.OnClickListener listener2 = new View.OnClickListener() {
@Override
public void onClick(View view) {
UmengLoginUtil.getInstance().faceBookLogin(context, onLoginSuccessListener);
}
};
View.OnClickListener listener1 = new View.OnClickListener() {
@Override
public void onClick(View view) {
UmengLoginUtil.getInstance().qqLogin((Activity) context, onLoginSuccessListener);
}
};
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
showTwoImageDialog(buffer, context.getResources().getDrawable(R.drawable.umeng_socialize_qq_on), context.getString(R.string.qq), context.getResources().getDrawable(R.drawable.umeng_socialize_facebook), context.getString(R.string.facebooklogin), listener1, listener2, true);
} else {
showTwoImageDialog(buffer, context.getResources().getDrawable(R.drawable.umeng_socialize_qq_on, context.getTheme()), context.getString(R.string.qq), context.getResources().getDrawable(R.drawable.umeng_socialize_facebook, context.getTheme()), context.getString(R.string.facebooklogin), listener1, listener2, true);
}
}
public void showFirstTimeLoginDialog(final OnLoginSuccessListener onLoginSuccessListener) {
StringBuffer buffer = new StringBuffer();
buffer.append(context.getString(R.string.logincontentfirst) + "\n");
View.OnClickListener listener2 = new View.OnClickListener() {
@Override
public void onClick(View view) {
UmengLoginUtil.getInstance().faceBookLogin(context, onLoginSuccessListener);
}
};
View.OnClickListener listener1 = new View.OnClickListener() {
@Override
public void onClick(View view) {
UmengLoginUtil.getInstance().qqLogin((Activity) context, onLoginSuccessListener);
}
};
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
showTwoImageDialog(buffer, context.getResources().getDrawable(R.drawable.umeng_socialize_qq_on), context.getString(R.string.qq), context.getResources().getDrawable(R.drawable.umeng_socialize_facebook), context.getString(R.string.facebooklogin), listener1, listener2, true);
} else {
showTwoImageDialog(buffer, context.getResources().getDrawable(R.drawable.umeng_socialize_qq_on, context.getTheme()), context.getString(R.string.qq), context.getResources().getDrawable(R.drawable.umeng_socialize_facebook, context.getTheme()), context.getString(R.string.facebooklogin), listener1, listener2, true);
}
}
public void showGradualHintDialog() {
showOnceTimesContentDialog(context.getString(R.string.gradualModel), context.getString(R.string.gradualModelHint), SharedPreferencesFactory.GradualModel);
}
}