package com.openfarmanager.android.dialogs; import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.os.Handler; import android.view.View; import android.widget.CheckBox; import android.widget.EditText; import com.openfarmanager.android.App; import com.openfarmanager.android.R; import com.openfarmanager.android.fragments.MainPanel; /** * @author Vlad Namashko. */ public class SearchActionDialog extends BaseFileDialog { public static final String SEARCH_DIALOG = "SEARCH_DIALOG"; public static final String FILEMASK = "filemask"; public static final String KEYWORD = "keyword"; public static final String CASE_SENSITIVE = "case_sensitive"; public static final String WHOLE_WORDS = "whole_words"; private boolean mOnlyFileSearch; public SearchActionDialog(Context context, Handler handler, MainPanel inactivePanel, boolean onlyFileSearch) { super(context, handler, inactivePanel); mOnlyFileSearch = onlyFileSearch; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EditText text = (EditText) mDialogView.findViewById(R.id.destination); restoreSettings(); text.setSelection(text.getText().length()); text = (EditText) mDialogView.findViewById(R.id.keyword); text.setSelection(text.getText().length()); if (mOnlyFileSearch) { mDialogView.findViewById(R.id.keyword_label).setVisibility(View.GONE); mDialogView.findViewById(R.id.keyword).setVisibility(View.GONE); mDialogView.findViewById(R.id.case_sensitive).setVisibility(View.GONE); mDialogView.findViewById(R.id.whole_words).setVisibility(View.GONE); } } private void restoreSettings() { SharedPreferences preferences = App.sInstance.getSharedPreferences(SEARCH_DIALOG, 0); ((EditText) mDialogView.findViewById(R.id.destination)).setText(preferences.getString(FILEMASK, "*")); ((EditText) mDialogView.findViewById(R.id.keyword)).setText(preferences.getString(KEYWORD, "")); ((CheckBox) mDialogView.findViewById(R.id.case_sensitive)).setChecked(preferences.getBoolean(CASE_SENSITIVE, false)); ((CheckBox) mDialogView.findViewById(R.id.whole_words)).setChecked(preferences.getBoolean(WHOLE_WORDS, false)); } private void saveSettings(String fileMask, String keyword, boolean caseSensitive, boolean wholeWords) { App.sInstance.getSharedPreferences(SEARCH_DIALOG, 0).edit() .putString(FILEMASK, fileMask) .putString(KEYWORD, keyword) .putBoolean(CASE_SENSITIVE, caseSensitive) .putBoolean(WHOLE_WORDS, wholeWords).commit(); } @Override public int getContentView() { return R.layout.dialog_search; } @Override protected boolean validate() { return true; } @Override protected void execute() { String fileMask = ((EditText) mDialogView.findViewById(R.id.destination)).getText().toString(); String keyword = ((EditText) mDialogView.findViewById(R.id.keyword)).getText().toString(); boolean caseSensitive = ((CheckBox) mDialogView.findViewById(R.id.case_sensitive)).isChecked(); boolean wholeWords = ((CheckBox) mDialogView.findViewById(R.id.whole_words)).isChecked(); saveSettings(fileMask, keyword, caseSensitive, wholeWords); mHandler.sendMessage(mHandler.obtainMessage(MainPanel.SEARCH_ACTION, new SearchActionResult(fileMask, keyword, caseSensitive, wholeWords))); } public class SearchActionResult { public String fileMask; public String keyword; public boolean caseSensitive; public boolean wholeWords; public boolean isNetworkPanel; public SearchActionResult(String fileMask, String keyword, boolean caseSensitive, boolean wholeWords) { this.fileMask = fileMask; this.keyword = keyword; this.caseSensitive = caseSensitive; this.wholeWords = wholeWords; isNetworkPanel = mOnlyFileSearch; } } }