package com.fancl.iloyalty.activity.sharing; import java.util.List; import android.content.DialogInterface; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import com.fancl.iloyalty.Constants; import com.fancl.iloyalty.R; import com.fancl.iloyalty.activity.AndroidProjectFrameworkActivity; import com.fancl.iloyalty.asynctask.EarnCreditAsyncTask; import com.fancl.iloyalty.asynctask.callback.EarnCreditAsyncTaskCallback; import com.fancl.iloyalty.exception.FanclException; import com.fancl.iloyalty.factory.CustomServiceFactory; import com.fancl.iloyalty.factory.GeneralServiceFactory; import com.fancl.iloyalty.pojo.DetailContent; import com.fancl.iloyalty.pojo.Event; import com.fancl.iloyalty.pojo.Product; import com.fancl.iloyalty.responseimpl.FanclGeneralResult; import com.fancl.iloyalty.service.LocaleService; import com.fancl.iloyalty.util.LogController; import com.gt.snssharinglibrary.Config; import com.gt.snssharinglibrary.pojo.SNSShareDetail; import com.gt.snssharinglibrary.service.SNSService; import com.gt.snssharinglibrary.service.SNSServiceCallback; import com.gt.snssharinglibrary.service.impl.TwitterServiceImpl; public class TwitterSharingDialogActivity extends AndroidProjectFrameworkActivity implements SNSServiceCallback, EarnCreditAsyncTaskCallback { private final int MAX_COUNT = 140; private boolean fromProduct; private Product product; private DetailContent detailContent; private String sharingTitle; private LocaleService localeService; private SNSService twitterServiceImpl; private Button cancelButton; private Button shareButton; private TextView remainCounterTextView; private EditText shareEditText; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Config.TWITTER_CONSUMER_KEY = "jvKys4Lr2afHg7WxvQ4M1g"; Config.TWITTER_CONSUMER_SECRET = "Z9icVCBu2j1Da1O2mMEiggkBcXgmfk2OjAE7qvrV0A"; Config.TWITTER_DIALOG_CLOSE_BTN_RESOURCES_ID = R.drawable.btn_cross; twitterServiceImpl = new TwitterServiceImpl(TwitterSharingDialogActivity.this); twitterServiceImpl.setSNSServiceCallback(TwitterSharingDialogActivity.this); localeService = GeneralServiceFactory.getLocaleService(); if (getIntent().getStringExtra(Constants.SHARING_FORMAT_KEY).equals("product")) { fromProduct = true; product = (Product) getIntent().getSerializableExtra(Constants.SHARING_CONTENT_KEY); sharingTitle = localeService.textByLangaugeChooser(TwitterSharingDialogActivity.this, product.getTitleEn(), product.getTitleZh(), product.getTitleSc()); } else { fromProduct = false; detailContent = (DetailContent) getIntent().getSerializableExtra(Constants.SHARING_CONTENT_KEY); sharingTitle = detailContent.getTitleStr(); } setContentView(R.layout.twitter_sharing_dialog); this.setupSpaceLayout(); } private void setupSpaceLayout() { cancelButton = (Button) findViewById(R.id.tw_cancel_btn); cancelButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub cancelAction(); } }); shareButton = (Button) findViewById(R.id.tw_share_btn); shareButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub shareAction(); } }); remainCounterTextView = (TextView) findViewById(R.id.tw_remain_text); shareEditText = (EditText) findViewById(R.id.tw_share_input); shareEditText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void afterTextChanged(Editable s) { // TODO Auto-generated method stub remainCounterTextView.setText(String.valueOf((MAX_COUNT - shareEditText.getText().toString().length()))); } }); shareEditText.setText(sharingTitle); remainCounterTextView.setText(String.valueOf((MAX_COUNT - shareEditText.getText().toString().length()))); } private void cancelAction() { finish(); } private void shareAction() { if (shareEditText.getText().toString().length() > MAX_COUNT) { GeneralServiceFactory.getAlertDialogService().makeNativeDialog(this, "", "Over 140", getString(R.string.ok_btn_title), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int id) { dialog.cancel(); } }, "", null, false, false); return; } String message = shareEditText.getText().toString(); SNSShareDetail snsShareDetail = new SNSShareDetail(message); twitterServiceImpl.post(TwitterSharingDialogActivity.this, snsShareDetail); } @Override public void logginStatus(int snsCode, boolean isSuccessLogin, Object errorObject) { LogController.log("logginStatus >> "+ snsCode + " " + isSuccessLogin); } @Override public void getProfileStatus(int snsCode, boolean isSuccessGetProfile, Object errorObject) { LogController.log("getProfileStatus >> "+ snsCode + " " + isSuccessGetProfile); } @Override public void loggoutStatus(int snsCode, boolean isSuccessLogout, Object errorObject) { LogController.log("loggoutStatus >> "+ snsCode + " " + isSuccessLogout); } @Override public void postStatus(int snsCode, boolean isSuccessPost, Object errorObject) { LogController.log("postStatus >> "+ snsCode + " " + isSuccessPost); if (isSuccessPost) { String eventId = null; try { List<Event> events; if (fromProduct) { events = CustomServiceFactory.getPromotionService().getEventItemListWithItemId(product.getObjectId()); } else { events = CustomServiceFactory.getPromotionService().getEventItemListWithItemId(detailContent.getDetailId()); } for (int i = 0; i < events.size(); i++) { Event event = events.get(i); if (event.getEventType().equals("share")) { eventId = event.getEventId(); break; } } } catch (FanclException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (eventId != null) { EarnCreditAsyncTask earnCreditAsyncTask = new EarnCreditAsyncTask(this); earnCreditAsyncTask.execute(eventId); return; } finish(); } } @Override public void getFriendsStatus(boolean arg0, Object arg1, Object arg2) { // TODO Auto-generated method stub } @Override public void getFeedsStatus(boolean isSuccess, Object feedsResultObject, Object errorObject) { // TODO Auto-generated method stub } @Override public void likeFeedStatus(boolean isSuccess, Object feedsResultObject, Object errorObject) { // TODO Auto-generated method stub } @Override public void onPostExecuteCallback(Object results) { // TODO Auto-generated method stub if (results instanceof String) { GeneralServiceFactory.getAlertDialogService().makeNativeDialog(this, "", ("eraned credit: " + ((String)results)), getString(R.string.ok_btn_title), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int id) { dialog.cancel(); } }, "", null, false, false); } else { GeneralServiceFactory.getAlertDialogService().makeNativeDialog(this, "", GeneralServiceFactory.getLocaleService().textByLangaugeChooser(this, ((FanclGeneralResult) results).getErrMsgEn(), ((FanclGeneralResult) results).getErrMsgZh(), ((FanclGeneralResult) results).getErrMsgSc()), getString(R.string.ok_btn_title), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int id) { dialog.cancel(); } }, "", null, false, false); } finish(); } }