package com.fancl.iloyalty.activity.setting; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.RadioButton; import android.widget.RelativeLayout; import com.fancl.iloyalty.AndroidProjectApplication; import com.fancl.iloyalty.Constants; import com.fancl.iloyalty.R; import com.fancl.iloyalty.activity.MainTabActivity; import com.fancl.iloyalty.activity.login.WelcomeActivity; import com.fancl.iloyalty.activity.product.ProductQandAActivity; import com.fancl.iloyalty.asynctask.GetUserReceiptSettingAsyncTask; import com.fancl.iloyalty.asynctask.SetUserReceiptSettingAsyncTask; import com.fancl.iloyalty.asynctask.callback.GetUserReceiptSettingAsyncTaskCallback; import com.fancl.iloyalty.asynctask.callback.SetUserReceiptSettingAsyncTaskCallback; import com.fancl.iloyalty.exception.FanclException; import com.fancl.iloyalty.factory.CustomServiceFactory; import com.fancl.iloyalty.factory.GeneralServiceFactory; import com.fancl.iloyalty.pojo.ReceiptSetting; import com.fancl.iloyalty.responseimpl.FanclGeneralResult; import com.fancl.iloyalty.service.impl.LocaleServiceImpl.LANGUAGE_TYPE; import com.fancl.iloyalty.util.LogController; import com.gt.snssharinglibrary.Config; import com.gt.snssharinglibrary.Config.SHARING_TYPE; import com.gt.snssharinglibrary.service.SNSService; import com.gt.snssharinglibrary.service.SNSServiceCallback; import com.gt.snssharinglibrary.service.SNSServiceImpl.SNS_LOGIN_TYPE; import com.gt.snssharinglibrary.service.impl.FacebookService30Impl; import com.gt.snssharinglibrary.service.impl.TwitterServiceImpl; public class SettingActivity extends MainTabActivity implements GetUserReceiptSettingAsyncTaskCallback, SetUserReceiptSettingAsyncTaskCallback, SNSServiceCallback { // WRT <<iloyalty_flow_V1.7_20120713.pdf>> screen 6.6 private View settingLayout; private Button facebookButton; private Button twitterButton; private Button emailButton; private Button loginButton; private RadioButton enButton; private RadioButton tcButton; private RadioButton scButton; private String emailBtnBool = "N"; private boolean isBackBlocked = true; private SNSService facebookServiceImpl; private SNSService twitterServiceImpl; private final int FACEBOOK_CODE = 0; private final int TWITTER_CODE = 1; /** 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(SettingActivity.this); twitterServiceImpl.setSNSServiceCallback(SettingActivity.this); Config.facebook30SharingType = SHARING_TYPE.WEB_DIALOG; Config.FACEBOOK_PERMISSIONS = new String[] { "email", "user_birthday", "read_friendlists", "user_likes" }; facebookServiceImpl = new FacebookService30Impl(); facebookServiceImpl.setSNSServiceCallback(SettingActivity.this); facebookServiceImpl.onCreate(SettingActivity.this, savedInstanceState); headerTitleTextView.setText(this.getResources().getString(R.string.setting)); this.setupSpaceLayout(); this.setupMenuButtonListener(4, true); if (CustomServiceFactory.getAccountService().isLogin()) { if (checkLoadingDialog()) { loadingDialog.loading(); } GetUserReceiptSettingAsyncTask getUserReceiptSettingAsyncTask = new GetUserReceiptSettingAsyncTask(this); getUserReceiptSettingAsyncTask.execute(); } navigationBarLeftBtn.setVisibility(View.VISIBLE); navigationBarLeftBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub onBackPressed(); } }); } private void setupSpaceLayout() { settingLayout = (RelativeLayout) this.getLayoutInflater().inflate( R.layout.setting_page, null); spaceLayout.addView(settingLayout, new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); facebookButton = (Button)findViewById(R.id.facebookLogin); if (facebookServiceImpl.isLogged(SettingActivity.this)) { facebookButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_setting_logout)); facebookButton.setText(getResources().getString(R.string.logout)); } else { facebookButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_setting_login)); facebookButton.setText(getResources().getString(R.string.login_btn_title)); } facebookButton.setOnClickListener(new Button.OnClickListener(){ @SuppressWarnings("deprecation") @Override public void onClick(View v) { if (facebookServiceImpl.isLogged(SettingActivity.this)) { GeneralServiceFactory.getAlertDialogService().makeNativeDialog(SettingActivity.this, "", getResources().getString(R.string.alert_confirm_logout), getString(R.string.confirm_btn_title), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int id) { // if this button is clicked, close facebookServiceImpl.logout(SettingActivity.this, handler); try { CustomServiceFactory.getSettingService().addUserLogWithSection("Setting", "", "", "", "Facebook", "Logout", ""); } catch (FanclException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }, getString(R.string.cancel_btn_title), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int id) { // if this button is clicked, close dialog.cancel(); } }, false, false); } else { facebookServiceImpl.login(SettingActivity.this, handler, SNS_LOGIN_TYPE.LOGIN_TYPE_NORMAL_LOGIN); try { CustomServiceFactory.getSettingService().addUserLogWithSection("Setting", "", "", "", "Facebook", "Login", ""); } catch (FanclException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }); twitterButton = (Button)findViewById(R.id.twitterLogin); if (twitterServiceImpl.isLogged(SettingActivity.this)) { twitterButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_setting_logout)); twitterButton.setText(getResources().getString(R.string.logout)); } else { twitterButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_setting_login)); twitterButton.setText(getResources().getString(R.string.login_btn_title)); } twitterButton.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View v) { if (twitterServiceImpl.isLogged(SettingActivity.this)) { GeneralServiceFactory.getAlertDialogService().makeNativeDialog(SettingActivity.this, "", getResources().getString(R.string.alert_confirm_logout), getString(R.string.confirm_btn_title), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int id) { // if this button is clicked, close twitterServiceImpl.logout(SettingActivity.this, handler); try { CustomServiceFactory.getSettingService().addUserLogWithSection("Setting", "", "", "", "Twitter", "Logout", ""); } catch (FanclException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }, getString(R.string.cancel_btn_title), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int id) { // if this button is clicked, close dialog.cancel(); } }, false, false); } else { twitterServiceImpl.login(SettingActivity.this, handler, SNS_LOGIN_TYPE.LOGIN_TYPE_NORMAL_LOGIN); try { CustomServiceFactory.getSettingService().addUserLogWithSection("Setting", "", "", "", "Twitter", "Login", ""); } catch (FanclException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }); emailButton = (Button)findViewById(R.id.email_switch); emailButton.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub if (emailBtnBool.equals("Y")) { emailBtnBool = "N"; emailButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_setting_cursor_off)); } else { emailBtnBool = "Y"; emailButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_setting_cursor_on)); } } }); loginButton = (Button)findViewById(R.id.login_btn); loginButton.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub GeneralServiceFactory.getAlertDialogService().makeNativeDialog(SettingActivity.this, "", getResources().getString(R.string.alert_confirm_logout), getString(R.string.confirm_btn_title), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int id) { // if this button is clicked, close logoutAction(); try { CustomServiceFactory.getSettingService().addUserLogWithSection("Setting", "", "", "", "", "Logout", ""); } catch (FanclException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }, getString(R.string.cancel_btn_title), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int id) { // if this button is clicked, close dialog.cancel(); } }, false, false); } }); enButton = (RadioButton) findViewById(R.id.enRadioButton); tcButton = (RadioButton) findViewById(R.id.tcRadioButton); scButton = (RadioButton) findViewById(R.id.scRadioButton); LANGUAGE_TYPE languageType = GeneralServiceFactory.getLocaleService().getCurrentLanguageType(); if (languageType.equals(LANGUAGE_TYPE.EN)) { enButton.setChecked(true); } else if (languageType.equals(LANGUAGE_TYPE.TC)) { tcButton.setChecked(true); } else if (languageType.equals(LANGUAGE_TYPE.SC)) { scButton.setChecked(true); } enButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub GeneralServiceFactory.getLocaleService().setEnglish(SettingActivity.this, false); changeLanguage(); } }); tcButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub GeneralServiceFactory.getLocaleService().setTChinese(SettingActivity.this, false); changeLanguage(); } }); scButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub GeneralServiceFactory.getLocaleService().setSChinese(SettingActivity.this, false); changeLanguage(); } }); } private void logoutAction() { SharedPreferences sharedPreferences = AndroidProjectApplication.application.getSharedPreferences( Constants.SHARED_PREFERENCE_APPLICATION_KEY, Context.MODE_PRIVATE); sharedPreferences.edit().putString(Constants.SHARED_PREFERENCE_MEMBER_ID_KEY, "").commit(); Intent intent = new Intent(SettingActivity.this, WelcomeActivity.class); application.removeExistingActivity(); startActivity(intent); } @Override public void onPostExecuteCallback(FanclGeneralResult results) { // TODO Auto-generated method stub isBackBlocked = false; if (loadingDialog != null) { loadingDialog.stop(); } onBackPressed(); } @Override public void onPostExecuteCallback(Object results) { // TODO Auto-generated method stub if (loadingDialog != null) { loadingDialog.stop(); } if (results == null) { return; } if (results instanceof ReceiptSetting) { if (((ReceiptSetting) results).getStatus() == 0) { if (((ReceiptSetting) results).getEmailReceipt().equals("Y")) { emailBtnBool = "Y"; emailButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_setting_cursor_on)); } } } 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) { // if this button is clicked, close // current activity dialog.cancel(); } }, "", null, false, false); } } @Override public void onBackPressed() { if (CustomServiceFactory.getAccountService().isLogin()) { if (isBackBlocked) { if (checkLoadingDialog()) { loadingDialog.loading(); } SetUserReceiptSettingAsyncTask setUserReceiptSettingAsyncTask = new SetUserReceiptSettingAsyncTask(this); setUserReceiptSettingAsyncTask.execute("N", emailBtnBool); } else { super.onBackPressed(); } } else { super.onBackPressed(); } } @Override public void logginStatus(int snsCode, boolean isSuccessLogin, Object errorObject) { LogController.log("logginStatus >> "+ snsCode + " " + isSuccessLogin); if (!isSuccessLogin) { return; } if (snsCode == FACEBOOK_CODE) { handler.post(new Runnable() { @Override public void run() { // TODO Auto-generated method stub facebookButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_setting_logout)); facebookButton.setText(getResources().getString(R.string.logout)); } }); } else if (snsCode == TWITTER_CODE) { handler.post(new Runnable() { @Override public void run() { // TODO Auto-generated method stub twitterButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_setting_logout)); twitterButton.setText(getResources().getString(R.string.logout)); } }); } } @Override public void getProfileStatus(int snsCode, boolean isSuccessGetProfile, Object errorObject) { LogController.log("getProfileStatus >> "+ snsCode + " " + isSuccessGetProfile); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (facebookServiceImpl != null) { facebookServiceImpl.onActivityResult(this, requestCode, resultCode, data); } } @Override public void loggoutStatus(int snsCode, boolean isSuccessLogout, Object errorObject) { if (!isSuccessLogout) { return; } LogController.log("loggoutStatus >> "+ snsCode + " " + isSuccessLogout); if (snsCode == FACEBOOK_CODE) { facebookButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_setting_login)); facebookButton.setText(getResources().getString(R.string.login_btn_title)); } else if (snsCode == TWITTER_CODE) { twitterButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_setting_login)); twitterButton.setText(getResources().getString(R.string.login_btn_title)); } } @Override public void postStatus(int snsCode, boolean isSuccessPost, Object errorObject) { LogController.log("postStatus >> "+ snsCode + " " + isSuccessPost); } @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 } public void changeLanguage(){ // loginButton.setText(getResources().getString(R.string.logout)); // // if (twitterServiceImpl.isLogged(SettingActivity.this)) { // twitterButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_setting_logout)); // twitterButton.setText(getResources().getString(R.string.logout)); // } // else { // twitterButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_setting_login)); // twitterButton.setText(getResources().getString(R.string.login_btn_title)); // } // // if (facebookServiceImpl.isLogged(SettingActivity.this)) { // facebookButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_setting_logout)); // facebookButton.setText(getResources().getString(R.string.logout)); // } // else { // facebookButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_setting_login)); // facebookButton.setText(getResources().getString(R.string.login_btn_title)); // } // // headerTitleTextView.setText(this.getResources().getString(R.string.setting)); // // TextView language = (TextView)findViewById(R.id.languageText); // language.setText(getResources().getString(R.string.language)); // // TextView email = (TextView)findViewById(R.id.emailReceiptText); // email.setText(getResources().getString(R.string.email_receipt)); application.resetMenu(); Intent intent = new Intent(SettingActivity.this, SettingActivity.class); startActivity(intent); finish(); } }