15efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang/* 25efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * Copyright (C) 2016 The Android Open Source Project 35efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * 45efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * Licensed under the Apache License, Version 2.0 (the "License"); 55efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * you may not use this file except in compliance with the License. 65efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * You may obtain a copy of the License at 75efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * 85efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * http://www.apache.org/licenses/LICENSE-2.0 95efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * 105efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * Unless required by applicable law or agreed to in writing, software 115efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * distributed under the License is distributed on an "AS IS" BASIS, 125efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * See the License for the specific language governing permissions and 145efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * limitations under the License. 155efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang */ 165efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang 175efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langpackage com.android.settingslib.widget; 185efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang 195efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langimport android.content.Context; 205efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langimport android.support.v4.content.res.TypedArrayUtils; 215efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langimport android.support.v7.preference.Preference; 225efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langimport android.support.v7.preference.PreferenceViewHolder; 235efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langimport android.text.method.LinkMovementMethod; 245efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langimport android.util.AttributeSet; 255efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langimport android.widget.TextView; 265efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang 275efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langimport com.android.settingslib.R; 285efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang 295efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang/** 305efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * A custom preference acting as "footer" of a page. It has a field for icon and text. It is added 315efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * to screen as the last preference. 325efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang */ 335efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langpublic class FooterPreference extends Preference { 345efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang 355efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang static final int ORDER_FOOTER = Integer.MAX_VALUE - 1; 366e35c6d666d7f58225f46102e7d869d30680011aVictor Chang public static final String KEY_FOOTER = "footer_preference"; 375efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang 385efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang public FooterPreference(Context context, AttributeSet attrs) { 395efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang super(context, attrs, TypedArrayUtils.getAttr( 405efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang context, R.attr.footerPreferenceStyle, android.R.attr.preferenceStyle)); 415efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang init(); 425efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang } 435efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang 445efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang public FooterPreference(Context context) { 455efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang this(context, null); 465efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang } 475efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang 485efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang @Override 495efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang public void onBindViewHolder(PreferenceViewHolder holder) { 505efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang super.onBindViewHolder(holder); 515efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang TextView title = holder.itemView.findViewById(android.R.id.title); 525efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang title.setMovementMethod(new LinkMovementMethod()); 5329c6f0b916c24cf86a0be612fa34c5c6e5248e35Phil Weaver title.setClickable(false); 5429c6f0b916c24cf86a0be612fa34c5c6e5248e35Phil Weaver title.setLongClickable(false); 555efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang } 565efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang 575efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang private void init() { 585efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang setIcon(R.drawable.ic_info_outline_24dp); 595efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang setKey(KEY_FOOTER); 605efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang setOrder(ORDER_FOOTER); 6129c6f0b916c24cf86a0be612fa34c5c6e5248e35Phil Weaver setSelectable(false); 625efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang } 635efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang} 64