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 Projectimport android.webkit.WebView;
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Represents a plugin (Java equivalent of the PluginPackageAndroid
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * C++ class in libs/WebKitLib/WebKit/WebCore/plugins/android/)
29385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu *
30f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen * @hide
314a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn * @deprecated This interface was intended to be used by Gears. Since Gears was
32385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu * deprecated, so is this class.
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
34385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu@Deprecated
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class Plugin {
36f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen    /*
37f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
38f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @deprecated This interface was intended to be used by Gears. Since Gears was
39f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * deprecated, so is this class.
40f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     */
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public interface PreferencesClickHandler {
42f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen        /*
43f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen         * @hide
44f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen         * @deprecated This interface was intended to be used by Gears. Since Gears was
45f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen         * deprecated, so is this class.
46f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen         */
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public void handleClickEvent(Context context);
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private String mName;
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private String mPath;
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private String mFileName;
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private String mDescription;
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private PreferencesClickHandler mHandler;
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
56385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    /**
57f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
584a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * @deprecated This interface was intended to be used by Gears. Since Gears was
594a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * deprecated, so is this class.
60385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu     */
61385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public Plugin(String name,
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                  String path,
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                  String fileName,
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                  String description) {
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mName = name;
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mPath = path;
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mFileName = fileName;
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mDescription = description;
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mHandler = new DefaultClickHandler();
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
73385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    /**
74f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
754a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * @deprecated This interface was intended to be used by Gears. Since Gears was
764a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * deprecated, so is this class.
77385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu     */
78385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String toString() {
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return mName;
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
83385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    /**
84f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
854a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * @deprecated This interface was intended to be used by Gears. Since Gears was
864a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * deprecated, so is this class.
87385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu     */
88385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String getName() {
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return mName;
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
93385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    /**
94f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
954a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * @deprecated This interface was intended to be used by Gears. Since Gears was
964a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * deprecated, so is this class.
97385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu     */
98385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String getPath() {
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return mPath;
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
103385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    /**
104f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
1054a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * @deprecated This interface was intended to be used by Gears. Since Gears was
1064a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * deprecated, so is this class.
107385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu     */
108385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String getFileName() {
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return mFileName;
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
113385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    /**
114f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
1154a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * @deprecated This interface was intended to be used by Gears. Since Gears was
1164a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * deprecated, so is this class.
117385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu     */
118385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String getDescription() {
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return mDescription;
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
123385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    /**
124f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
1254a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * @deprecated This interface was intended to be used by Gears. Since Gears was
1264a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * deprecated, so is this class.
127385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu     */
128385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setName(String name) {
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mName = name;
1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
133385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    /**
134f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
1354a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * @deprecated This interface was intended to be used by Gears. Since Gears was
1364a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * deprecated, so is this class.
137385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu     */
138385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setPath(String path) {
1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mPath = path;
1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
143385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    /**
144f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
1454a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * @deprecated This interface was intended to be used by Gears. Since Gears was
1464a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * deprecated, so is this class.
147385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu     */
148385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setFileName(String fileName) {
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mFileName = fileName;
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
153385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    /**
154f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
1554a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * @deprecated This interface was intended to be used by Gears. Since Gears was
1564a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * deprecated, so is this class.
157385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu     */
158385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setDescription(String description) {
1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mDescription = description;
1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
163385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    /**
164f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen     * @hide
1654a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * @deprecated This interface was intended to be used by Gears. Since Gears was
1664a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn     * deprecated, so is this class.
167385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu     */
168385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setClickHandler(PreferencesClickHandler handler) {
1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mHandler = handler;
1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project   /**
1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    * Invokes the click handler for this plugin.
175385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    *
176f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen    * @hide
1774a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn    * @deprecated This interface was intended to be used by Gears. Since Gears was
1784a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn    * deprecated, so is this class.
1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    */
180385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void dispatchClickEvent(Context context) {
1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (mHandler != null) {
1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mHandler.handleClickEvent(context);
1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project   /**
1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    * Default click handler. The plugins should implement their own.
189385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    *
190f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen    * @hide
1914a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn    * @deprecated This interface was intended to be used by Gears. Since Gears was
1924a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn    * deprecated, so is this class.
1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    */
194385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu    @Deprecated
1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private class DefaultClickHandler implements PreferencesClickHandler,
1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                                 DialogInterface.OnClickListener {
1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        private AlertDialog mDialog;
198385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu        @Deprecated
1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public void handleClickEvent(Context context) {
2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            // Show a simple popup dialog containing the description
2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            // string of the plugin.
2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (mDialog == null) {
2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mDialog = new AlertDialog.Builder(context)
2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        .setTitle(mName)
2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        .setMessage(mDescription)
2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        .setPositiveButton(R.string.ok, this)
2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        .setCancelable(false)
2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        .show();
2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
211385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu        /**
212f0d973131389621609dfad5befb9afe8b767e08cKristian Monsen         * @hide
2134a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn         * @deprecated This interface was intended to be used by Gears. Since Gears was
2144a51c20ce607c74914f90fd897f04080121ac13bDianne Hackborn         * deprecated, so is this class.
215385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu         */
216385df699a6d602cab501092821a79cc6ab3a390eAndrei Popescu        @Deprecated
2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public void onClick(DialogInterface dialog, int which) {
2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mDialog.dismiss();
2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mDialog = null;
2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
223