11901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka/* 21901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka * Copyright (C) 2016 The Android Open Source Project 31901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka * 41901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka * Licensed under the Apache License, Version 2.0 (the "License"); 51901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka * you may not use this file except in compliance with the License. 61901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka * You may obtain a copy of the License at 71901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka * 81901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka * http://www.apache.org/licenses/LICENSE-2.0 91901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka * 101901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka * Unless required by applicable law or agreed to in writing, software 111901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka * distributed under the License is distributed on an "AS IS" BASIS, 121901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka * See the License for the specific language governing permissions and 141901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka * limitations under the License 151901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka */ 161901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka 171901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shankapackage com.android.settings; 181901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka 191901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shankaimport android.content.Context; 201901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shankaimport android.graphics.PorterDuff; 211901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shankaimport android.util.AttributeSet; 221901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shankaimport android.widget.RadioButton; 231901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shankaimport android.widget.TextView; 241901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka 251901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shankaimport java.util.List; 261901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka 271901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shankaimport com.android.settingslib.RestrictedLockUtils; 281901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka 291901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shankaimport static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; 301901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka 311901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shankapublic class RestrictedRadioButton extends RadioButton { 321901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka private Context mContext; 331901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka private boolean mDisabledByAdmin; 341901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka private EnforcedAdmin mEnforcedAdmin; 351901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka 361901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka public RestrictedRadioButton(Context context) { 371901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka this(context, null); 381901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka } 391901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka 401901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka public RestrictedRadioButton(Context context, AttributeSet attrs) { 411901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka this(context, attrs, com.android.internal.R.attr.radioButtonStyle); 421901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka } 431901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka 441901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka public RestrictedRadioButton(Context context, AttributeSet attrs, int defStyleAttr) { 451901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka this(context, attrs, defStyleAttr, 0); 461901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka } 471901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka 481901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka public RestrictedRadioButton(Context context, AttributeSet attrs, int defStyleAttr, 491901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka int defStyleRes) { 501901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka super(context, attrs, defStyleAttr, defStyleRes); 511901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka mContext = context; 521901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka } 531901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka 541901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka @Override 551901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka public boolean performClick() { 561901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka if (mDisabledByAdmin) { 571901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka RestrictedLockUtils.sendShowAdminSupportDetailsIntent(mContext, mEnforcedAdmin); 581901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka return true; 591901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka } 601901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka return super.performClick(); 611901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka } 621901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka 631901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka public void setDisabledByAdmin(EnforcedAdmin admin) { 641901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka final boolean disabled = (admin != null); 651901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka mEnforcedAdmin = admin; 661901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka if (mDisabledByAdmin != disabled) { 671901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka mDisabledByAdmin = disabled; 681901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka RestrictedLockUtils.setTextViewAsDisabledByAdmin(mContext, 691901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka (TextView) this, mDisabledByAdmin); 701901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka if (mDisabledByAdmin) { 711901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka getButtonDrawable().setColorFilter(mContext.getColor(R.color.disabled_text_color), 721901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka PorterDuff.Mode.MULTIPLY); 731901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka } else { 741901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka getButtonDrawable().clearColorFilter(); 751901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka } 761901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka } 771901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka } 781901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka 791901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka public boolean isDisabledByAdmin() { 801901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka return mDisabledByAdmin; 811901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka } 821901ae3b3bddafc938bcbc0b03f18d7e12efef12Sudheer Shanka}