package com.yydcdut.note.views.setting.impl; import android.content.Intent; import android.support.design.widget.Snackbar; import android.support.v7.app.AlertDialog; import android.support.v7.widget.Toolbar; import android.util.DisplayMetrics; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.widget.CheckBox; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.TextView; import com.nineoldandroids.animation.Animator; import com.nineoldandroids.animation.AnimatorSet; import com.nineoldandroids.animation.ObjectAnimator; import com.yydcdut.note.R; import com.yydcdut.note.presenters.setting.IFeedbackPresenter; import com.yydcdut.note.presenters.setting.ISettingPresenter; import com.yydcdut.note.presenters.setting.impl.SettingPresenterImpl; import com.yydcdut.note.utils.ActivityCollector; import com.yydcdut.note.utils.AppCompat; import com.yydcdut.note.utils.Const; import com.yydcdut.note.utils.ImageManager.ImageLoaderManager; import com.yydcdut.note.utils.camera.param.Size; import com.yydcdut.note.views.BaseActivity; import com.yydcdut.note.views.camera.impl.AdjustCameraActivity; import com.yydcdut.note.views.setting.ISettingView; import com.yydcdut.note.widget.ColorChooserDialog; import com.yydcdut.note.widget.RoundedImageView; import org.json.JSONException; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.inject.Inject; import butterknife.BindView; import butterknife.ButterKnife; /** * Created by yuyidong on 15-4-1. */ public class SettingActivity extends BaseActivity implements ISettingView, View.OnClickListener { private static final String TAG = SettingActivity.class.getSimpleName(); private Map<String, View> mViewMap; @BindView(R.id.scroll_setting) View mScrollView; @BindView(R.id.layout_scroll_linear) LinearLayout mScrollLinear; @BindView(R.id.layout_toolbar) View mToolbarLayout; @Inject SettingPresenterImpl mSettingPresenter; private boolean mIsHiding = false; private AlertDialog mFontDialog; @Override public boolean setStatusBar() { return false; } @Override public int setContentView() { return R.layout.activity_setting; } @Override public void initInjector() { mActivityComponent.inject(this); mIPresenter = mSettingPresenter; } @Override public void initUiAndListener() { ButterKnife.bind(this); mViewMap = new HashMap<>(); initToolBarUI(); mSettingPresenter.attachView(this); } private void initToolBarUI() { Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); toolbar.setTitle(getResources().getString(R.string.app_setting)); toolbar.setNavigationIcon(R.drawable.ic_arrow_back_white_24dp); AppCompat.setElevation(toolbar, getResources().getDimension(R.dimen.ui_elevation)); } @Override public void initPreferenceSetting() { //cardView View cardView = LayoutInflater.from(this).inflate(R.layout.item_setting_card_top, null); LinearLayout linearLayout = (LinearLayout) cardView.findViewById(R.id.layout_setting_linear); mScrollLinear.addView(cardView); View divider = LayoutInflater.from(this).inflate(R.layout.item_setting_divider, null); mScrollLinear.addView(divider); //title View labelView = LayoutInflater.from(this).inflate(R.layout.item_setting_label, null); ((TextView) labelView.findViewById(R.id.txt_setting_title)).setText(getResources().getString(R.string.preference_setting)); linearLayout.addView(labelView); View themeView = getItemView(); setClick(themeView); setTag(themeView, ISettingPresenter.TAG_THEME); setData(themeView, R.drawable.ic_color_lens_gray_24dp, R.string.theme); linearLayout.addView(themeView); View statusBarView = getItemView(); setClick(statusBarView); setTag(statusBarView, ISettingPresenter.TAG_STATUS_BAR); setData(statusBarView, R.drawable.ic_settings_cell_black_24dp, R.string.status_bar); linearLayout.addView(statusBarView); // View floatingView = getItemView(); // setClick(floatingView); // setTag(floatingView, ISettingPresenter.TAG_FLOATING); // setData(floatingView, R.drawable.ic_stars_gray_24dp, R.string.floationg_action_button_style); // linearLayout.addView(floatingView); View viewSort = getItemView(); setClick(viewSort); setTag(viewSort, ISettingPresenter.TAG_FONT); setData(viewSort, R.drawable.ic_format_color_text_grey_24dp, R.string.font); linearLayout.addView(viewSort); View viewFont = getItemView(); setClick(viewFont); setTag(viewFont, ISettingPresenter.TAG_CATEGORY); setData(viewFont, R.drawable.ic_format_list_numbered_grey_24dp, R.string.edit_category); cancelDivider(viewFont); linearLayout.addView(viewFont); } @Override public void setStatusBarClickable(boolean clickable) { View statusBarView = mViewMap.get(ISettingPresenter.TAG_STATUS_BAR); if (!clickable) { ((TextView) statusBarView.findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_alpha_gray, this)); statusBarView.findViewById(R.id.layout_ripple_setting).setOnClickListener(null); } } @Override public void initAccountSetting() { //cardView View cardView = LayoutInflater.from(this).inflate(R.layout.item_setting_card, null); LinearLayout linearLayout = (LinearLayout) cardView.findViewById(R.id.layout_setting_linear); mScrollLinear.addView(cardView); View divider = LayoutInflater.from(this).inflate(R.layout.item_setting_divider, null); mScrollLinear.addView(divider); //title View labelView = LayoutInflater.from(this).inflate(R.layout.item_setting_label, null); ((TextView) labelView.findViewById(R.id.txt_setting_title)).setText(getResources().getString(R.string.account_setting)); linearLayout.addView(labelView); //QQ View accountView = LayoutInflater.from(this).inflate(R.layout.item_setting_account, null); mViewMap.put(ISettingPresenter.TAG_QQ, accountView); RoundedImageView imageView1 = (RoundedImageView) accountView.findViewById(R.id.img_item_setting_logo); imageView1.setImageResource(R.drawable.ic_person_info_qq); RoundedImageView imageUser1 = (RoundedImageView) accountView.findViewById(R.id.img_item_setting_user); imageUser1.setImageResource(R.drawable.ic_no_user); TextView textName = (TextView) accountView.findViewById(R.id.txt_item_setting_user_name); textName.setText(getResources().getString(R.string.not_login)); linearLayout.addView(accountView); //evernote View accountView2 = LayoutInflater.from(this).inflate(R.layout.item_setting_account, null); mViewMap.put(ISettingPresenter.TAG_EVERNOTE, accountView2); RoundedImageView imageView2 = (RoundedImageView) accountView2.findViewById(R.id.img_item_setting_logo); imageView2.setImageResource(R.drawable.ic_evernote_fab); TextView textName2 = (TextView) accountView2.findViewById(R.id.txt_item_setting_user_name); RoundedImageView imageUser2 = (RoundedImageView) accountView2.findViewById(R.id.img_item_setting_user); imageUser2.setImageResource(R.drawable.ic_no_user); textName2.setText(getResources().getString(R.string.not_login)); linearLayout.addView(accountView2); //cloud View pgView = LayoutInflater.from(this).inflate(R.layout.item_setting_pb, null); ProgressBar pg = (ProgressBar) pgView.findViewById(R.id.pg_setting); pg.setProgress(0); TextView usedView = (TextView) pgView.findViewById(R.id.txt_setting_clound_use); linearLayout.addView(pgView); } @Override public void initQQ(boolean isLogin, String name, String imagePath) { View accountView = mViewMap.get(ISettingPresenter.TAG_QQ); TextView textName1 = (TextView) accountView.findViewById(R.id.txt_item_setting_user_name); textName1.setText(isLogin ? name : getResources().getString(R.string.not_login)); RoundedImageView imageUser1 = (RoundedImageView) accountView.findViewById(R.id.img_item_setting_user); if (isLogin) { ImageLoaderManager.displayImage(imagePath, imageUser1); } } @Override public void initEvernote(boolean isLogin, String name) { View accountView2 = mViewMap.get(ISettingPresenter.TAG_EVERNOTE); TextView textName2 = (TextView) accountView2.findViewById(R.id.txt_item_setting_user_name); RoundedImageView imageUser2 = (RoundedImageView) accountView2.findViewById(R.id.img_item_setting_user); imageUser2.setImageResource(R.drawable.ic_no_user); textName2.setText(getResources().getString(R.string.not_login)); if (isLogin) { imageUser2.setImageResource(R.drawable.ic_evernote_color); textName2.setText(name); } } @Override public void initCameraSetting(boolean isSystem, int cameraNumbers) { //cardView View cardView = LayoutInflater.from(this).inflate(R.layout.item_setting_card, null); LinearLayout linearLayout = (LinearLayout) cardView.findViewById(R.id.layout_setting_linear); mScrollLinear.addView(cardView); View divider = LayoutInflater.from(this).inflate(R.layout.item_setting_divider, null); mScrollLinear.addView(divider); //title View labelView = LayoutInflater.from(this).inflate(R.layout.item_setting_label, null); ((TextView) labelView.findViewById(R.id.txt_setting_title)).setText(getResources().getString(R.string.camera_setting)); linearLayout.addView(labelView); View viewCapture = getItemCheckView(); setClick(viewCapture); setTag(viewCapture, ISettingPresenter.TAG_CAMERA_SYSTEM); setData(viewCapture, R.drawable.ic_photo_camera_grey_24dp, R.string.camera_system); initLocalData(viewCapture, mSettingPresenter.getCameraSystem()); linearLayout.addView(viewCapture); final View camera2View = getItemCheckView(); setClick(camera2View); setTag(camera2View, ISettingPresenter.TAG_CAMERA2); setData(camera2View, R.drawable.ic_camera_grey_24dp, R.string.camera_5_0); initLocalData(camera2View, mSettingPresenter.getCameraAndroidLollipop()); linearLayout.addView(camera2View); final View viewSize = getItemView(); setClick(viewSize); setTag(viewSize, ISettingPresenter.TAG_CAMERA_SIZE); setData(viewSize, R.drawable.ic_crop_original_grey_24dp, R.string.picture_size); linearLayout.addView(viewSize); final View viewSave = getItemCheckView(); setClick(viewSave); setTag(viewSave, ISettingPresenter.TAG_CAMERA_SAVE); setData(viewSave, R.drawable.ic_tune_gray_24dp, R.string.camera_save); initLocalData(viewSave, mSettingPresenter.getCameraSaveSetting()); linearLayout.addView(viewSave); final View viewMirror = getItemCheckView(); setClick(viewMirror); setTag(viewMirror, ISettingPresenter.TAG_CAMERA_MIRROR); setData(viewMirror, R.drawable.ic_compare_gray_24dp, R.string.camera_mirror); initLocalData(viewMirror, mSettingPresenter.getCameraMirrorOpen()); linearLayout.addView(viewMirror); // if (cameraNumbers < 2) { ((TextView) viewMirror.findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_alpha_gray, this)); // } final View viewFix = getItemView(); setClick(viewFix); setTag(viewFix, ISettingPresenter.TAG_CAMERA_FIX); setData(viewFix, R.drawable.ic_style_grey_24dp, R.string.camera_fix); cancelDivider(viewFix); linearLayout.addView(viewFix); if (isSystem) { ((TextView) camera2View.findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_alpha_gray, this)); ((TextView) viewSize.findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_alpha_gray, this)); ((TextView) viewSave.findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_alpha_gray, this)); // ((TextView) viewMirror.findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_alpha_gray,this)); ((TextView) viewFix.findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_alpha_gray, this)); } else { ((TextView) camera2View.findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_gray, this)); ((TextView) viewSize.findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_gray, this)); ((TextView) viewSave.findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_gray, this)); // ((TextView) viewMirror.findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_gray,this)); ((TextView) viewFix.findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_gray, this)); // if (mSettingPresenter.getCameraNumber() < 2) { // ((TextView) viewMirror.findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_alpha_gray)); // } } if (cameraNumbers == 0) { ((TextView) viewCapture.findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_alpha_gray, this)); // ((TextView) cameraViwq.findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_alpha_gray,this)); ((TextView) viewSize.findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_alpha_gray, this)); ((TextView) viewSave.findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_alpha_gray, this)); ((TextView) viewMirror.findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_alpha_gray, this)); ((TextView) viewFix.findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_alpha_gray, this)); viewCapture.setOnClickListener(null); // cameraViwe.setOnClickListener(null); viewSize.setOnClickListener(null); viewSave.setOnClickListener(null); viewMirror.setOnClickListener(null); viewFix.setOnClickListener(null); } } @Override public void setCameraSettingClickable(boolean isSystem, int cameraNumbers) { View viewCapture = mViewMap.get(ISettingPresenter.TAG_CAMERA_SYSTEM); CheckBox checkBox = (CheckBox) viewCapture.findViewById(R.id.cb_setting); checkBox.setChecked(isSystem); if (isSystem) { ((TextView) mViewMap.get(ISettingPresenter.TAG_CAMERA2).findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_alpha_gray, this)); ((TextView) mViewMap.get(ISettingPresenter.TAG_CAMERA_SIZE).findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_alpha_gray, this)); ((TextView) mViewMap.get(ISettingPresenter.TAG_CAMERA_SAVE).findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_alpha_gray, this)); // ((TextView) mViewMap.get(ISettingPresenter.TAG_CAMERA_MIRROR).findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_alpha_gray,this)); ((TextView) mViewMap.get(ISettingPresenter.TAG_CAMERA_FIX).findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_alpha_gray, this)); } else { ((TextView) mViewMap.get(ISettingPresenter.TAG_CAMERA2).findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_gray, this)); ((TextView) mViewMap.get(ISettingPresenter.TAG_CAMERA_SIZE).findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_gray, this)); ((TextView) mViewMap.get(ISettingPresenter.TAG_CAMERA_SAVE).findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_gray, this)); // ((TextView) mViewMap.get(ISettingPresenter.TAG_CAMERA_MIRROR).findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_gray,this)); ((TextView) mViewMap.get(ISettingPresenter.TAG_CAMERA_FIX).findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_gray, this)); // if (cameraNumbers < 2) { // ((TextView) mViewMap.get(ISettingPresenter.TAG_CAMERA_MIRROR).findViewById(R.id.txt_setting)).setTextColor(AppCompat.getColor(R.color.txt_alpha_gray,this)); // } } } @Override public void initSyncSetting(boolean syncAuto, boolean wifi) { //cardView View cardView = LayoutInflater.from(this).inflate(R.layout.item_setting_card, null); LinearLayout linearLayout = (LinearLayout) cardView.findViewById(R.id.layout_setting_linear); mScrollLinear.addView(cardView); View divider = LayoutInflater.from(this).inflate(R.layout.item_setting_divider, null); mScrollLinear.addView(divider); //title View labelView = LayoutInflater.from(this).inflate(R.layout.item_setting_label, null); ((TextView) labelView.findViewById(R.id.txt_setting_title)).setText(getResources().getString(R.string.sync_setting)); linearLayout.addView(labelView); View viewAuto = getItemCheckView(); setClick(viewAuto); setTag(viewAuto, ISettingPresenter.TAG_SYNC_AUTO); setData(viewAuto, R.drawable.ic_cloud_circle_grey_24dp, R.string.sync_auto); initLocalData(viewAuto, syncAuto); linearLayout.addView(viewAuto); TextView textView1 = (TextView) viewAuto.findViewById(R.id.txt_setting); textView1.setTextColor(AppCompat.getColor(R.color.txt_alpha_gray, this)); View viewWifi = getItemCheckView(); setClick(viewWifi); setTag(viewWifi, ISettingPresenter.TAG_SYNC_WIFI); setData(viewWifi, R.drawable.ic_network_wifi_grey_24dp, R.string.sync_wifi); initLocalData(viewWifi, wifi); cancelDivider(viewWifi); linearLayout.addView(viewWifi); TextView textView2 = (TextView) viewWifi.findViewById(R.id.txt_setting); textView2.setTextColor(AppCompat.getColor(R.color.txt_alpha_gray, this)); } @Override public void initAboutSetting() { //cardView View cardView = LayoutInflater.from(this).inflate(R.layout.item_setting_card, null); LinearLayout linearLayout = (LinearLayout) cardView.findViewById(R.id.layout_setting_linear); mScrollLinear.addView(cardView); View divider = LayoutInflater.from(this).inflate(R.layout.item_setting_divider, null); mScrollLinear.addView(divider); //title View labelView = LayoutInflater.from(this).inflate(R.layout.item_setting_label, null); ((TextView) labelView.findViewById(R.id.txt_setting_title)).setText(getResources().getString(R.string.about_setting)); linearLayout.addView(labelView); View viewSplash = getItemCheckView(); setClick(viewSplash); setTag(viewSplash, ISettingPresenter.TAG_SPLASH); setData(viewSplash, R.drawable.ic_send_grey_24dp, R.string.splash); initLocalData(viewSplash, !mSettingPresenter.getSplashOpen()); linearLayout.addView(viewSplash); View viewFeedback = getItemView(); setClick(viewFeedback); setTag(viewFeedback, ISettingPresenter.TAG_FEEDBACK); setData(viewFeedback, R.drawable.ic_inbox_gray_24dp, R.string.feedback); linearLayout.addView(viewFeedback); View viewAboutApp = getItemView(); setClick(viewAboutApp); setTag(viewAboutApp, ISettingPresenter.TAG_ABOUT); setData(viewAboutApp, R.drawable.ic_info_grey_24dp, R.string.about_app); cancelDivider(viewAboutApp); linearLayout.addView(viewAboutApp); } @Override public void showSnackbar(String message) { Snackbar.make(mScrollView, message, Snackbar.LENGTH_SHORT).show(); } @Override public void restartActivity() { // ActivityCollector.reStart(SettingActivity.this, HomeActivity.class, SettingActivity.class); ActivityCollector.reStart(); } @Override public void setCheckBoxState(String tag, boolean check) { CheckBox checkBox = (CheckBox) mViewMap.get(tag).findViewById(R.id.cb_setting); checkBox.setChecked(check); } @Override public void jump2EditCategoryActivity() { Intent intent = new Intent(SettingActivity.this, EditCategoryActivity.class); startActivity(intent); } @Override public void jump2CameraFixActivity() { startActivity(new Intent(this, AdjustCameraActivity.class)); } @Override public void jump2FeedbackActivity() { Intent feedbackIntent = new Intent(this, FeedbackActivity.class); feedbackIntent.putExtra(IFeedbackPresenter.TYPE, IFeedbackPresenter.TYPE_FEEDBACK); startActivity(feedbackIntent); } @Override public void jump2AboutActivity() { startActivity(new Intent(this, AboutAppActivity.class)); } @Override public void showCamera2Gray() { View camera2View = mViewMap.get(ISettingPresenter.TAG_CAMERA2); TextView textView2 = (TextView) camera2View.findViewById(R.id.txt_setting); textView2.setTextColor(getResources().getColor(R.color.txt_alpha_gray)); } @Override public void startActivityAnimation() { int actionBarHeight = getActionBarSize(); DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int screenHeight = dm.heightPixels; int contentHeight = screenHeight - actionBarHeight; AnimatorSet animation = new AnimatorSet(); animation.setDuration(Const.DURATION_ACTIVITY); animation.playTogether( ObjectAnimator.ofFloat(mToolbarLayout, "translationY", -actionBarHeight, 0), ObjectAnimator.ofFloat(mScrollView, "translationY", contentHeight, 0) ); animation.start(); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: closeActivityAnimation(); break; } return true; } @Override public void onClick(final View v) { mSettingPresenter.onClickSettingItem((String) v.getTag()); } private void closeActivityAnimation() { int actionBarHeight = getActionBarSize(); DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int screenHeight = dm.heightPixels; int contentHeight = screenHeight - actionBarHeight; AnimatorSet animation = new AnimatorSet(); animation.setDuration(Const.DURATION_ACTIVITY); animation.playTogether( ObjectAnimator.ofFloat(mToolbarLayout, "translationY", 0, -actionBarHeight), ObjectAnimator.ofFloat(mScrollView, "translationY", 0, contentHeight) ); animation.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animation) { } @Override public void onAnimationEnd(Animator animation) { mIsHiding = false; finish(); overridePendingTransition(R.anim.activity_no_animation, R.anim.activity_no_animation); } @Override public void onAnimationCancel(Animator animation) { } @Override public void onAnimationRepeat(Animator animation) { } }); animation.start(); } @Override public void showThemeColorChooser(int index) { new ColorChooserDialog().show(this, index, (indexCallback, color, darker) -> mSettingPresenter.onThemeSelected(indexCallback)); } @Override public void showFontChooser() { View v = LayoutInflater.from(this).inflate(R.layout.dialog_font, null); v.findViewById(R.id.txt_dialog_font_system).setOnClickListener(mFontDialogClickListener); v.findViewById(R.id.txt_dialog_font_personal).setOnClickListener(mFontDialogClickListener); if (mFontDialog == null) { mFontDialog = new AlertDialog.Builder(this, R.style.note_dialog) .setView(v) .setTitle(R.string.font_choose) .setCancelable(true) .show(); } else { mFontDialog.show(); } } private View.OnClickListener mFontDialogClickListener = new View.OnClickListener() { @Override public void onClick(View v) { boolean use = v.getId() == R.id.txt_dialog_font_personal ? false : true; mSettingPresenter.onUseSystemFontSelected(use); mFontDialog.dismiss(); } }; @Override public void showStatusBarStyleChooser() { new AlertDialog.Builder(this, R.style.note_dialog) .setTitle(R.string.status_bar) .setCancelable(true) .setItems(new String[]{ getResources().getString(R.string.status_bar_immersive), getResources().getString(R.string.status_bar_translation)}, (dialog, which) -> { boolean translate = which == 0 ? false : true; mSettingPresenter.onStatusBarStyleSelected(translate); }).show(); } @Override public void showCameraIdsChooser() throws JSONException { String[] items = new String[]{getResources().getString(R.string.camera_back), getResources().getString(R.string.camera_front)}; new AlertDialog.Builder(SettingActivity.this, R.style.note_dialog) .setItems(items, (dialog, which) -> { dialog.dismiss(); mSettingPresenter.onCameraIdsSelected(which); }) .show(); } @Override public void showPictureSizeChooser(final String cameraId, List<Size> list, Size targetSize) throws JSONException { String[] sizeArray = new String[list.size()]; for (int i = 0; i < list.size(); i++) { if (targetSize.equals(list.get(i))) { sizeArray[i] = targetSize.toString() + getResources().getString(R.string.camera_current_picture_size); continue; } sizeArray[i] = list.get(i).toString(); } new AlertDialog.Builder(SettingActivity.this, R.style.note_dialog) .setItems(sizeArray, (dialog, which) -> mSettingPresenter.onPictureSizeSelected(cameraId, which)) .show(); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && !mIsHiding) { mIsHiding = true; closeActivityAnimation(); return true; } return super.onKeyDown(keyCode, event); } private View getItemView() { return LayoutInflater.from(this).inflate(R.layout.item_setting, null); } private View getItemCheckView() { return LayoutInflater.from(this).inflate(R.layout.item_setting_check, null); } private void setClick(View v) { v.findViewById(R.id.layout_ripple_setting).setOnClickListener(this); } private void setTag(View v, String tag) { v.findViewById(R.id.layout_setting_click).setTag(tag); mViewMap.put(tag, v); } private void setData(View v, int drawable, int string) { ImageView imageView1 = (ImageView) v.findViewById(R.id.img_setting); imageView1.setImageResource(drawable); TextView textView1 = (TextView) v.findViewById(R.id.txt_setting); textView1.setText(getResources().getString(string)); } private void initLocalData(View v, boolean isChecked) { CheckBox checkBox = (CheckBox) v.findViewById(R.id.cb_setting); if (isChecked) { checkBox.setChecked(true); } else { checkBox.setChecked(false); } } private void cancelDivider(View v) { v.findViewById(R.id.view_divider).setVisibility(View.INVISIBLE); } }