11d422e9d731ff97d626c0705393257c798fcd189mariagpuyol/*
21d422e9d731ff97d626c0705393257c798fcd189mariagpuyol * Copyright (C) 2016 The Android Open Source Project
31d422e9d731ff97d626c0705393257c798fcd189mariagpuyol *
41d422e9d731ff97d626c0705393257c798fcd189mariagpuyol * Licensed under the Apache License, Version 2.0 (the "License");
51d422e9d731ff97d626c0705393257c798fcd189mariagpuyol * you may not use this file except in compliance with the License.
61d422e9d731ff97d626c0705393257c798fcd189mariagpuyol * You may obtain a copy of the License at
71d422e9d731ff97d626c0705393257c798fcd189mariagpuyol *
81d422e9d731ff97d626c0705393257c798fcd189mariagpuyol *      http://www.apache.org/licenses/LICENSE-2.0
91d422e9d731ff97d626c0705393257c798fcd189mariagpuyol *
101d422e9d731ff97d626c0705393257c798fcd189mariagpuyol * Unless required by applicable law or agreed to in writing, software
111d422e9d731ff97d626c0705393257c798fcd189mariagpuyol * distributed under the License is distributed on an "AS IS" BASIS,
121d422e9d731ff97d626c0705393257c798fcd189mariagpuyol * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
131d422e9d731ff97d626c0705393257c798fcd189mariagpuyol * See the License for the specific language governing permissions and
141d422e9d731ff97d626c0705393257c798fcd189mariagpuyol * limitations under the License.
151d422e9d731ff97d626c0705393257c798fcd189mariagpuyol */
165874835f1edc1cac42eb4b3aa5fe437e8fd53c78mariagpuyolpackage com.android.emergency.preferences;
171d422e9d731ff97d626c0705393257c798fcd189mariagpuyol
181d422e9d731ff97d626c0705393257c798fcd189mariagpuyolimport android.content.Context;
191d422e9d731ff97d626c0705393257c798fcd189mariagpuyolimport android.preference.EditTextPreference;
205874835f1edc1cac42eb4b3aa5fe437e8fd53c78mariagpuyolimport android.text.TextUtils;
211d422e9d731ff97d626c0705393257c798fcd189mariagpuyolimport android.util.AttributeSet;
22df6e53aa87f74a07c63d585efa2425218a37cb99mariagpuyolimport android.view.View;
23df6e53aa87f74a07c63d585efa2425218a37cb99mariagpuyolimport android.widget.TextView;
241d422e9d731ff97d626c0705393257c798fcd189mariagpuyol
255874835f1edc1cac42eb4b3aa5fe437e8fd53c78mariagpuyolimport com.android.emergency.ReloadablePreferenceInterface;
265874835f1edc1cac42eb4b3aa5fe437e8fd53c78mariagpuyol
271d422e9d731ff97d626c0705393257c798fcd189mariagpuyol/**
281d422e9d731ff97d626c0705393257c798fcd189mariagpuyol * Custom {@link EditTextPreference} that allows us to refresh and update the summary.
291d422e9d731ff97d626c0705393257c798fcd189mariagpuyol */
301d422e9d731ff97d626c0705393257c798fcd189mariagpuyolpublic class EmergencyEditTextPreference extends EditTextPreference
311d422e9d731ff97d626c0705393257c798fcd189mariagpuyol        implements ReloadablePreferenceInterface {
321d422e9d731ff97d626c0705393257c798fcd189mariagpuyol
33df6e53aa87f74a07c63d585efa2425218a37cb99mariagpuyol    private static final int MAX_LINES = 50;
34df6e53aa87f74a07c63d585efa2425218a37cb99mariagpuyol
351d422e9d731ff97d626c0705393257c798fcd189mariagpuyol    public EmergencyEditTextPreference(Context context, AttributeSet attrs) {
361d422e9d731ff97d626c0705393257c798fcd189mariagpuyol        super(context, attrs);
371d422e9d731ff97d626c0705393257c798fcd189mariagpuyol    }
381d422e9d731ff97d626c0705393257c798fcd189mariagpuyol
391d422e9d731ff97d626c0705393257c798fcd189mariagpuyol    @Override
401d422e9d731ff97d626c0705393257c798fcd189mariagpuyol    public void reloadFromPreference() {
411d422e9d731ff97d626c0705393257c798fcd189mariagpuyol        setText(getPersistedString(""));
421d422e9d731ff97d626c0705393257c798fcd189mariagpuyol    }
431d422e9d731ff97d626c0705393257c798fcd189mariagpuyol
441d422e9d731ff97d626c0705393257c798fcd189mariagpuyol    @Override
455874835f1edc1cac42eb4b3aa5fe437e8fd53c78mariagpuyol    public boolean isNotSet() {
465874835f1edc1cac42eb4b3aa5fe437e8fd53c78mariagpuyol        return TextUtils.isEmpty(getText());
475874835f1edc1cac42eb4b3aa5fe437e8fd53c78mariagpuyol    }
485874835f1edc1cac42eb4b3aa5fe437e8fd53c78mariagpuyol
495874835f1edc1cac42eb4b3aa5fe437e8fd53c78mariagpuyol    @Override
501d422e9d731ff97d626c0705393257c798fcd189mariagpuyol    public CharSequence getSummary() {
511d422e9d731ff97d626c0705393257c798fcd189mariagpuyol        String text = getText();
525874835f1edc1cac42eb4b3aa5fe437e8fd53c78mariagpuyol        return TextUtils.isEmpty(text) ? super.getSummary() : text;
531d422e9d731ff97d626c0705393257c798fcd189mariagpuyol    }
54df6e53aa87f74a07c63d585efa2425218a37cb99mariagpuyol
55df6e53aa87f74a07c63d585efa2425218a37cb99mariagpuyol    @Override
56df6e53aa87f74a07c63d585efa2425218a37cb99mariagpuyol    protected void onBindView(View view) {
57df6e53aa87f74a07c63d585efa2425218a37cb99mariagpuyol        super.onBindView(view);
58df6e53aa87f74a07c63d585efa2425218a37cb99mariagpuyol        final TextView summaryView = (TextView) view.findViewById(
59df6e53aa87f74a07c63d585efa2425218a37cb99mariagpuyol                com.android.internal.R.id.summary);
60df6e53aa87f74a07c63d585efa2425218a37cb99mariagpuyol        summaryView.setMaxLines(MAX_LINES);
61df6e53aa87f74a07c63d585efa2425218a37cb99mariagpuyol    }
621d422e9d731ff97d626c0705393257c798fcd189mariagpuyol}
63