package com.swifty.fillcolor.controller.paint;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageView;
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.R;
import com.swifty.fillcolor.controller.BaseActivity;
import com.swifty.fillcolor.factory.MyDialogFactory;
import com.swifty.fillcolor.model.SaveImageAsyn;
import com.swifty.fillcolor.util.ShareImageUtil;
import com.swifty.fillcolor.util.UmengUtil;
import com.swifty.fillcolor.view.DragedTextView;
import com.swifty.fillcolor.view.ImageButton_define;
import com.swifty.fillcolor.view.MyProgressDialog;
import butterknife.Bind;
import butterknife.ButterKnife;
/**
* Created by macpro001 on 20/8/15.
*/
public class AdvancePaintActivity extends BaseActivity {
public static int Offest = MyApplication.screenWidth / 40;
@Bind(R.id.addwords)
ImageButton_define addwords;
@Bind(R.id.addvoice)
Button addvoice;
@Bind(R.id.current_image)
ImageView currentImage;
@Bind(R.id.share)
ImageButton_define share;
@Bind(R.id.repaint)
ImageButton_define repaint;
@Bind(R.id.paintview)
FrameLayout paintview;
String imageUri;
MyDialogFactory myDialogFactory;
@Bind(R.id.addborder)
ImageButton_define addborder;
@Bind(R.id.border)
ImageView border;
@Bind(R.id.cloudgallery)
ImageButton_define cloudgallery;
@Bind(R.id.cancel)
Button cancel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initWindows();
setContentView(R.layout.activity_paint_advance);
ButterKnife.bind(this);
myDialogFactory = new MyDialogFactory(AdvancePaintActivity.this);
imageUri = getIntent().getStringExtra("imagepath");
currentImage.setImageBitmap(BitmapFactory.decodeFile(imageUri));
addwords.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
addwordsDialog();
}
});
addborder.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
addBorderDialog();
}
});
share.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
shareDrawable();
}
});
repaint.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
repaintPictureDialog();
}
});
cloudgallery.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
uploadImage();
}
});
cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
}
private void uploadImage() {
Toast.makeText(AdvancePaintActivity.this, getString(R.string.comingsoon), Toast.LENGTH_SHORT).show();
}
private void initWindows() {
WindowManager.LayoutParams params = getWindow().getAttributes();
params.width = MyApplication.screenWidth;
this.getWindow().setAttributes(params);
}
private void repaintPictureDialog() {
View.OnClickListener onClickListener = new View.OnClickListener() {
@Override
public void onClick(View view) {
myDialogFactory.dismissDialog();
setResult(MyApplication.RepaintResult);
finish();
}
};
myDialogFactory.showRepaintDialog(onClickListener);
}
private void shareDrawable() {
paintview.setDrawingCacheEnabled(true);
UmengUtil.analysitic(AdvancePaintActivity.this, UmengUtil.SHAREIMAGE, imageUri);
paintview.destroyDrawingCache();
paintview.buildDrawingCache();
MyProgressDialog.show(AdvancePaintActivity.this, null, getString(R.string.savingimage));
SaveImageAsyn saveImageAsyn = new SaveImageAsyn();
saveImageAsyn.execute(paintview.getDrawingCache(), MyApplication.SHAREWORK);
saveImageAsyn.setOnSaveSuccessListener(new SaveImageAsyn.OnSaveFinishListener() {
@Override
public void onSaveFinish(String path) {
MyProgressDialog.DismissDialog();
if (path == null) {
Toast.makeText(AdvancePaintActivity.this, getString(R.string.saveFailed), Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(AdvancePaintActivity.this, getString(R.string.saveSuccess) + path, Toast.LENGTH_SHORT).show();
ShareImageUtil.getInstance(AdvancePaintActivity.this).shareImg(path);
}
}
});
}
private void addwordsDialog() {
OnAddWordsSuccessListener addwordssuccess = new OnAddWordsSuccessListener() {
@Override
public void addWordsSuccess(DragedTextView dragedTextView) {
((ViewGroup) currentImage.getParent()).addView(dragedTextView);
}
};
myDialogFactory.showAddWordsDialog(addwordssuccess);
}
private void addBorderDialog() {
OnChangeBorderListener addborderlistener = new OnChangeBorderListener() {
@Override
public void changeBorder(int drawableid, int pt, int pd, int pl, int pr) {
if (drawableid != 0) {
border.setBackgroundResource(drawableid);
currentImage.setPadding(pl, pt, pr, pd);
currentImage.requestLayout();
}
paintview.requestLayout();
}
};
myDialogFactory.showAddBorderDialog(addborderlistener);
}
}