19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.webkit;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport com.android.internal.R;
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.app.AlertDialog;
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Context;
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.DialogInterface;
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Represents a plugin (Java equivalent of the PluginPackageAndroid
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * C++ class in libs/WebKitLib/WebKit/WebCore/plugins/android/)
28385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu *
29f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen * @hide
304a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn * @deprecated This interface was intended to be used by Gears. Since Gears was
31385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu * deprecated, so is this class.
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
33385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu@Deprecated
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class Plugin {
35f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen    /*
36f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
37f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @deprecated This interface was intended to be used by Gears. Since Gears was
38f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * deprecated, so is this class.
39f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     */
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public interface PreferencesClickHandler {
41f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen        /*
42f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen         * @hide
43f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen         * @deprecated This interface was intended to be used by Gears. Since Gears was
44f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen         * deprecated, so is this class.
45f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen         */
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public void handleClickEvent(Context context);
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private String mName;
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private String mPath;
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private String mFileName;
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private String mDescription;
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private PreferencesClickHandler mHandler;
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
55385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    /**
56f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
574a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * @deprecated This interface was intended to be used by Gears. Since Gears was
584a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * deprecated, so is this class.
59385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu     */
60385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public Plugin(String name,
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                  String path,
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                  String fileName,
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                  String description) {
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mName = name;
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mPath = path;
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mFileName = fileName;
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mDescription = description;
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mHandler = new DefaultClickHandler();
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
72385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    /**
73f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
744a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * @deprecated This interface was intended to be used by Gears. Since Gears was
754a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * deprecated, so is this class.
76385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu     */
77385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String toString() {
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return mName;
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
82385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    /**
83f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
844a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * @deprecated This interface was intended to be used by Gears. Since Gears was
854a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * deprecated, so is this class.
86385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu     */
87385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String getName() {
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return mName;
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
92385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    /**
93f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
944a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * @deprecated This interface was intended to be used by Gears. Since Gears was
954a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * deprecated, so is this class.
96385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu     */
97385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String getPath() {
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return mPath;
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
102385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    /**
103f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
1044a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * @deprecated This interface was intended to be used by Gears. Since Gears was
1054a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * deprecated, so is this class.
106385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu     */
107385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String getFileName() {
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return mFileName;
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
112385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    /**
113f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
1144a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * @deprecated This interface was intended to be used by Gears. Since Gears was
1154a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * deprecated, so is this class.
116385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu     */
117385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String getDescription() {
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return mDescription;
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
122385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    /**
123f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
1244a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * @deprecated This interface was intended to be used by Gears. Since Gears was
1254a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * deprecated, so is this class.
126385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu     */
127385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setName(String name) {
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mName = name;
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
132385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    /**
133f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
1344a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * @deprecated This interface was intended to be used by Gears. Since Gears was
1354a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * deprecated, so is this class.
136385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu     */
137385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setPath(String path) {
1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mPath = path;
1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
142385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    /**
143f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
1444a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * @deprecated This interface was intended to be used by Gears. Since Gears was
1454a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * deprecated, so is this class.
146385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu     */
147385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setFileName(String fileName) {
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mFileName = fileName;
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
152385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    /**
153f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
1544a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * @deprecated This interface was intended to be used by Gears. Since Gears was
1554a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * deprecated, so is this class.
156385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu     */
157385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setDescription(String description) {
1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mDescription = description;
1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
162385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    /**
163f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
1644a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * @deprecated This interface was intended to be used by Gears. Since Gears was
1654a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * deprecated, so is this class.
166385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu     */
167385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setClickHandler(PreferencesClickHandler handler) {
1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mHandler = handler;
1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project   /**
1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    * Invokes the click handler for this plugin.
174385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    *
175f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen    * @hide
1764a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn    * @deprecated This interface was intended to be used by Gears. Since Gears was
1774a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn    * deprecated, so is this class.
1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    */
179385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void dispatchClickEvent(Context context) {
1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (mHandler != null) {
1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mHandler.handleClickEvent(context);
1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project   /**
1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    * Default click handler. The plugins should implement their own.
188385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    *
189f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen    * @hide
1904a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn    * @deprecated This interface was intended to be used by Gears. Since Gears was
1914a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn    * deprecated, so is this class.
1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    */
193385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private class DefaultClickHandler implements PreferencesClickHandler,
1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                                 DialogInterface.OnClickListener {
1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        private AlertDialog mDialog;
197385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu        @Deprecated
1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public void handleClickEvent(Context context) {
1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            // Show a simple popup dialog containing the description
2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            // string of the plugin.
2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (mDialog == null) {
2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mDialog = new AlertDialog.Builder(context)
2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        .setTitle(mName)
2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        .setMessage(mDescription)
2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        .setPositiveButton(R.string.ok, this)
2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        .setCancelable(false)
2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        .show();
2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
210385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu        /**
211f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen         * @hide
2124a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn         * @deprecated This interface was intended to be used by Gears. Since Gears was
2134a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn         * deprecated, so is this class.
214385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu         */
215385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu        @Deprecated
2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public void onClick(DialogInterface dialog, int which) {
2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mDialog.dismiss();
2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mDialog = null;
2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
222