1 package org.coolreader.crengine; 2 3 import org.coolreader.CoolReader; 4 import org.coolreader.R; 5 6 import android.view.LayoutInflater; 7 import android.view.View; 8 import android.widget.EditText; 9 10 public class OPDSCatalogEditDialog extends BaseDialog { 11 12 private final CoolReader mActivity; 13 private final LayoutInflater mInflater; 14 private final FileInfo mItem; 15 private final EditText nameEdit; 16 private final EditText urlEdit; 17 private final EditText usernameEdit; 18 private final EditText passwordEdit; 19 private final Runnable mOnUpdate; 20 OPDSCatalogEditDialog(CoolReader activity, FileInfo item, Runnable onUpdate)21 public OPDSCatalogEditDialog(CoolReader activity, FileInfo item, Runnable onUpdate) { 22 super(activity, activity.getString((item.id == null) ? R.string.dlg_catalog_add_title 23 : R.string.dlg_catalog_edit_title), true, 24 false); 25 mActivity = activity; 26 mItem = item; 27 mOnUpdate = onUpdate; 28 mInflater = LayoutInflater.from(getContext()); 29 View view = mInflater.inflate(R.layout.catalog_edit_dialog, null); 30 nameEdit = (EditText) view.findViewById(R.id.catalog_name); 31 urlEdit = (EditText) view.findViewById(R.id.catalog_url); 32 usernameEdit = (EditText) view.findViewById(R.id.catalog_username); 33 passwordEdit = (EditText) view.findViewById(R.id.catalog_password); 34 nameEdit.setText(mItem.filename); 35 urlEdit.setText(mItem.getOPDSUrl()); 36 usernameEdit.setText(mItem.username); 37 passwordEdit.setText(mItem.password); 38 setThirdButtonImage(Utils.resolveResourceIdByAttr(activity, R.attr.cr3_button_remove_drawable, R.drawable.cr3_button_remove), 39 R.string.mi_catalog_delete); 40 setView(view); 41 } 42 43 @Override onPositiveButtonClick()44 protected void onPositiveButtonClick() { 45 String url = urlEdit.getText().toString(); 46 boolean blacklist = checkBlackList(url); 47 if (OPDSConst.BLACK_LIST_MODE == OPDSConst.BLACK_LIST_MODE_FORCE) { 48 mActivity.showToast(R.string.black_list_enforced); 49 } else if (OPDSConst.BLACK_LIST_MODE == OPDSConst.BLACK_LIST_MODE_WARN) { 50 mActivity.askConfirmation(R.string.black_list_warning, new Runnable() { 51 @Override 52 public void run() { 53 save(); 54 OPDSCatalogEditDialog.super.onPositiveButtonClick(); 55 } 56 57 }, new Runnable() { 58 @Override 59 public void run() { 60 onNegativeButtonClick(); 61 } 62 }); 63 } else { 64 save(); 65 super.onPositiveButtonClick(); 66 } 67 } 68 checkBlackList(String url)69 private boolean checkBlackList(String url) { 70 for (String s : OPDSConst.BLACK_LIST) { 71 if (s.equals(url)) 72 return true; 73 } 74 return false; 75 } 76 save()77 private void save() { 78 activity.getDB().saveOPDSCatalog(mItem.id, 79 urlEdit.getText().toString(), nameEdit.getText().toString(), 80 usernameEdit.getText().toString(), passwordEdit.getText().toString()); 81 mOnUpdate.run(); 82 super.onPositiveButtonClick(); 83 } 84 85 @Override onNegativeButtonClick()86 protected void onNegativeButtonClick() { 87 super.onNegativeButtonClick(); 88 } 89 90 @Override onThirdButtonClick()91 protected void onThirdButtonClick() { 92 mActivity.askDeleteCatalog(mItem); 93 super.onThirdButtonClick(); 94 } 95 96 97 } 98