196fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert/*
296fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert * Copyright (C) 2010 The Android Open Source Project
396fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert *
496fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert * Licensed under the Apache License, Version 2.0 (the "License");
596fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert * you may not use this file except in compliance with the License.
696fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert * You may obtain a copy of the License at
796fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert *
896fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert *      http://www.apache.org/licenses/LICENSE-2.0
996fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert *
1096fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert * Unless required by applicable law or agreed to in writing, software
1196fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert * distributed under the License is distributed on an "AS IS" BASIS,
1296fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1396fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert * See the License for the specific language governing permissions and
1496fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert * limitations under the License.
1596fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert */
1692180225a3c86c5f9cba04e2a6a7564fc1adeb94Mathew Inwoodpackage com.android.quicksearchbox.preferences;
1796fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert
1896fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringertimport android.content.Context;
1996fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringertimport android.preference.DialogPreference;
2096fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringertimport android.util.AttributeSet;
2196fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert
2296fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert/**
2396fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert * Dialog preference that allows registering a listener for the result.
2496fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert */
2596fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringertpublic class OkCancelPreference extends DialogPreference {
2696fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert
2796fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert    private Listener mListener;
2896fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert
2996fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert    public OkCancelPreference(Context context, AttributeSet attrs) {
3096fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert        super(context, attrs);
3196fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert    }
3296fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert
3396fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert    @Override
3496fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert    protected void onDialogClosed(boolean positiveResult) {
3596fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert        super.onDialogClosed(positiveResult);
3696fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert
3796fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert        if (mListener != null) {
3896fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert            mListener.onDialogClosed(positiveResult);
3996fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert        }
4096fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert    }
4196fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert
4296fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert    public void setListener(Listener listener) {
4396fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert        mListener = listener;
4496fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert    }
4596fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert
4696fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert    public interface Listener {
4796fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert        void onDialogClosed(boolean okClicked);
4896fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert    }
4996fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert
5096fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert}
51