diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2015-10-12 00:18:09 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2015-10-12 00:18:09 +0900 |
commit | ec4b641463030f94f4ce69a136d4bc7b8033c5ec (patch) | |
tree | 7f3687000f1bdb32b3f0bdb71befdd47ffc0c6b5 | |
parent | 4a22df86f931b3fa27dd45c94f15ff26598d596c (diff) | |
download | SmileEssence-ec4b641463030f94f4ce69a136d4bc7b8033c5ec.tar.gz |
SystemServiceHelper: システムサービス関連の共通コードを切り出した
11 files changed, 58 insertions, 92 deletions
diff --git a/app/src/main/java/net/lacolaco/smileessence/activity/ManageAccountsActivity.java b/app/src/main/java/net/lacolaco/smileessence/activity/ManageAccountsActivity.java index 4901cad8..4f0ae216 100644 --- a/app/src/main/java/net/lacolaco/smileessence/activity/ManageAccountsActivity.java +++ b/app/src/main/java/net/lacolaco/smileessence/activity/ManageAccountsActivity.java @@ -25,10 +25,12 @@ package net.lacolaco.smileessence.activity; import android.app.Activity; -import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.view.*; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; import android.widget.*; import com.android.volley.toolbox.NetworkImageView; import net.lacolaco.smileessence.Application; @@ -190,8 +192,7 @@ public class ManageAccountsActivity extends Activity implements AdapterView.OnIt @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { - LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); - convertView = inflater.inflate(R.layout.list_item_account, null); + convertView = getLayoutInflater().inflate(R.layout.list_item_account, null); } Account account = getItem(position); NetworkImageView iconView = (NetworkImageView) convertView.findViewById(R.id.account_icon); diff --git a/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandCopyTextToClipboard.java b/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandCopyTextToClipboard.java index 1ee899fc..bcefc7fb 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandCopyTextToClipboard.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/message/MessageCommandCopyTextToClipboard.java @@ -25,11 +25,10 @@ package net.lacolaco.smileessence.command.message; import android.app.Activity; -import android.content.ClipData; -import android.content.ClipboardManager; import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.entity.DirectMessage; import net.lacolaco.smileessence.notification.Notificator; +import net.lacolaco.smileessence.util.SystemServiceHelper; public class MessageCommandCopyTextToClipboard extends MessageCommand { @@ -55,8 +54,7 @@ public class MessageCommandCopyTextToClipboard extends MessageCommand { @Override public boolean execute() { - ClipboardManager manager = (ClipboardManager) getActivity().getSystemService(Activity.CLIPBOARD_SERVICE); - manager.setPrimaryClip(ClipData.newPlainText("message text", getMessage().getText())); + SystemServiceHelper.copyToClipboard(getActivity(), "message text", getMessage().getText()); Notificator.getInstance().publish(R.string.notice_copy_clipboard); return true; } diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCopyTextToClipboard.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCopyTextToClipboard.java index 47827485..be167acd 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCopyTextToClipboard.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCopyTextToClipboard.java @@ -25,11 +25,10 @@ package net.lacolaco.smileessence.command.status; import android.app.Activity; -import android.content.ClipData; -import android.content.ClipboardManager; import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.notification.Notificator; +import net.lacolaco.smileessence.util.SystemServiceHelper; public class StatusCommandCopyTextToClipboard extends StatusCommand { @@ -55,8 +54,7 @@ public class StatusCommandCopyTextToClipboard extends StatusCommand { @Override public boolean execute() { - ClipboardManager manager = (ClipboardManager) getActivity().getSystemService(Activity.CLIPBOARD_SERVICE); - manager.setPrimaryClip(ClipData.newPlainText("tweet text", getOriginalStatus().getText())); + SystemServiceHelper.copyToClipboard(getActivity(), "tweet text", getOriginalStatus().getText()); Notificator.getInstance().publish(R.string.notice_copy_clipboard); return true; } diff --git a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCopyURLToClipboard.java b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCopyURLToClipboard.java index 542e7ddb..90e8a789 100644 --- a/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCopyURLToClipboard.java +++ b/app/src/main/java/net/lacolaco/smileessence/command/status/StatusCommandCopyURLToClipboard.java @@ -25,11 +25,10 @@ package net.lacolaco.smileessence.command.status; import android.app.Activity; -import android.content.ClipData; -import android.content.ClipboardManager; import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.entity.Tweet; import net.lacolaco.smileessence.notification.Notificator; +import net.lacolaco.smileessence.util.SystemServiceHelper; public class StatusCommandCopyURLToClipboard extends StatusCommand { @@ -56,8 +55,7 @@ public class StatusCommandCopyURLToClipboard extends StatusCommand { @Override public boolean execute() { String statusURL = getOriginalStatus().getTwitterUrl(); - ClipboardManager manager = (ClipboardManager) getActivity().getSystemService(Activity.CLIPBOARD_SERVICE); - manager.setPrimaryClip(ClipData.newPlainText("tweet url", statusURL)); + SystemServiceHelper.copyToClipboard(getActivity(), "tweet url", statusURL); Notificator.getInstance().publish(R.string.notice_copy_clipboard); return true; } diff --git a/app/src/main/java/net/lacolaco/smileessence/util/Morse.java b/app/src/main/java/net/lacolaco/smileessence/util/Morse.java index 7aa5f697..364f6240 100644 --- a/app/src/main/java/net/lacolaco/smileessence/util/Morse.java +++ b/app/src/main/java/net/lacolaco/smileessence/util/Morse.java @@ -33,8 +33,9 @@ public class Morse { // ------------------------------ FIELDS ------------------------------ - private static HashMap<String, String> jaMc; - private static HashMap<String, String> mcJa; + private static final HashMap<String, String> jaMc; + private static final HashMap<String, String> mcJa; + private static final Pattern morsePattern = Pattern.compile("[-・]+"); // -------------------------- STATIC METHODS -------------------------- @@ -45,8 +46,7 @@ public class Morse { * @return モールスを含むならtrue, そうでなければfalse */ public static boolean isMorse(String mc) { - Pattern pattern = Pattern.compile("[-・]+"); - Matcher matcher = pattern.matcher(mc); + Matcher matcher = morsePattern.matcher(mc); ArrayList<String> list = new ArrayList<>(); while (matcher.find()) { list.add(matcher.group()); @@ -132,5 +132,4 @@ public class Morse { for (String[] to : ja1) jaMc.put(to[0], to[1]); } - } diff --git a/app/src/main/java/net/lacolaco/smileessence/util/NetworkHelper.java b/app/src/main/java/net/lacolaco/smileessence/util/SystemServiceHelper.java index 75062a4f..91f8925d 100644 --- a/app/src/main/java/net/lacolaco/smileessence/util/NetworkHelper.java +++ b/app/src/main/java/net/lacolaco/smileessence/util/SystemServiceHelper.java @@ -24,27 +24,38 @@ package net.lacolaco.smileessence.util; +import android.app.Activity; +import android.content.ClipData; +import android.content.ClipboardManager; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; +import android.view.View; +import android.view.inputmethod.InputMethodManager; -public class NetworkHelper { - - // ------------------------------ FIELDS ------------------------------ - - private final Context context; - - // --------------------------- CONSTRUCTORS --------------------------- +public class SystemServiceHelper { + public static boolean isNetworkConnected(Context context) { + ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); + NetworkInfo info = cm.getActiveNetworkInfo(); + return info != null && info.isConnected(); + } - public NetworkHelper(Context context) { - this.context = context; + public static void hideIM(Context context, View view) { + if (view != null) { + InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.RESULT_UNCHANGED_SHOWN); + } } - // -------------------------- OTHER METHODS -------------------------- + public static void showIM(Context context, View view) { + if (view != null) { + InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); + imm.showSoftInput(view, InputMethodManager.RESULT_UNCHANGED_SHOWN); + } + } - public boolean canConnect() { - ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo info = cm.getActiveNetworkInfo(); - return info != null && info.isConnected(); + public static void copyToClipboard(Context context, String label, String text) { + ClipboardManager manager = (ClipboardManager) context.getSystemService(Activity.CLIPBOARD_SERVICE); + manager.setPrimaryClip(ClipData.newPlainText(label, text)); } } diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/ReviewDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/ReviewDialogFragment.java index 2a5f8c15..c7bcb048 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/ReviewDialogFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/ReviewDialogFragment.java @@ -26,16 +26,15 @@ package net.lacolaco.smileessence.view.dialog; import android.app.AlertDialog; import android.app.Dialog; -import android.content.Context; import android.os.Bundle; import android.view.View; -import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.RatingBar; import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.activity.MainActivity; import net.lacolaco.smileessence.data.PostState; import net.lacolaco.smileessence.entity.Tweet; +import net.lacolaco.smileessence.util.SystemServiceHelper; public class ReviewDialogFragment extends StackableDialogFragment implements View.OnClickListener { @@ -89,13 +88,8 @@ public class ReviewDialogFragment extends StackableDialogFragment implements Vie .create(); } - private void hideIME() { - InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(ratingBar.getWindowToken(), 0); - } - private void execute() { - hideIME(); + SystemServiceHelper.hideIM(getActivity(), ratingBar); Tweet tweet = Tweet.fetch(statusID).getOriginalTweet(); int star = (int) ratingBar.getRating(); StringBuilder builder = new StringBuilder(); diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/SearchOnGoogleDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/SearchOnGoogleDialogFragment.java index 1946c3a6..43adb668 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/SearchOnGoogleDialogFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/SearchOnGoogleDialogFragment.java @@ -27,17 +27,16 @@ package net.lacolaco.smileessence.view.dialog; import android.app.AlertDialog; import android.app.Dialog; import android.app.SearchManager; -import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.text.Editable; import android.text.TextUtils; import android.text.TextWatcher; import android.view.View; -import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import net.lacolaco.smileessence.R; +import net.lacolaco.smileessence.util.SystemServiceHelper; import net.lacolaco.smileessence.view.DialogHelper; public class SearchOnGoogleDialogFragment extends StackableDialogFragment implements TextWatcher, View.OnClickListener { @@ -116,13 +115,8 @@ public class SearchOnGoogleDialogFragment extends StackableDialogFragment implem .create(); } - private void hideIME() { - InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(editText.getWindowToken(), 0); - } - private void execute() { - hideIME(); + SystemServiceHelper.hideIM(getActivity(), editText); Intent intent = new Intent(Intent.ACTION_WEB_SEARCH); intent.putExtra(SearchManager.QUERY, editText.getText().toString()); getActivity().startActivity(intent); diff --git a/app/src/main/java/net/lacolaco/smileessence/view/dialog/SendMessageDialogFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/dialog/SendMessageDialogFragment.java index 6b3f0393..a7e5add0 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/dialog/SendMessageDialogFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/dialog/SendMessageDialogFragment.java @@ -26,14 +26,12 @@ package net.lacolaco.smileessence.view.dialog; import android.app.AlertDialog; import android.app.Dialog; -import android.content.Context; import android.os.Bundle; import android.support.v4.content.ContextCompat; import android.text.Editable; import android.text.TextUtils; import android.text.TextWatcher; import android.view.View; -import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import android.widget.ImageButton; @@ -44,6 +42,7 @@ import net.lacolaco.smileessence.R; import net.lacolaco.smileessence.data.PostState; import net.lacolaco.smileessence.notification.Notificator; import net.lacolaco.smileessence.twitter.task.SendMessageTask; +import net.lacolaco.smileessence.util.SystemServiceHelper; public class SendMessageDialogFragment extends StackableDialogFragment implements TextWatcher, View.OnClickListener { @@ -142,13 +141,8 @@ public class SendMessageDialogFragment extends StackableDialogFragment implement editText.setText(""); } - private void hideIME() { - InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(editText.getWindowToken(), 0); - } - private void sendMessage() { - hideIME(); + SystemServiceHelper.hideIM(getActivity(), editText); String text = editText.getText().toString(); new SendMessageTask(Application.getInstance().getCurrentAccount(), screenName, text) .onDone(x -> Notificator.getInstance().publish(R.string.notice_message_send_succeeded)) diff --git a/app/src/main/java/net/lacolaco/smileessence/view/page/PostFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/page/PostFragment.java index f0b34c7e..162b28c2 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/page/PostFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/page/PostFragment.java @@ -24,7 +24,6 @@ package net.lacolaco.smileessence.view.page; -import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; @@ -36,7 +35,6 @@ import android.text.TextUtils; import android.text.TextWatcher; import android.text.method.ArrowKeyMovementMethod; import android.view.*; -import android.view.inputmethod.InputMethodManager; import android.widget.*; import com.twitter.Validator; import net.lacolaco.smileessence.Application; @@ -49,6 +47,7 @@ import net.lacolaco.smileessence.preference.UserPreferenceHelper; import net.lacolaco.smileessence.twitter.task.TweetTask; import net.lacolaco.smileessence.util.BitmapThumbnailTask; import net.lacolaco.smileessence.util.IntentUtils; +import net.lacolaco.smileessence.util.SystemServiceHelper; import net.lacolaco.smileessence.util.UIHandler; import net.lacolaco.smileessence.view.DialogHelper; import net.lacolaco.smileessence.view.dialog.PostMenuDialogFragment; @@ -112,9 +111,9 @@ public class PostFragment extends PageFragment implements TextWatcher, View.OnFo @Override public void onFocusChange(View v, boolean hasFocus) { if (hasFocus) { - showIME(); + SystemServiceHelper.showIM(getActivity(), editText); } else { - hideIME(); + SystemServiceHelper.hideIM(getActivity(), editText); } } @@ -206,7 +205,7 @@ public class PostFragment extends PageFragment implements TextWatcher, View.OnFo public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); menu.removeItem(R.id.actionbar_post); - showIME(); + SystemServiceHelper.showIM(getActivity(), editText); } public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -303,20 +302,15 @@ public class PostFragment extends PageFragment implements TextWatcher, View.OnFo return (Button) v.findViewById(R.id.button_post_tweet); } - private void hideIME() { - InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(editText.getWindowToken(), InputMethodManager.RESULT_UNCHANGED_SHOWN); - } - private void openPostMenu() { setStateFromView(); - hideIME(); + SystemServiceHelper.hideIM(getActivity(), editText); PostMenuDialogFragment menuDialogFragment = new PostMenuDialogFragment(); DialogHelper.showDialog(getActivity(), menuDialogFragment); } private void removeImage() { - hideIME(); + SystemServiceHelper.hideIM(getActivity(), editText); viewGroupMedia.setVisibility(View.GONE); ((ImageView) viewGroupMedia.findViewById(R.id.image_post_media)).setImageBitmap(null); PostState.getState().beginTransaction().setMediaFilePath("").commit(); @@ -324,7 +318,7 @@ public class PostFragment extends PageFragment implements TextWatcher, View.OnFo private void setImage() { setStateFromView(); - hideIME(); + SystemServiceHelper.hideIM(getActivity(), editText); SelectImageDialogFragment selectImageDialogFragment = new SelectImageDialogFragment(); DialogHelper.showDialog(getActivity(), selectImageDialogFragment); } @@ -339,17 +333,8 @@ public class PostFragment extends PageFragment implements TextWatcher, View.OnFo state.setListener(this); } - private void showIME() { - if (editText != null) { - new UIHandler().postDelayed(() -> { - InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); - imm.showSoftInput(editText, InputMethodManager.RESULT_UNCHANGED_SHOWN); - }, 100); - } - } - private void submitPost() { - hideIME(); + SystemServiceHelper.hideIM(getActivity(), editText); setStateFromView(); PostState state = PostState.getState(); MainActivity mainActivity = (MainActivity) getActivity(); diff --git a/app/src/main/java/net/lacolaco/smileessence/view/page/SearchFragment.java b/app/src/main/java/net/lacolaco/smileessence/view/page/SearchFragment.java index fb4c0039..fb577c66 100644 --- a/app/src/main/java/net/lacolaco/smileessence/view/page/SearchFragment.java +++ b/app/src/main/java/net/lacolaco/smileessence/view/page/SearchFragment.java @@ -24,7 +24,6 @@ package net.lacolaco.smileessence.view.page; -import android.content.Context; import android.os.Bundle; import android.support.annotation.NonNull; import android.text.Spannable; @@ -32,7 +31,6 @@ import android.text.TextUtils; import android.text.method.ArrowKeyMovementMethod; import android.view.*; import android.view.inputmethod.EditorInfo; -import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import android.widget.ImageButton; import android.widget.ListView; @@ -51,6 +49,7 @@ import net.lacolaco.smileessence.preference.InternalPreferenceHelper; import net.lacolaco.smileessence.preference.UserPreferenceHelper; import net.lacolaco.smileessence.twitter.StatusFilter; import net.lacolaco.smileessence.twitter.task.SearchTask; +import net.lacolaco.smileessence.util.SystemServiceHelper; import net.lacolaco.smileessence.util.UIHandler; import net.lacolaco.smileessence.view.DialogHelper; import net.lacolaco.smileessence.view.adapter.SearchListAdapter; @@ -120,7 +119,7 @@ public class SearchFragment extends CustomListFragment<SearchListAdapter> implem @Override public void onFocusChange(View v, boolean hasFocus) { if (!hasFocus) { - hideIME(); + SystemServiceHelper.hideIM(getActivity(), editText); } } @@ -260,11 +259,6 @@ public class SearchFragment extends CustomListFragment<SearchListAdapter> implem return (ImageButton) page.findViewById(R.id.button_search_save); } - private void hideIME() { - InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(editText.getWindowToken(), 0); - } - private void notifyTextEmpty() { Notificator.getInstance().alert(R.string.notice_search_text_empty); } @@ -280,7 +274,7 @@ public class SearchFragment extends CustomListFragment<SearchListAdapter> implem super.executeCommand(command); SearchQuery query = ((CommandOpenSearch) command).getQuery(); editText.setText(query.query); - hideIME(); + SystemServiceHelper.hideIM(SearchFragment.this.getActivity(), editText); } }); } @@ -302,7 +296,7 @@ public class SearchFragment extends CustomListFragment<SearchListAdapter> implem Notificator.getInstance().alert(R.string.notice_query_is_empty); } else { startSearch(text); - hideIME(); + SystemServiceHelper.hideIM(getActivity(), editText); } } } |