171f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert/*
271f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert * Copyright (C) 2011 The Android Open Source Project
371f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert *
471f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert * Licensed under the Apache License, Version 2.0 (the "License");
571f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert * you may not use this file except in compliance with the License.
671f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert * You may obtain a copy of the License at
771f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert *
871f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert *      http://www.apache.org/licenses/LICENSE-2.0
971f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert *
1071f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert * Unless required by applicable law or agreed to in writing, software
1171f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert * distributed under the License is distributed on an "AS IS" BASIS,
1271f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1371f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert * See the License for the specific language governing permissions and
1471f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert * limitations under the License.
1571f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert */
1671f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringertpackage com.android.quicksearchbox;
1771f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert
1871f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringertimport android.content.Context;
1971f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringertimport android.content.Intent;
2071f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringertimport android.net.Uri;
2171f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringertimport android.view.Menu;
2271f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringertimport android.view.MenuInflater;
2371f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringertimport android.view.MenuItem;
2471f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert
2571f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert/**
2671f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert * Handles app help.
2771f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert */
2871f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringertpublic class Help {
2971f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert
3071f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert    private final Context mContext;
3171f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert    private final Config mConfig;
3271f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert
3371f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert    public Help(Context context, Config config) {
3471f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert        mContext = context;
3571f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert        mConfig = config;
3671f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert    }
3771f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert
3871f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert    public void addHelpMenuItem(Menu menu, String activityName) {
397e63d073c2fa1b9836871558eda2e3a78710214dBjorn Bringert        addHelpMenuItem(menu, activityName, false);
407e63d073c2fa1b9836871558eda2e3a78710214dBjorn Bringert    }
417e63d073c2fa1b9836871558eda2e3a78710214dBjorn Bringert
427e63d073c2fa1b9836871558eda2e3a78710214dBjorn Bringert    public void addHelpMenuItem(Menu menu, String activityName, boolean showAsAction) {
4371f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert        Intent helpIntent = getHelpIntent(activityName);
4471f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert        if (helpIntent != null) {
4571f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert            MenuInflater inflater = new MenuInflater(mContext);
4671f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert            inflater.inflate(R.menu.help, menu);
4771f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert            MenuItem item = menu.findItem(R.id.menu_help);
4871f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert            item.setIntent(helpIntent);
497e63d073c2fa1b9836871558eda2e3a78710214dBjorn Bringert            if (showAsAction) {
507e63d073c2fa1b9836871558eda2e3a78710214dBjorn Bringert                item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
517e63d073c2fa1b9836871558eda2e3a78710214dBjorn Bringert            }
5271f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert        }
5371f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert    }
5471f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert
5571f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert    private Intent getHelpIntent(String activityName) {
5671f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert        Uri helpUrl = mConfig.getHelpUrl(activityName);
5771f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert        if (helpUrl == null) return null;
5871f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert        return new Intent(Intent.ACTION_VIEW, helpUrl);
5971f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert    }
6071f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert
6171f9f8ccd3c12d7d48e2fee4c55cd57e1970b797Bjorn Bringert}
62