diff options
author | luxiaol <luxiaol@codeaurora.org> | 2013-07-19 17:14:06 +0800 |
---|---|---|
committer | kaiyiz <kaiyiz@codeaurora.org> | 2013-08-20 11:37:28 +0800 |
commit | dbe4a62b0c189d1ecb2a9f21e16f7ad529d3b24d (patch) | |
tree | d1475c72244f3a8c5b9ec31112b9664cb5e53520 /src/com/android/browser/BrowserUtils.java | |
parent | 950f627953b2bfedecf827e3e6c020b2cbb3dcd2 (diff) | |
download | android_packages_apps_Gello-dbe4a62b0c189d1ecb2a9f21e16f7ad529d3b24d.tar.gz android_packages_apps_Gello-dbe4a62b0c189d1ecb2a9f21e16f7ad529d3b24d.tar.bz2 android_packages_apps_Gello-dbe4a62b0c189d1ecb2a9f21e16f7ad529d3b24d.zip |
Browser: add to support new folder/bookmark function
Let browser's bookmark management support new folder/bookmark
through press menu.
Change-Id: Ic676bd76d27e9350d56d65a79f9a8a7d549f9069
Diffstat (limited to 'src/com/android/browser/BrowserUtils.java')
-rw-r--r-- | src/com/android/browser/BrowserUtils.java | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/src/com/android/browser/BrowserUtils.java b/src/com/android/browser/BrowserUtils.java new file mode 100644 index 00000000..e1a36002 --- /dev/null +++ b/src/com/android/browser/BrowserUtils.java @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2013, The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package com.android.browser; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.text.InputFilter; +import android.text.Spanned; +import android.util.Log; +import android.widget.EditText; + +public class BrowserUtils { + + private static final String LOGTAG = "BrowserUtils"; + public static final int FILENAME_MAX_LENGTH = 32; + public static final int ADDRESS_MAX_LENGTH = 2048; + private static AlertDialog.Builder mAlertDialog = null; + + public static void maxLengthFilter(final Context context, final EditText editText, + final int max_length) { + InputFilter[] contentFilters = new InputFilter[1]; + contentFilters[0] = new InputFilter.LengthFilter(max_length) { + public CharSequence filter(CharSequence source, int start, int end, + Spanned dest, int dstart, int dend) { + int keep = max_length - (dest.length() - (dend - dstart)); + if (keep <= 0) { + showWarningDialog(context, max_length); + return ""; + } else if (keep >= end - start) { + return null; + } else { + if (keep < source.length()) { + showWarningDialog(context, max_length); + } + return source.subSequence(start, start + keep); + } + } + }; + editText.setFilters(contentFilters); + } + + private static void showWarningDialog(final Context context, int max_length) { + if (mAlertDialog != null) + return; + + mAlertDialog = new AlertDialog.Builder(context); + mAlertDialog.setTitle(R.string.browser_max_input_title) + .setIcon(android.R.drawable.ic_dialog_info) + .setMessage(context.getString(R.string.browser_max_input, max_length)) + .setPositiveButton(R.string.ok, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + return; + } + }) + .show() + .setOnDismissListener(new DialogInterface.OnDismissListener() { + public void onDismiss(DialogInterface dialog) { + Log.w("BrowserUtils", "onDismiss"); + mAlertDialog = null; + return; + } + }); + } +} |