├── .gitignore
├── README.md
├── build.gradle
├── demo
├── .gitignore
├── build.gradle
├── proguard-rules.txt
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── ic_launcher-web.png
│ ├── java
│ └── info
│ │ └── hoang8f
│ │ └── mymo
│ │ └── segmented
│ │ └── demo
│ │ ├── SampleActivity.java
│ │ └── SampleApplication.java
│ └── res
│ ├── drawable-hdpi
│ └── ic_launcher.png
│ ├── drawable-mdpi
│ └── ic_launcher.png
│ ├── drawable-xhdpi
│ └── ic_launcher.png
│ ├── drawable-xxhdpi
│ └── ic_launcher.png
│ ├── layout
│ ├── activity_sample.xml
│ ├── fragment_sample.xml
│ └── radio_button_item.xml
│ ├── values-w820dp
│ └── dimens.xml
│ └── values
│ ├── colors.xml
│ ├── dimens.xml
│ ├── strings.xml
│ └── styles.xml
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── library
├── .gitignore
├── build.gradle
├── gradle.properties
├── proguard-rules.txt
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── assets
│ └── fontawesome-webfont.ttf
│ ├── java
│ └── info
│ │ └── hoang8f
│ │ └── android
│ │ └── segmented
│ │ ├── AwesomeRadioButton.java
│ │ ├── SegmentedGroup.java
│ │ ├── font
│ │ ├── AwesomeTypefaceSpan.java
│ │ ├── BootstrapTextView.java
│ │ ├── FontAwesome.java
│ │ └── IconSet.java
│ │ └── utils
│ │ ├── BootstrapText.java
│ │ ├── IconResolver.java
│ │ └── TypefaceProvider.java
│ └── res
│ ├── drawable
│ ├── button_text_color.xml
│ ├── radio_checked.xml
│ └── radio_unchecked.xml
│ └── values
│ ├── attrs.xml
│ ├── colors.xml
│ ├── dimens.xml
│ ├── strings.xml
│ └── styles.xml
├── maven_push.gradle
├── screenshot
├── screenshot.png
├── screenshot2.png
└── screenshot3.png
└── settings.gradle
/.gitignore:
--------------------------------------------------------------------------------
1 | # Created by .ignore support plugin (hsz.mobi)
2 | ### JetBrains template
3 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio
4 |
5 | *.iml
6 |
7 | ## Directory-based project format:
8 | .idea/
9 | # if you remove the above rule, at least ignore the following:
10 |
11 | # User-specific stuff:
12 | # .idea/workspace.xml
13 | # .idea/tasks.xml
14 | # .idea/dictionaries
15 |
16 | # Sensitive or high-churn files:
17 | # .idea/dataSources.ids
18 | # .idea/dataSources.xml
19 | # .idea/sqlDataSources.xml
20 | # .idea/dynamic.xml
21 | # .idea/uiDesigner.xml
22 |
23 | # Gradle:
24 | # .idea/gradle.xml
25 | # .idea/libraries
26 |
27 | # Mongo Explorer plugin:
28 | # .idea/mongoSettings.xml
29 |
30 | ## File-based project format:
31 | *.ipr
32 | *.iws
33 |
34 | ## Plugin-specific files:
35 |
36 | # IntelliJ
37 | /out/
38 |
39 | # mpeltonen/sbt-idea plugin
40 | .idea_modules/
41 |
42 | # JIRA plugin
43 | atlassian-ide-plugin.xml
44 |
45 | # Crashlytics plugin (for Android Studio and IntelliJ)
46 | com_crashlytics_export_strings.xml
47 | crashlytics.properties
48 | crashlytics-build.properties
49 | ### Android template
50 | # Built application files
51 | *.apk
52 | *.ap_
53 |
54 | # Files for the Dalvik VM
55 | *.dex
56 |
57 | # Java class files
58 | *.class
59 |
60 | # Generated files
61 | bin/
62 | gen/
63 |
64 | # Gradle files
65 | .gradle/
66 | build/
67 |
68 | # Local configuration file (sdk path, etc)
69 | local.properties
70 |
71 | # Proguard folder generated by Eclipse
72 | proguard/
73 |
74 | # Log Files
75 | *.log
76 |
77 | # Android Studio Navigation editor temp files
78 | .navigation/
79 |
80 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | android-segmented-control
2 | =========================
3 | Android-Segmented is a custom view for Android which is based on RadioGroup and RadioButton widget.
4 | This implementation is inspired by [Segmented Controls](https://developer.apple.com/library/ios/documentation/userexperience/conceptual/UIKitUICatalog/UISegmentedControl.html) for iOS.
5 |
6 |
7 | 
8 |
9 | ## Including in your project:
10 |
11 | #### Download source code and import as module
12 | The latest code has bug fixes, iOS 7's (and up) style segment control (which has nice fade animation and tint) and support for Font Awesome. (These features has not been pushed to Maven yet)
13 |
14 | #### Using maven
15 | Android-Segmented Library is pushed to [Maven Central](http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22android-segmented%22), so you just need to add the following dependency to your `build.gradle`.
16 |
17 | dependencies {
18 | compile 'info.hoang8f:android-segmented:1.0.6'
19 | }
20 |
21 | #### Manually
22 | Copy(or merge) below files into corresponding file/folder:
23 | + SegmentedGroup.java
24 | + res/drawable/*
25 | + res/drawable-v14/*
26 | + res/values/colors.xml
27 | + res/values/dimens.xml
28 | + res/values/styles.xml (only RadioButton style)
29 |
30 | Usage
31 | -----
32 | Define in xml like this and make sure that the `RadioButton`'s style is: `@style/RadioButton`
33 |
34 | ```xml
35 |
36 |
37 |
38 |
39 | ```
40 |
41 | Sample code:
42 | ```xml
43 |
44 |
53 |
54 |
60 |
61 |
67 |
68 | ```
69 |
70 | You also can be change the tint color and title color when button is checked by `setTintColor` method.
71 | Here is sample code:
72 |
73 | ```java
74 | SegmentedGroup segmented2 = (SegmentedGroup) rootView.findViewById(R.id.segmented2);
75 | segmented2.setTintColor(Color.DKGRAY);
76 |
77 | SegmentedGroup segmented3 = (SegmentedGroup) rootView.findViewById(R.id.segmented3);
78 | segmented3.setTintColor(Color.parseColor("#FFD0FF3C"), Color.parseColor("#FF7B07B2"));
79 |
80 | SegmentedGroup segmented4 = (SegmentedGroup) rootView.findViewById(R.id.segmented4);
81 | segmented4.setTintColor(getResources().getColor(R.color.radio_button_selected_color));
82 | ```
83 | If you dont specify border_width and/or corner_radius the default values will be used (1dp for border_width and 5 dp for corner_radius)
84 |
85 | Credits
86 | -------
87 | Author:
88 | * Le Van Hoang (@hoang8f)
89 | * Added support for vertical RadioGroup by [tchar](https://github.com/tchar).
90 |
91 | License
92 | -------
93 | The MIT License (MIT)
94 |
95 | Copyright (c) 2014 Le Van Hoang
96 |
97 | Permission is hereby granted, free of charge, to any person obtaining a copy
98 | of this software and associated documentation files (the "Software"), to deal
99 | in the Software without restriction, including without limitation the rights
100 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
101 | copies of the Software, and to permit persons to whom the Software is
102 | furnished to do so, subject to the following conditions:
103 |
104 | The above copyright notice and this permission notice shall be included in all
105 | copies or substantial portions of the Software.
106 |
107 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
108 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
109 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
110 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
111 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
112 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
113 | SOFTWARE.
114 |
115 |
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | mavenCentral()
6 | maven {
7 | url "https://oss.sonatype.org/content/repositories/snapshots"
8 | }
9 | }
10 | dependencies {
11 | classpath 'com.android.tools.build:gradle:1.5.0'
12 | }
13 | }
14 |
15 | def isReleaseBuild() {
16 | return version.contains("SNAPSHOT") == false
17 | }
18 |
19 | allprojects {
20 | version = VERSION_NAME
21 | group = GROUP
22 |
23 | repositories {
24 | mavenCentral()
25 | maven {
26 | url "https://oss.sonatype.org/content/repositories/snapshots"
27 | }
28 | }
29 | }
30 |
31 | apply plugin: 'android-reporting'
32 |
--------------------------------------------------------------------------------
/demo/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/demo/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 23
5 | buildToolsVersion '23.0.2'
6 | defaultConfig {
7 | minSdkVersion 8
8 | targetSdkVersion 23
9 | versionCode 1
10 | versionName '1.0'
11 | }
12 | buildTypes {
13 | release {
14 | minifyEnabled false
15 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
16 | }
17 | }
18 | productFlavors {
19 | }
20 | }
21 |
22 | dependencies {
23 | compile 'com.android.support:appcompat-v7:23.1.1'
24 | compile fileTree(dir: 'libs', include: ['*.jar'])
25 | compile project(':library')
26 | // compile 'info.hoang8f:android-segmented:1.0.6'
27 | }
28 |
--------------------------------------------------------------------------------
/demo/proguard-rules.txt:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Applications/Android Studio.app/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the ProGuard
5 | # include property in project.properties.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
--------------------------------------------------------------------------------
/demo/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
11 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/demo/src/main/ic_launcher-web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kaopiz/android-segmented-control/519e553c84a351929d4ef2fdf31854e3a36735b9/demo/src/main/ic_launcher-web.png
--------------------------------------------------------------------------------
/demo/src/main/java/info/hoang8f/mymo/segmented/demo/SampleActivity.java:
--------------------------------------------------------------------------------
1 | package info.hoang8f.mymo.segmented.demo;
2 |
3 | import android.os.Bundle;
4 | import android.support.v4.app.Fragment;
5 | import android.support.v7.app.ActionBarActivity;
6 | import android.support.v7.app.AppCompatActivity;
7 | import android.view.LayoutInflater;
8 | import android.view.View;
9 | import android.view.ViewGroup;
10 | import android.widget.Button;
11 | import android.widget.RadioButton;
12 | import android.widget.RadioGroup;
13 | import android.widget.Toast;
14 |
15 | import info.hoang8f.android.segmented.AwesomeRadioButton;
16 | import info.hoang8f.android.segmented.SegmentedGroup;
17 |
18 | public class SampleActivity extends AppCompatActivity {
19 |
20 | @Override
21 | protected void onCreate(Bundle savedInstanceState) {
22 | super.onCreate(savedInstanceState);
23 | setContentView(R.layout.activity_sample);
24 |
25 | if (savedInstanceState == null) {
26 | getSupportFragmentManager().beginTransaction()
27 | .add(R.id.container, new PlaceholderFragment())
28 | .commit();
29 | }
30 | }
31 |
32 | /**
33 | * A placeholder fragment containing a simple view.
34 | */
35 | public static class PlaceholderFragment extends Fragment implements RadioGroup.OnCheckedChangeListener, View.OnClickListener {
36 |
37 | SegmentedGroup segmented5;
38 |
39 | public PlaceholderFragment() {
40 | }
41 |
42 | @Override
43 | public View onCreateView(LayoutInflater inflater, ViewGroup container,
44 | Bundle savedInstanceState) {
45 | View rootView = inflater.inflate(R.layout.fragment_sample, container, false);
46 |
47 | // SegmentedGroup segmented2 = (SegmentedGroup) rootView.findViewById(R.id.segmented2);
48 | // segmented2.setTintColor(Color.DKGRAY);
49 | //
50 | // SegmentedGroup segmented3 = (SegmentedGroup) rootView.findViewById(R.id.segmented3);
51 | // //Tint color, and text color when checked
52 | //// segmented3.setTintColor(Color.parseColor("#FFD0FF3C"), Color.parseColor("#FF7B07B2"));
53 | //
54 |
55 | segmented5 = (SegmentedGroup) rootView.findViewById(R.id.segmented5);
56 | Button addBtn = (Button) rootView.findViewById(R.id.add_segmented);
57 | Button removeBtn = (Button) rootView.findViewById(R.id.remove_segmented);
58 |
59 | //Set listener for button
60 | addBtn.setOnClickListener(this);
61 | removeBtn.setOnClickListener(this);
62 |
63 | //Set change listener on SegmentedGroup
64 | // segmented2.setOnCheckedChangeListener(this);
65 | // segmented3.setOnCheckedChangeListener(this);
66 | segmented5.setOnCheckedChangeListener(this);
67 |
68 | // Support awesome font
69 | AwesomeRadioButton button = (AwesomeRadioButton) rootView.findViewById(R.id.button42);
70 | button.setMarkdownText("{fa_facebook} facebook");
71 | return rootView;
72 | }
73 |
74 | @Override
75 | public void onCheckedChanged(RadioGroup group, int checkedId) {
76 | switch (checkedId) {
77 | case R.id.button21:
78 | Toast.makeText(getActivity(), "One", Toast.LENGTH_SHORT).show();
79 | break;
80 | case R.id.button22:
81 | Toast.makeText(getActivity(), "Two", Toast.LENGTH_SHORT).show();
82 | break;
83 | case R.id.button31:
84 | Toast.makeText(getActivity(), "One", Toast.LENGTH_SHORT).show();
85 | break;
86 | case R.id.button32:
87 | Toast.makeText(getActivity(), "Two", Toast.LENGTH_SHORT).show();
88 | break;
89 | case R.id.button33:
90 | Toast.makeText(getActivity(), "Three", Toast.LENGTH_SHORT).show();
91 | break;
92 | default:
93 | // Nothing to do
94 | }
95 | }
96 |
97 | @Override
98 | public void onClick(View v) {
99 | switch (v.getId()) {
100 | case R.id.add_segmented:
101 | addButton(segmented5);
102 | break;
103 | case R.id.remove_segmented:
104 | removeButton(segmented5);
105 | break;
106 | default:
107 | // Nothing to do
108 | }
109 | }
110 |
111 | private void addButton(SegmentedGroup group) {
112 | RadioButton radioButton = (RadioButton) getActivity().getLayoutInflater().inflate(R.layout.radio_button_item, null);
113 | radioButton.setText("Button " + (group.getChildCount() + 1));
114 | group.addView(radioButton);
115 | group.updateBackground();
116 | }
117 |
118 | private void removeButton(SegmentedGroup group) {
119 | if (group.getChildCount() < 1) return;
120 | group.removeViewAt(group.getChildCount() - 1);
121 | group.updateBackground();
122 |
123 | //Update margin for last item
124 | if (group.getChildCount() < 1) return;
125 | RadioGroup.LayoutParams layoutParams = new RadioGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
126 | layoutParams.setMargins(0, 0, 0, 0);
127 | group.getChildAt(group.getChildCount() - 1).setLayoutParams(layoutParams);
128 | }
129 | }
130 | }
131 |
--------------------------------------------------------------------------------
/demo/src/main/java/info/hoang8f/mymo/segmented/demo/SampleApplication.java:
--------------------------------------------------------------------------------
1 | package info.hoang8f.mymo.segmented.demo;
2 |
3 | import android.app.Application;
4 |
5 | import info.hoang8f.android.segmented.utils.TypefaceProvider;
6 |
7 | public class SampleApplication extends Application {
8 | @Override
9 | public void onCreate() {
10 | super.onCreate();
11 | TypefaceProvider.registerDefaultIconSets();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/demo/src/main/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kaopiz/android-segmented-control/519e553c84a351929d4ef2fdf31854e3a36735b9/demo/src/main/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/demo/src/main/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kaopiz/android-segmented-control/519e553c84a351929d4ef2fdf31854e3a36735b9/demo/src/main/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/demo/src/main/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kaopiz/android-segmented-control/519e553c84a351929d4ef2fdf31854e3a36735b9/demo/src/main/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/demo/src/main/res/drawable-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kaopiz/android-segmented-control/519e553c84a351929d4ef2fdf31854e3a36735b9/demo/src/main/res/drawable-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/demo/src/main/res/layout/activity_sample.xml:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/demo/src/main/res/layout/fragment_sample.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
13 |
14 |
20 |
21 |
32 |
33 |
40 |
41 |
48 |
49 |
50 |
51 |
52 |
57 |
58 |
67 |
68 |
74 |
75 |
81 |
82 |
88 |
89 |
90 |
91 |
92 |
98 |
99 |
108 |
109 |
116 |
117 |
124 |
125 |
132 |
133 |
134 |
135 |
136 |
137 |
141 |
142 |
149 |
150 |
158 |
159 |
165 |
166 |
172 |
173 |
174 |
175 |
176 |
183 |
184 |
192 |
193 |
198 |
199 |
204 |
205 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
221 |
222 |
226 |
227 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
246 |
247 |
252 |
253 |
258 |
259 |
260 |
261 |
--------------------------------------------------------------------------------
/demo/src/main/res/layout/radio_button_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/demo/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/demo/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #ff33b5e5
4 | @android:color/transparent
5 |
--------------------------------------------------------------------------------
/demo/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 | 5dp
6 | 1dp
7 |
8 |
--------------------------------------------------------------------------------
/demo/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Segmented demo
5 | Segmented demo
6 |
7 |
8 |
--------------------------------------------------------------------------------
/demo/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Settings specified in this file will override any Gradle settings
5 | # configured through the IDE.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
19 |
20 | #VERSION_NAME=1.0.6-SNAPSHOT
21 | VERSION_NAME=1.0.6
22 | VERSION_CODE=6
23 | GROUP=info.hoang8f
24 |
25 | POM_DESCRIPTION=An Android segmented control implementation inspired by Segmented Controls for iOS.
26 | POM_URL=https://github.com/hoang8f/android-segmented-control
27 | POM_SCM_URL=https://github.com/hoang8f/android-segmented-control.git
28 | POM_SCM_CONNECTION=scm:git@github.com:hoang8f/android-segmented-control.git
29 | POM_SCM_DEV_CONNECTION=scm:git@github.com:hoang8f/android-segmented-control.git
30 | POM_LICENCE_NAME=MIT License
31 | POM_LICENCE_URL=http://opensource.org/licenses/MIT
32 | POM_LICENCE_DIST=repo
33 | POM_DEVELOPER_ID=hoang8f
34 | POM_DEVELOPER_NAME=Le Van Hoang
35 | nexusUsername=
36 | nexusPassword=
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kaopiz/android-segmented-control/519e553c84a351929d4ef2fdf31854e3a36735b9/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Tue Apr 07 01:55:54 JST 2015
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-all.zip
7 |
--------------------------------------------------------------------------------
/gradlew:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | ##############################################################################
4 | ##
5 | ## Gradle start up script for UN*X
6 | ##
7 | ##############################################################################
8 |
9 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
10 | DEFAULT_JVM_OPTS=""
11 |
12 | APP_NAME="Gradle"
13 | APP_BASE_NAME=`basename "$0"`
14 |
15 | # Use the maximum available, or set MAX_FD != -1 to use that value.
16 | MAX_FD="maximum"
17 |
18 | warn ( ) {
19 | echo "$*"
20 | }
21 |
22 | die ( ) {
23 | echo
24 | echo "$*"
25 | echo
26 | exit 1
27 | }
28 |
29 | # OS specific support (must be 'true' or 'false').
30 | cygwin=false
31 | msys=false
32 | darwin=false
33 | case "`uname`" in
34 | CYGWIN* )
35 | cygwin=true
36 | ;;
37 | Darwin* )
38 | darwin=true
39 | ;;
40 | MINGW* )
41 | msys=true
42 | ;;
43 | esac
44 |
45 | # For Cygwin, ensure paths are in UNIX format before anything is touched.
46 | if $cygwin ; then
47 | [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
48 | fi
49 |
50 | # Attempt to set APP_HOME
51 | # Resolve links: $0 may be a link
52 | PRG="$0"
53 | # Need this for relative symlinks.
54 | while [ -h "$PRG" ] ; do
55 | ls=`ls -ld "$PRG"`
56 | link=`expr "$ls" : '.*-> \(.*\)$'`
57 | if expr "$link" : '/.*' > /dev/null; then
58 | PRG="$link"
59 | else
60 | PRG=`dirname "$PRG"`"/$link"
61 | fi
62 | done
63 | SAVED="`pwd`"
64 | cd "`dirname \"$PRG\"`/" >&-
65 | APP_HOME="`pwd -P`"
66 | cd "$SAVED" >&-
67 |
68 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
69 |
70 | # Determine the Java command to use to start the JVM.
71 | if [ -n "$JAVA_HOME" ] ; then
72 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
73 | # IBM's JDK on AIX uses strange locations for the executables
74 | JAVACMD="$JAVA_HOME/jre/sh/java"
75 | else
76 | JAVACMD="$JAVA_HOME/bin/java"
77 | fi
78 | if [ ! -x "$JAVACMD" ] ; then
79 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
80 |
81 | Please set the JAVA_HOME variable in your environment to match the
82 | location of your Java installation."
83 | fi
84 | else
85 | JAVACMD="java"
86 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
87 |
88 | Please set the JAVA_HOME variable in your environment to match the
89 | location of your Java installation."
90 | fi
91 |
92 | # Increase the maximum file descriptors if we can.
93 | if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
94 | MAX_FD_LIMIT=`ulimit -H -n`
95 | if [ $? -eq 0 ] ; then
96 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
97 | MAX_FD="$MAX_FD_LIMIT"
98 | fi
99 | ulimit -n $MAX_FD
100 | if [ $? -ne 0 ] ; then
101 | warn "Could not set maximum file descriptor limit: $MAX_FD"
102 | fi
103 | else
104 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
105 | fi
106 | fi
107 |
108 | # For Darwin, add options to specify how the application appears in the dock
109 | if $darwin; then
110 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
111 | fi
112 |
113 | # For Cygwin, switch paths to Windows format before running java
114 | if $cygwin ; then
115 | APP_HOME=`cygpath --path --mixed "$APP_HOME"`
116 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
117 |
118 | # We build the pattern for arguments to be converted via cygpath
119 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
120 | SEP=""
121 | for dir in $ROOTDIRSRAW ; do
122 | ROOTDIRS="$ROOTDIRS$SEP$dir"
123 | SEP="|"
124 | done
125 | OURCYGPATTERN="(^($ROOTDIRS))"
126 | # Add a user-defined pattern to the cygpath arguments
127 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then
128 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
129 | fi
130 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
131 | i=0
132 | for arg in "$@" ; do
133 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
134 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
135 |
136 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
137 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
138 | else
139 | eval `echo args$i`="\"$arg\""
140 | fi
141 | i=$((i+1))
142 | done
143 | case $i in
144 | (0) set -- ;;
145 | (1) set -- "$args0" ;;
146 | (2) set -- "$args0" "$args1" ;;
147 | (3) set -- "$args0" "$args1" "$args2" ;;
148 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
149 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
150 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
151 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
152 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
153 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
154 | esac
155 | fi
156 |
157 | # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
158 | function splitJvmOpts() {
159 | JVM_OPTS=("$@")
160 | }
161 | eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
162 | JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
163 |
164 | exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
165 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
12 | set DEFAULT_JVM_OPTS=
13 |
14 | set DIRNAME=%~dp0
15 | if "%DIRNAME%" == "" set DIRNAME=.
16 | set APP_BASE_NAME=%~n0
17 | set APP_HOME=%DIRNAME%
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windowz variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 | if "%@eval[2+2]" == "4" goto 4NT_args
53 |
54 | :win9xME_args
55 | @rem Slurp the command line arguments.
56 | set CMD_LINE_ARGS=
57 | set _SKIP=2
58 |
59 | :win9xME_args_slurp
60 | if "x%~1" == "x" goto execute
61 |
62 | set CMD_LINE_ARGS=%*
63 | goto execute
64 |
65 | :4NT_args
66 | @rem Get arguments from the 4NT Shell from JP Software
67 | set CMD_LINE_ARGS=%$
68 |
69 | :execute
70 | @rem Setup the command line
71 |
72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if "%ERRORLEVEL%"=="0" goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85 | exit /b 1
86 |
87 | :mainEnd
88 | if "%OS%"=="Windows_NT" endlocal
89 |
90 | :omega
91 |
--------------------------------------------------------------------------------
/library/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/library/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 23
5 | buildToolsVersion "23.0.2"
6 |
7 | defaultConfig {
8 | minSdkVersion 8
9 | targetSdkVersion 23
10 | versionCode 1
11 | versionName "1.0"
12 | }
13 | buildTypes {
14 | release {
15 | minifyEnabled false
16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
17 | }
18 | }
19 | }
20 |
21 | dependencies {
22 | compile fileTree(dir: 'libs', include: ['*.jar'])
23 | compile 'com.android.support:support-annotations:23.2.0'
24 | }
25 |
26 | // Used to push in maven
27 | apply from: '../maven_push.gradle'
28 |
--------------------------------------------------------------------------------
/library/gradle.properties:
--------------------------------------------------------------------------------
1 | POM_NAME=Android Segmented Library
2 | POM_ARTIFACT_ID=android-segmented
3 | POM_PACKAGING=aar
--------------------------------------------------------------------------------
/library/proguard-rules.txt:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Applications/Android Studio.app/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the ProGuard
5 | # include property in project.properties.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
--------------------------------------------------------------------------------
/library/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/library/src/main/assets/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kaopiz/android-segmented-control/519e553c84a351929d4ef2fdf31854e3a36735b9/library/src/main/assets/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/library/src/main/java/info/hoang8f/android/segmented/AwesomeRadioButton.java:
--------------------------------------------------------------------------------
1 | package info.hoang8f.android.segmented;
2 |
3 | import android.content.Context;
4 | import android.content.res.TypedArray;
5 | import android.support.annotation.Nullable;
6 | import android.util.AttributeSet;
7 | import android.widget.RadioButton;
8 |
9 | import info.hoang8f.android.segmented.font.BootstrapTextView;
10 | import info.hoang8f.android.segmented.utils.BootstrapText;
11 | import info.hoang8f.android.segmented.utils.IconResolver;
12 |
13 | public class AwesomeRadioButton extends RadioButton implements BootstrapTextView{
14 |
15 | private BootstrapText bootstrapText;
16 |
17 | public AwesomeRadioButton(Context context) {
18 | super(context);
19 | }
20 |
21 | public AwesomeRadioButton(Context context, AttributeSet attrs) {
22 | super(context, attrs);
23 | init(attrs);
24 | }
25 |
26 | public AwesomeRadioButton(Context context, AttributeSet attrs, int defStyleAttr) {
27 | super(context, attrs, defStyleAttr);
28 | init(attrs);
29 | }
30 |
31 | private void init(AttributeSet attrs) {
32 | TypedArray typedArray = getContext().obtainStyledAttributes(attrs, R.styleable.AwesomeRadioButton);
33 | String markdownText;
34 |
35 | try {
36 | markdownText = typedArray.getString(R.styleable.AwesomeRadioButton_awesome_text);
37 | } finally {
38 | typedArray.recycle();
39 | }
40 | if (markdownText != null) {
41 | setMarkdownText(markdownText);
42 | }
43 | updateBootstrapState();
44 | }
45 |
46 | @Override
47 | public void setBootstrapText(@Nullable BootstrapText bootstrapText) {
48 | this.bootstrapText = bootstrapText;
49 | updateBootstrapState();
50 | }
51 |
52 | @Nullable
53 | @Override
54 | public BootstrapText getBootstrapText() {
55 | return bootstrapText;
56 | }
57 |
58 | @Override
59 | public void setMarkdownText(@Nullable String text) {
60 | String textSpace = text + " ";
61 | setBootstrapText(IconResolver.resolveMarkdown(getContext(), textSpace, isInEditMode()));
62 | }
63 |
64 | protected void updateBootstrapState() {
65 | if (bootstrapText != null) {
66 | setText(bootstrapText);
67 | }
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/library/src/main/java/info/hoang8f/android/segmented/SegmentedGroup.java:
--------------------------------------------------------------------------------
1 | package info.hoang8f.android.segmented;
2 |
3 | import android.content.Context;
4 | import android.content.res.ColorStateList;
5 | import android.content.res.Resources;
6 | import android.content.res.TypedArray;
7 | import android.graphics.Color;
8 | import android.graphics.drawable.Drawable;
9 | import android.graphics.drawable.GradientDrawable;
10 | import android.graphics.drawable.LayerDrawable;
11 | import android.graphics.drawable.StateListDrawable;
12 | import android.graphics.drawable.TransitionDrawable;
13 | import android.os.Build;
14 | import android.util.AttributeSet;
15 | import android.util.StateSet;
16 | import android.util.TypedValue;
17 | import android.view.View;
18 | import android.widget.Button;
19 | import android.widget.LinearLayout;
20 | import android.widget.RadioButton;
21 | import android.widget.RadioGroup;
22 |
23 | import java.util.HashMap;
24 |
25 | public class SegmentedGroup extends RadioGroup {
26 |
27 | private int mMarginDp;
28 | private Resources resources;
29 | private int mTintColor;
30 | private int mUnCheckedTintColor;
31 | private int mCheckedTextColor = Color.WHITE;
32 | private LayoutSelector mLayoutSelector;
33 | private Float mCornerRadius;
34 | private OnCheckedChangeListener mCheckedChangeListener;
35 | private HashMap mDrawableMap;
36 | private int mLastCheckId;
37 |
38 | public SegmentedGroup(Context context) {
39 | super(context);
40 | resources = getResources();
41 | mTintColor = resources.getColor(R.color.radio_button_selected_color);
42 | mUnCheckedTintColor = resources.getColor(R.color.radio_button_unselected_color);
43 | mMarginDp = (int) getResources().getDimension(R.dimen.radio_button_stroke_border);
44 | mCornerRadius = getResources().getDimension(R.dimen.radio_button_conner_radius);
45 | mLayoutSelector = new LayoutSelector(mCornerRadius);
46 | }
47 |
48 | public SegmentedGroup(Context context, AttributeSet attrs) {
49 | super(context, attrs);
50 | resources = getResources();
51 | mTintColor = resources.getColor(R.color.radio_button_selected_color);
52 | mUnCheckedTintColor = resources.getColor(R.color.radio_button_unselected_color);
53 | mMarginDp = (int) getResources().getDimension(R.dimen.radio_button_stroke_border);
54 | mCornerRadius = getResources().getDimension(R.dimen.radio_button_conner_radius);
55 | initAttrs(attrs);
56 | mLayoutSelector = new LayoutSelector(mCornerRadius);
57 | }
58 |
59 | /* Reads the attributes from the layout */
60 | private void initAttrs(AttributeSet attrs) {
61 | TypedArray typedArray = getContext().getTheme().obtainStyledAttributes(
62 | attrs,
63 | R.styleable.SegmentedGroup,
64 | 0, 0);
65 |
66 | try {
67 | mMarginDp = (int) typedArray.getDimension(
68 | R.styleable.SegmentedGroup_sc_border_width,
69 | getResources().getDimension(R.dimen.radio_button_stroke_border));
70 |
71 | mCornerRadius = typedArray.getDimension(
72 | R.styleable.SegmentedGroup_sc_corner_radius,
73 | getResources().getDimension(R.dimen.radio_button_conner_radius));
74 |
75 | mTintColor = typedArray.getColor(
76 | R.styleable.SegmentedGroup_sc_tint_color,
77 | getResources().getColor(R.color.radio_button_selected_color));
78 |
79 | mCheckedTextColor = typedArray.getColor(
80 | R.styleable.SegmentedGroup_sc_checked_text_color,
81 | getResources().getColor(android.R.color.white));
82 |
83 | mUnCheckedTintColor = typedArray.getColor(
84 | R.styleable.SegmentedGroup_sc_unchecked_tint_color,
85 | getResources().getColor(R.color.radio_button_unselected_color));
86 | } finally {
87 | typedArray.recycle();
88 | }
89 | }
90 |
91 | @Override
92 | protected void onFinishInflate() {
93 | super.onFinishInflate();
94 | //Use holo light for default
95 | updateBackground();
96 | }
97 |
98 | public void setTintColor(int tintColor) {
99 | mTintColor = tintColor;
100 | updateBackground();
101 | }
102 |
103 | public void setTintColor(int tintColor, int checkedTextColor) {
104 | mTintColor = tintColor;
105 | mCheckedTextColor = checkedTextColor;
106 | updateBackground();
107 | }
108 |
109 | public void setUnCheckedTintColor(int unCheckedTintColor, int unCheckedTextColor) {
110 | mUnCheckedTintColor = unCheckedTintColor;
111 | updateBackground();
112 | }
113 |
114 | public void updateBackground() {
115 | mDrawableMap = new HashMap<>();
116 | int count = super.getChildCount();
117 | for (int i = 0; i < count; i++) {
118 | View child = getChildAt(i);
119 | updateBackground(child);
120 |
121 | // If this is the last view, don't set LayoutParams
122 | if (i == count - 1) break;
123 |
124 | LayoutParams initParams = (LayoutParams) child.getLayoutParams();
125 | LayoutParams params = new LayoutParams(initParams.width, initParams.height, initParams.weight);
126 | // Check orientation for proper margins
127 | if (getOrientation() == LinearLayout.HORIZONTAL) {
128 | params.setMargins(0, 0, -mMarginDp, 0);
129 | } else {
130 | params.setMargins(0, 0, 0, -mMarginDp);
131 | }
132 | child.setLayoutParams(params);
133 | }
134 | }
135 |
136 | private void updateBackground(View view) {
137 | int checked = mLayoutSelector.getSelected();
138 | int unchecked = mLayoutSelector.getUnselected();
139 | //Set text color
140 | ColorStateList colorStateList = new ColorStateList(new int[][]{
141 | {-android.R.attr.state_checked},
142 | {android.R.attr.state_checked}},
143 | new int[]{mTintColor, mCheckedTextColor});
144 | ((Button) view).setTextColor(colorStateList);
145 |
146 | //Redraw with tint color
147 | Drawable checkedDrawable = resources.getDrawable(checked).mutate();
148 | Drawable uncheckedDrawable = resources.getDrawable(unchecked).mutate();
149 | ((GradientDrawable) checkedDrawable).setColor(mTintColor);
150 | ((GradientDrawable) checkedDrawable).setStroke(mMarginDp, mTintColor);
151 | ((GradientDrawable) uncheckedDrawable).setStroke(mMarginDp, mTintColor);
152 | ((GradientDrawable) uncheckedDrawable).setColor(mUnCheckedTintColor);
153 | //Set proper radius
154 | ((GradientDrawable) checkedDrawable).setCornerRadii(mLayoutSelector.getChildRadii(view));
155 | ((GradientDrawable) uncheckedDrawable).setCornerRadii(mLayoutSelector.getChildRadii(view));
156 |
157 | GradientDrawable maskDrawable = (GradientDrawable) resources.getDrawable(unchecked).mutate();
158 | maskDrawable.setStroke(mMarginDp, mTintColor);
159 | maskDrawable.setColor(mUnCheckedTintColor);
160 | maskDrawable.setCornerRadii(mLayoutSelector.getChildRadii(view));
161 | int maskColor = Color.argb(50, Color.red(mTintColor), Color.green(mTintColor), Color.blue(mTintColor));
162 | maskDrawable.setColor(maskColor);
163 | LayerDrawable pressedDrawable = new LayerDrawable(new Drawable[] {uncheckedDrawable, maskDrawable});
164 |
165 | Drawable[] drawables = {uncheckedDrawable, checkedDrawable};
166 | TransitionDrawable transitionDrawable = new TransitionDrawable(drawables);
167 | if (((RadioButton) view).isChecked()) {
168 | transitionDrawable.reverseTransition(0);
169 | }
170 |
171 | StateListDrawable stateListDrawable = new StateListDrawable();
172 | stateListDrawable.addState(new int[] {-android.R.attr.state_checked, android.R.attr.state_pressed}, pressedDrawable);
173 | stateListDrawable.addState(StateSet.WILD_CARD, transitionDrawable);
174 |
175 | mDrawableMap.put(view.getId(), transitionDrawable);
176 |
177 | //Set button background
178 | if (Build.VERSION.SDK_INT >= 16) {
179 | view.setBackground(stateListDrawable);
180 | } else {
181 | view.setBackgroundDrawable(stateListDrawable);
182 | }
183 |
184 | super.setOnCheckedChangeListener(new OnCheckedChangeListener() {
185 | @Override
186 | public void onCheckedChanged(RadioGroup group, int checkedId) {
187 | TransitionDrawable current = mDrawableMap.get(checkedId);
188 | current.reverseTransition(200);
189 | if (mLastCheckId != 0) {
190 | TransitionDrawable last = mDrawableMap.get(mLastCheckId);
191 | if (last != null) last.reverseTransition(200);
192 | }
193 | mLastCheckId = checkedId;
194 |
195 | if (mCheckedChangeListener != null) {
196 | mCheckedChangeListener.onCheckedChanged(group, checkedId);
197 | }
198 | }
199 | });
200 | }
201 |
202 | @Override
203 | public void onViewRemoved(View child) {
204 | super.onViewRemoved(child);
205 | mDrawableMap.remove(child.getId());
206 | }
207 |
208 | @Override
209 | public void setOnCheckedChangeListener(OnCheckedChangeListener listener) {
210 | mCheckedChangeListener = listener;
211 | }
212 |
213 | /*
214 | * This class is used to provide the proper layout based on the view.
215 | * Also provides the proper radius for corners.
216 | * The layout is the same for each selected left/top middle or right/bottom button.
217 | * float tables for setting the radius via Gradient.setCornerRadii are used instead
218 | * of multiple xml drawables.
219 | */
220 | private class LayoutSelector {
221 |
222 | private int children;
223 | private int child;
224 | private final int SELECTED_LAYOUT = R.drawable.radio_checked;
225 | private final int UNSELECTED_LAYOUT = R.drawable.radio_unchecked;
226 |
227 | private float r; //this is the radios read by attributes or xml dimens
228 | private final float r1 = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP
229 | , 0.1f, getResources().getDisplayMetrics()); //0.1 dp to px
230 | private final float[] rLeft; // left radio button
231 | private final float[] rRight; // right radio button
232 | private final float[] rMiddle; // middle radio button
233 | private final float[] rDefault; // default radio button
234 | private final float[] rTop; // top radio button
235 | private final float[] rBot; // bot radio button
236 | private float[] radii; // result radii float table
237 |
238 | public LayoutSelector(float cornerRadius) {
239 | children = -1; // Init this to force setChildRadii() to enter for the first time.
240 | child = -1; // Init this to force setChildRadii() to enter for the first time
241 | r = cornerRadius;
242 | rLeft = new float[]{r, r, r1, r1, r1, r1, r, r};
243 | rRight = new float[]{r1, r1, r, r, r, r, r1, r1};
244 | rMiddle = new float[]{r1, r1, r1, r1, r1, r1, r1, r1};
245 | rDefault = new float[]{r, r, r, r, r, r, r, r};
246 | rTop = new float[]{r, r, r, r, r1, r1, r1, r1};
247 | rBot = new float[]{r1, r1, r1, r1, r, r, r, r};
248 | }
249 |
250 | private int getChildren() {
251 | return SegmentedGroup.this.getChildCount();
252 | }
253 |
254 | private int getChildIndex(View view) {
255 | return SegmentedGroup.this.indexOfChild(view);
256 | }
257 |
258 | private void setChildRadii(int newChildren, int newChild) {
259 |
260 | // If same values are passed, just return. No need to update anything
261 | if (children == newChildren && child == newChild)
262 | return;
263 |
264 | // Set the new values
265 | children = newChildren;
266 | child = newChild;
267 |
268 | // if there is only one child provide the default radio button
269 | if (children == 1) {
270 | radii = rDefault;
271 | } else if (child == 0) { //left or top
272 | radii = (getOrientation() == LinearLayout.HORIZONTAL) ? rLeft : rTop;
273 | } else if (child == children - 1) { //right or bottom
274 | radii = (getOrientation() == LinearLayout.HORIZONTAL) ? rRight : rBot;
275 | } else { //middle
276 | radii = rMiddle;
277 | }
278 | }
279 |
280 | /* Returns the selected layout id based on view */
281 | public int getSelected() {
282 | return SELECTED_LAYOUT;
283 | }
284 |
285 | /* Returns the unselected layout id based on view */
286 | public int getUnselected() {
287 | return UNSELECTED_LAYOUT;
288 | }
289 |
290 | /* Returns the radii float table based on view for Gradient.setRadii()*/
291 | public float[] getChildRadii(View view) {
292 | int newChildren = getChildren();
293 | int newChild = getChildIndex(view);
294 | setChildRadii(newChildren, newChild);
295 | return radii;
296 | }
297 | }
298 | }
--------------------------------------------------------------------------------
/library/src/main/java/info/hoang8f/android/segmented/font/AwesomeTypefaceSpan.java:
--------------------------------------------------------------------------------
1 | package info.hoang8f.android.segmented.font;
2 |
3 | import android.content.Context;
4 | import android.support.annotation.NonNull;
5 | import android.text.TextPaint;
6 | import android.text.style.TypefaceSpan;
7 |
8 | import info.hoang8f.android.segmented.utils.TypefaceProvider;
9 |
10 | /**
11 | * A custom span which paints text using the typeface specified by the IconSet passed to the constructor
12 | */
13 | public class AwesomeTypefaceSpan extends TypefaceSpan {
14 |
15 | private final Context context;
16 | private final IconSet iconSet;
17 |
18 | public AwesomeTypefaceSpan(Context context, IconSet iconSet) {
19 | super(iconSet.fontPath().toString());
20 | this.context = context.getApplicationContext();
21 | this.iconSet = iconSet;
22 | }
23 |
24 | @Override public void updateDrawState(@NonNull TextPaint ds) {
25 | ds.setTypeface(TypefaceProvider.getTypeface(context, iconSet));
26 | }
27 |
28 | @Override public void updateMeasureState(@NonNull TextPaint paint) {
29 | paint.setTypeface(TypefaceProvider.getTypeface(context, iconSet));
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/library/src/main/java/info/hoang8f/android/segmented/font/BootstrapTextView.java:
--------------------------------------------------------------------------------
1 | package info.hoang8f.android.segmented.font;
2 |
3 | import android.support.annotation.Nullable;
4 |
5 | import info.hoang8f.android.segmented.utils.BootstrapText;
6 |
7 |
8 | /**
9 | * Views which implement this interface can set their text using BootstrapText
10 | */
11 | public interface BootstrapTextView {
12 |
13 | /**
14 | * Sets the view to display the given BootstrapText
15 | *
16 | * @param bootstrapText the BootstrapText
17 | */
18 | void setBootstrapText(@Nullable BootstrapText bootstrapText);
19 |
20 | /**
21 | * @return the current BootstrapText, or null if none exists
22 | */
23 | @Nullable BootstrapText getBootstrapText();
24 |
25 | /**
26 | * Sets the view to display the given markdown text, by constructing a BootstrapText. e.g.
27 | * "This is a {fa-stop} button"
28 | *
29 | * @param text the markdown text
30 | */
31 | void setMarkdownText(@Nullable String text);
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/library/src/main/java/info/hoang8f/android/segmented/font/FontAwesome.java:
--------------------------------------------------------------------------------
1 | package info.hoang8f.android.segmented.font;
2 |
3 | import android.support.annotation.StringDef;
4 |
5 | import java.lang.annotation.Retention;
6 | import java.lang.annotation.RetentionPolicy;
7 | import java.util.HashMap;
8 | import java.util.Map;
9 |
10 | /**
11 | * Maps FontAwesome Icon Codes to unicode characters, allowing its use in AwesomeTextView.
12 | * See the Cheatsheet for icon
13 | * code reference. Please note that icon codes use underscores rather than hyphens in this
14 | * library. For example, "fa-play" would become "fa_play". This is due to restrictions in how
15 | * Android Attributes can be named.
16 | */
17 | public class FontAwesome implements IconSet {
18 |
19 | public static final String FONT_PATH = "fontawesome-webfont.ttf";
20 |
21 | @Override
22 | public CharSequence unicodeForKey(@Icon CharSequence key) {
23 | return ICON_MAP.get(key.toString());
24 | }
25 |
26 | @Override
27 | public CharSequence iconCodeForAttrIndex(int index) {
28 | return ATTR_MAP.get(index);
29 | }
30 |
31 | @Override
32 | public CharSequence fontPath() {
33 | return FONT_PATH;
34 | }
35 |
36 | // Auto-generated Icon Set from 2015-10-05
37 |
38 | private static final Map ICON_MAP = new HashMap<>();
39 | private static final Map ATTR_MAP = new HashMap<>();
40 |
41 | @Retention(RetentionPolicy.SOURCE)
42 | @StringDef({
43 | FA_ADJUST,
44 | FA_ADN,
45 | FA_ALIGN_CENTER,
46 | FA_ALIGN_JUSTIFY,
47 | FA_ALIGN_LEFT,
48 | FA_ALIGN_RIGHT,
49 | FA_AMAZON,
50 | FA_AMBULANCE,
51 | FA_ANCHOR,
52 | FA_ANDROID,
53 | FA_ANGELLIST,
54 | FA_ANGLE_DOUBLE_DOWN,
55 | FA_ANGLE_DOUBLE_LEFT,
56 | FA_ANGLE_DOUBLE_RIGHT,
57 | FA_ANGLE_DOUBLE_UP,
58 | FA_ANGLE_DOWN,
59 | FA_ANGLE_LEFT,
60 | FA_ANGLE_RIGHT,
61 | FA_ANGLE_UP,
62 | FA_APPLE,
63 | FA_ARCHIVE,
64 | FA_AREA_CHART,
65 | FA_ARROW_CIRCLE_DOWN,
66 | FA_ARROW_CIRCLE_LEFT,
67 | FA_ARROW_CIRCLE_O_DOWN,
68 | FA_ARROW_CIRCLE_O_LEFT,
69 | FA_ARROW_CIRCLE_O_RIGHT,
70 | FA_ARROW_CIRCLE_O_UP,
71 | FA_ARROW_CIRCLE_RIGHT,
72 | FA_ARROW_CIRCLE_UP,
73 | FA_ARROW_DOWN,
74 | FA_ARROW_LEFT,
75 | FA_ARROW_RIGHT,
76 | FA_ARROW_UP,
77 | FA_ARROWS,
78 | FA_ARROWS_ALT,
79 | FA_ARROWS_H,
80 | FA_ARROWS_V,
81 | FA_ASTERISK,
82 | FA_AT,
83 | FA_AUTOMOBILE,
84 | FA_BACKWARD,
85 | FA_BALANCE_SCALE,
86 | FA_BAN,
87 | FA_BANK,
88 | FA_BAR_CHART,
89 | FA_BAR_CHART_O,
90 | FA_BARCODE,
91 | FA_BARS,
92 | FA_BATTERY_0,
93 | FA_BATTERY_1,
94 | FA_BATTERY_2,
95 | FA_BATTERY_3,
96 | FA_BATTERY_4,
97 | FA_BATTERY_EMPTY,
98 | FA_BATTERY_FULL,
99 | FA_BATTERY_HALF,
100 | FA_BATTERY_QUARTER,
101 | FA_BATTERY_THREE_QUARTERS,
102 | FA_BED,
103 | FA_BEER,
104 | FA_BEHANCE,
105 | FA_BEHANCE_SQUARE,
106 | FA_BELL,
107 | FA_BELL_O,
108 | FA_BELL_SLASH,
109 | FA_BELL_SLASH_O,
110 | FA_BICYCLE,
111 | FA_BINOCULARS,
112 | FA_BIRTHDAY_CAKE,
113 | FA_BITBUCKET,
114 | FA_BITBUCKET_SQUARE,
115 | FA_BITCOIN,
116 | FA_BLACK_TIE,
117 | FA_BLUETOOTH,
118 | FA_BLUETOOTH_B,
119 | FA_BOLD,
120 | FA_BOLT,
121 | FA_BOMB,
122 | FA_BOOK,
123 | FA_BOOKMARK,
124 | FA_BOOKMARK_O,
125 | FA_BRIEFCASE,
126 | FA_BTC,
127 | FA_BUG,
128 | FA_BUILDING,
129 | FA_BUILDING_O,
130 | FA_BULLHORN,
131 | FA_BULLSEYE,
132 | FA_BUS,
133 | FA_BUYSELLADS,
134 | FA_CAB,
135 | FA_CALCULATOR,
136 | FA_CALENDAR,
137 | FA_CALENDAR_CHECK_O,
138 | FA_CALENDAR_MINUS_O,
139 | FA_CALENDAR_O,
140 | FA_CALENDAR_PLUS_O,
141 | FA_CALENDAR_TIMES_O,
142 | FA_CAMERA,
143 | FA_CAMERA_RETRO,
144 | FA_CAR,
145 | FA_CARET_DOWN,
146 | FA_CARET_LEFT,
147 | FA_CARET_RIGHT,
148 | FA_CARET_SQUARE_O_DOWN,
149 | FA_CARET_SQUARE_O_LEFT,
150 | FA_CARET_SQUARE_O_RIGHT,
151 | FA_CARET_SQUARE_O_UP,
152 | FA_CARET_UP,
153 | FA_CART_ARROW_DOWN,
154 | FA_CART_PLUS,
155 | FA_CC,
156 | FA_CC_AMEX,
157 | FA_CC_DINERS_CLUB,
158 | FA_CC_DISCOVER,
159 | FA_CC_JCB,
160 | FA_CC_MASTERCARD,
161 | FA_CC_PAYPAL,
162 | FA_CC_STRIPE,
163 | FA_CC_VISA,
164 | FA_CERTIFICATE,
165 | FA_CHAIN,
166 | FA_CHAIN_BROKEN,
167 | FA_CHECK,
168 | FA_CHECK_CIRCLE,
169 | FA_CHECK_CIRCLE_O,
170 | FA_CHECK_SQUARE,
171 | FA_CHECK_SQUARE_O,
172 | FA_CHEVRON_CIRCLE_DOWN,
173 | FA_CHEVRON_CIRCLE_LEFT,
174 | FA_CHEVRON_CIRCLE_RIGHT,
175 | FA_CHEVRON_CIRCLE_UP,
176 | FA_CHEVRON_DOWN,
177 | FA_CHEVRON_LEFT,
178 | FA_CHEVRON_RIGHT,
179 | FA_CHEVRON_UP,
180 | FA_CHILD,
181 | FA_CHROME,
182 | FA_CIRCLE,
183 | FA_CIRCLE_O,
184 | FA_CIRCLE_O_NOTCH,
185 | FA_CIRCLE_THIN,
186 | FA_CLIPBOARD,
187 | FA_CLOCK_O,
188 | FA_CLONE,
189 | FA_CLOSE,
190 | FA_CLOUD,
191 | FA_CLOUD_DOWNLOAD,
192 | FA_CLOUD_UPLOAD,
193 | FA_CNY,
194 | FA_CODE,
195 | FA_CODE_FORK,
196 | FA_CODEPEN,
197 | FA_CODIEPIE,
198 | FA_COFFEE,
199 | FA_COG,
200 | FA_COGS,
201 | FA_COLUMNS,
202 | FA_COMMENT,
203 | FA_COMMENT_O,
204 | FA_COMMENTING,
205 | FA_COMMENTING_O,
206 | FA_COMMENTS,
207 | FA_COMMENTS_O,
208 | FA_COMPASS,
209 | FA_COMPRESS,
210 | FA_CONNECTDEVELOP,
211 | FA_CONTAO,
212 | FA_COPY,
213 | FA_COPYRIGHT,
214 | FA_CREATIVE_COMMONS,
215 | FA_CREDIT_CARD,
216 | FA_CREDIT_CARD_ALT,
217 | FA_CROP,
218 | FA_CROSSHAIRS,
219 | FA_CSS3,
220 | FA_CUBE,
221 | FA_CUBES,
222 | FA_CUT,
223 | FA_CUTLERY,
224 | FA_DASHBOARD,
225 | FA_DASHCUBE,
226 | FA_DATABASE,
227 | FA_DEDENT,
228 | FA_DELICIOUS,
229 | FA_DESKTOP,
230 | FA_DEVIANTART,
231 | FA_DIAMOND,
232 | FA_DIGG,
233 | FA_DOLLAR,
234 | FA_DOT_CIRCLE_O,
235 | FA_DOWNLOAD,
236 | FA_DRIBBBLE,
237 | FA_DROPBOX,
238 | FA_DRUPAL,
239 | FA_EDGE,
240 | FA_EDIT,
241 | FA_EJECT,
242 | FA_ELLIPSIS_H,
243 | FA_ELLIPSIS_V,
244 | FA_EMPIRE,
245 | FA_ENVELOPE,
246 | FA_ENVELOPE_O,
247 | FA_ENVELOPE_SQUARE,
248 | FA_ERASER,
249 | FA_EUR,
250 | FA_EURO,
251 | FA_EXCHANGE,
252 | FA_EXCLAMATION,
253 | FA_EXCLAMATION_CIRCLE,
254 | FA_EXCLAMATION_TRIANGLE,
255 | FA_EXPAND,
256 | FA_EXPEDITEDSSL,
257 | FA_EXTERNAL_LINK,
258 | FA_EXTERNAL_LINK_SQUARE,
259 | FA_EYE,
260 | FA_EYE_SLASH,
261 | FA_EYEDROPPER,
262 | FA_FACEBOOK,
263 | FA_FACEBOOK_F,
264 | FA_FACEBOOK_OFFICIAL,
265 | FA_FACEBOOK_SQUARE,
266 | FA_FAST_BACKWARD,
267 | FA_FAST_FORWARD,
268 | FA_FAX,
269 | FA_FEED,
270 | FA_FEMALE,
271 | FA_FIGHTER_JET,
272 | FA_FILE,
273 | FA_FILE_ARCHIVE_O,
274 | FA_FILE_AUDIO_O,
275 | FA_FILE_CODE_O,
276 | FA_FILE_EXCEL_O,
277 | FA_FILE_IMAGE_O,
278 | FA_FILE_MOVIE_O,
279 | FA_FILE_O,
280 | FA_FILE_PDF_O,
281 | FA_FILE_PHOTO_O,
282 | FA_FILE_PICTURE_O,
283 | FA_FILE_POWERPOINT_O,
284 | FA_FILE_SOUND_O,
285 | FA_FILE_TEXT,
286 | FA_FILE_TEXT_O,
287 | FA_FILE_VIDEO_O,
288 | FA_FILE_WORD_O,
289 | FA_FILE_ZIP_O,
290 | FA_FILES_O,
291 | FA_FILM,
292 | FA_FILTER,
293 | FA_FIRE,
294 | FA_FIRE_EXTINGUISHER,
295 | FA_FIREFOX,
296 | FA_FLAG,
297 | FA_FLAG_CHECKERED,
298 | FA_FLAG_O,
299 | FA_FLASH,
300 | FA_FLASK,
301 | FA_FLICKR,
302 | FA_FLOPPY_O,
303 | FA_FOLDER,
304 | FA_FOLDER_O,
305 | FA_FOLDER_OPEN,
306 | FA_FOLDER_OPEN_O,
307 | FA_FONT,
308 | FA_FONTICONS,
309 | FA_FORT_AWESOME,
310 | FA_FORUMBEE,
311 | FA_FORWARD,
312 | FA_FOURSQUARE,
313 | FA_FROWN_O,
314 | FA_FUTBOL_O,
315 | FA_GAMEPAD,
316 | FA_GAVEL,
317 | FA_GBP,
318 | FA_GE,
319 | FA_GEAR,
320 | FA_GEARS,
321 | FA_GENDERLESS,
322 | FA_GET_POCKET,
323 | FA_GG,
324 | FA_GG_CIRCLE,
325 | FA_GIFT,
326 | FA_GIT,
327 | FA_GIT_SQUARE,
328 | FA_GITHUB,
329 | FA_GITHUB_ALT,
330 | FA_GITHUB_SQUARE,
331 | FA_GITTIP,
332 | FA_GLASS,
333 | FA_GLOBE,
334 | FA_GOOGLE,
335 | FA_GOOGLE_PLUS,
336 | FA_GOOGLE_PLUS_SQUARE,
337 | FA_GOOGLE_WALLET,
338 | FA_GRADUATION_CAP,
339 | FA_GRATIPAY,
340 | FA_GROUP,
341 | FA_H_SQUARE,
342 | FA_HACKER_NEWS,
343 | FA_HAND_GRAB_O,
344 | FA_HAND_LIZARD_O,
345 | FA_HAND_O_DOWN,
346 | FA_HAND_O_LEFT,
347 | FA_HAND_O_RIGHT,
348 | FA_HAND_O_UP,
349 | FA_HAND_PAPER_O,
350 | FA_HAND_PEACE_O,
351 | FA_HAND_POINTER_O,
352 | FA_HAND_ROCK_O,
353 | FA_HAND_SCISSORS_O,
354 | FA_HAND_SPOCK_O,
355 | FA_HAND_STOP_O,
356 | FA_HASHTAG,
357 | FA_HDD_O,
358 | FA_HEADER,
359 | FA_HEADPHONES,
360 | FA_HEART,
361 | FA_HEART_O,
362 | FA_HEARTBEAT,
363 | FA_HISTORY,
364 | FA_HOME,
365 | FA_HOSPITAL_O,
366 | FA_HOTEL,
367 | FA_HOURGLASS,
368 | FA_HOURGLASS_1,
369 | FA_HOURGLASS_2,
370 | FA_HOURGLASS_3,
371 | FA_HOURGLASS_END,
372 | FA_HOURGLASS_HALF,
373 | FA_HOURGLASS_O,
374 | FA_HOURGLASS_START,
375 | FA_HOUZZ,
376 | FA_HTML5,
377 | FA_I_CURSOR,
378 | FA_ILS,
379 | FA_IMAGE,
380 | FA_INBOX,
381 | FA_INDENT,
382 | FA_INDUSTRY,
383 | FA_INFO,
384 | FA_INFO_CIRCLE,
385 | FA_INR,
386 | FA_INSTAGRAM,
387 | FA_INSTITUTION,
388 | FA_INTERNET_EXPLORER,
389 | FA_INTERSEX,
390 | FA_IOXHOST,
391 | FA_ITALIC,
392 | FA_JOOMLA,
393 | FA_JPY,
394 | FA_JSFIDDLE,
395 | FA_KEY,
396 | FA_KEYBOARD_O,
397 | FA_KRW,
398 | FA_LANGUAGE,
399 | FA_LAPTOP,
400 | FA_LASTFM,
401 | FA_LASTFM_SQUARE,
402 | FA_LEAF,
403 | FA_LEANPUB,
404 | FA_LEGAL,
405 | FA_LEMON_O,
406 | FA_LEVEL_DOWN,
407 | FA_LEVEL_UP,
408 | FA_LIFE_BOUY,
409 | FA_LIFE_BUOY,
410 | FA_LIFE_RING,
411 | FA_LIFE_SAVER,
412 | FA_LIGHTBULB_O,
413 | FA_LINE_CHART,
414 | FA_LINK,
415 | FA_LINKEDIN,
416 | FA_LINKEDIN_SQUARE,
417 | FA_LINUX,
418 | FA_LIST,
419 | FA_LIST_ALT,
420 | FA_LIST_OL,
421 | FA_LIST_UL,
422 | FA_LOCATION_ARROW,
423 | FA_LOCK,
424 | FA_LONG_ARROW_DOWN,
425 | FA_LONG_ARROW_LEFT,
426 | FA_LONG_ARROW_RIGHT,
427 | FA_LONG_ARROW_UP,
428 | FA_MAGIC,
429 | FA_MAGNET,
430 | FA_MAIL_FORWARD,
431 | FA_MAIL_REPLY,
432 | FA_MAIL_REPLY_ALL,
433 | FA_MALE,
434 | FA_MAP,
435 | FA_MAP_MARKER,
436 | FA_MAP_O,
437 | FA_MAP_PIN,
438 | FA_MAP_SIGNS,
439 | FA_MARS,
440 | FA_MARS_DOUBLE,
441 | FA_MARS_STROKE,
442 | FA_MARS_STROKE_H,
443 | FA_MARS_STROKE_V,
444 | FA_MAXCDN,
445 | FA_MEANPATH,
446 | FA_MEDIUM,
447 | FA_MEDKIT,
448 | FA_MEH_O,
449 | FA_MERCURY,
450 | FA_MICROPHONE,
451 | FA_MICROPHONE_SLASH,
452 | FA_MINUS,
453 | FA_MINUS_CIRCLE,
454 | FA_MINUS_SQUARE,
455 | FA_MINUS_SQUARE_O,
456 | FA_MIXCLOUD,
457 | FA_MOBILE,
458 | FA_MOBILE_PHONE,
459 | FA_MODX,
460 | FA_MONEY,
461 | FA_MOON_O,
462 | FA_MORTAR_BOARD,
463 | FA_MOTORCYCLE,
464 | FA_MOUSE_POINTER,
465 | FA_MUSIC,
466 | FA_NAVICON,
467 | FA_NEUTER,
468 | FA_NEWSPAPER_O,
469 | FA_OBJECT_GROUP,
470 | FA_OBJECT_UNGROUP,
471 | FA_ODNOKLASSNIKI,
472 | FA_ODNOKLASSNIKI_SQUARE,
473 | FA_OPENCART,
474 | FA_OPENID,
475 | FA_OPERA,
476 | FA_OPTIN_MONSTER,
477 | FA_OUTDENT,
478 | FA_PAGELINES,
479 | FA_PAINT_BRUSH,
480 | FA_PAPER_PLANE,
481 | FA_PAPER_PLANE_O,
482 | FA_PAPERCLIP,
483 | FA_PARAGRAPH,
484 | FA_PASTE,
485 | FA_PAUSE,
486 | FA_PAUSE_CIRCLE,
487 | FA_PAUSE_CIRCLE_O,
488 | FA_PAW,
489 | FA_PAYPAL,
490 | FA_PENCIL,
491 | FA_PENCIL_SQUARE,
492 | FA_PENCIL_SQUARE_O,
493 | FA_PERCENT,
494 | FA_PHONE,
495 | FA_PHONE_SQUARE,
496 | FA_PHOTO,
497 | FA_PICTURE_O,
498 | FA_PIE_CHART,
499 | FA_PIED_PIPER,
500 | FA_PIED_PIPER_ALT,
501 | FA_PINTEREST,
502 | FA_PINTEREST_P,
503 | FA_PINTEREST_SQUARE,
504 | FA_PLANE,
505 | FA_PLAY,
506 | FA_PLAY_CIRCLE,
507 | FA_PLAY_CIRCLE_O,
508 | FA_PLUG,
509 | FA_PLUS,
510 | FA_PLUS_CIRCLE,
511 | FA_PLUS_SQUARE,
512 | FA_PLUS_SQUARE_O,
513 | FA_POWER_OFF,
514 | FA_PRINT,
515 | FA_PRODUCT_HUNT,
516 | FA_PUZZLE_PIECE,
517 | FA_QQ,
518 | FA_QRCODE,
519 | FA_QUESTION,
520 | FA_QUESTION_CIRCLE,
521 | FA_QUOTE_LEFT,
522 | FA_QUOTE_RIGHT,
523 | FA_RA,
524 | FA_RANDOM,
525 | FA_REBEL,
526 | FA_RECYCLE,
527 | FA_REDDIT,
528 | FA_REDDIT_ALIEN,
529 | FA_REDDIT_SQUARE,
530 | FA_REFRESH,
531 | FA_REGISTERED,
532 | FA_REMOVE,
533 | FA_RENREN,
534 | FA_REORDER,
535 | FA_REPEAT,
536 | FA_REPLY,
537 | FA_REPLY_ALL,
538 | FA_RETWEET,
539 | FA_RMB,
540 | FA_ROAD,
541 | FA_ROCKET,
542 | FA_ROTATE_LEFT,
543 | FA_ROTATE_RIGHT,
544 | FA_ROUBLE,
545 | FA_RSS,
546 | FA_RSS_SQUARE,
547 | FA_RUB,
548 | FA_RUBLE,
549 | FA_RUPEE,
550 | FA_SAFARI,
551 | FA_SAVE,
552 | FA_SCISSORS,
553 | FA_SCRIBD,
554 | FA_SEARCH,
555 | FA_SEARCH_MINUS,
556 | FA_SEARCH_PLUS,
557 | FA_SELLSY,
558 | FA_SEND,
559 | FA_SEND_O,
560 | FA_SERVER,
561 | FA_SHARE,
562 | FA_SHARE_ALT,
563 | FA_SHARE_ALT_SQUARE,
564 | FA_SHARE_SQUARE,
565 | FA_SHARE_SQUARE_O,
566 | FA_SHEKEL,
567 | FA_SHEQEL,
568 | FA_SHIELD,
569 | FA_SHIP,
570 | FA_SHIRTSINBULK,
571 | FA_SHOPPING_BAG,
572 | FA_SHOPPING_BASKET,
573 | FA_SHOPPING_CART,
574 | FA_SIGN_IN,
575 | FA_SIGN_OUT,
576 | FA_SIGNAL,
577 | FA_SIMPLYBUILT,
578 | FA_SITEMAP,
579 | FA_SKYATLAS,
580 | FA_SKYPE,
581 | FA_SLACK,
582 | FA_SLIDERS,
583 | FA_SLIDESHARE,
584 | FA_SMILE_O,
585 | FA_SOCCER_BALL_O,
586 | FA_SORT,
587 | FA_SORT_ALPHA_ASC,
588 | FA_SORT_ALPHA_DESC,
589 | FA_SORT_AMOUNT_ASC,
590 | FA_SORT_AMOUNT_DESC,
591 | FA_SORT_ASC,
592 | FA_SORT_DESC,
593 | FA_SORT_DOWN,
594 | FA_SORT_NUMERIC_ASC,
595 | FA_SORT_NUMERIC_DESC,
596 | FA_SORT_UP,
597 | FA_SOUNDCLOUD,
598 | FA_SPACE_SHUTTLE,
599 | FA_SPINNER,
600 | FA_SPOON,
601 | FA_SPOTIFY,
602 | FA_SQUARE,
603 | FA_SQUARE_O,
604 | FA_STACK_EXCHANGE,
605 | FA_STACK_OVERFLOW,
606 | FA_STAR,
607 | FA_STAR_HALF,
608 | FA_STAR_HALF_EMPTY,
609 | FA_STAR_HALF_FULL,
610 | FA_STAR_HALF_O,
611 | FA_STAR_O,
612 | FA_STEAM,
613 | FA_STEAM_SQUARE,
614 | FA_STEP_BACKWARD,
615 | FA_STEP_FORWARD,
616 | FA_STETHOSCOPE,
617 | FA_STICKY_NOTE,
618 | FA_STICKY_NOTE_O,
619 | FA_STOP,
620 | FA_STOP_CIRCLE,
621 | FA_STOP_CIRCLE_O,
622 | FA_STREET_VIEW,
623 | FA_STRIKETHROUGH,
624 | FA_STUMBLEUPON,
625 | FA_STUMBLEUPON_CIRCLE,
626 | FA_SUBSCRIPT,
627 | FA_SUBWAY,
628 | FA_SUITCASE,
629 | FA_SUN_O,
630 | FA_SUPERSCRIPT,
631 | FA_SUPPORT,
632 | FA_TABLE,
633 | FA_TABLET,
634 | FA_TACHOMETER,
635 | FA_TAG,
636 | FA_TAGS,
637 | FA_TASKS,
638 | FA_TAXI,
639 | FA_TELEVISION,
640 | FA_TENCENT_WEIBO,
641 | FA_TERMINAL,
642 | FA_TEXT_HEIGHT,
643 | FA_TEXT_WIDTH,
644 | FA_TH,
645 | FA_TH_LARGE,
646 | FA_TH_LIST,
647 | FA_THUMB_TACK,
648 | FA_THUMBS_DOWN,
649 | FA_THUMBS_O_DOWN,
650 | FA_THUMBS_O_UP,
651 | FA_THUMBS_UP,
652 | FA_TICKET,
653 | FA_TIMES,
654 | FA_TIMES_CIRCLE,
655 | FA_TIMES_CIRCLE_O,
656 | FA_TINT,
657 | FA_TOGGLE_DOWN,
658 | FA_TOGGLE_LEFT,
659 | FA_TOGGLE_OFF,
660 | FA_TOGGLE_ON,
661 | FA_TOGGLE_RIGHT,
662 | FA_TOGGLE_UP,
663 | FA_TRADEMARK,
664 | FA_TRAIN,
665 | FA_TRANSGENDER,
666 | FA_TRANSGENDER_ALT,
667 | FA_TRASH,
668 | FA_TRASH_O,
669 | FA_TREE,
670 | FA_TRELLO,
671 | FA_TRIPADVISOR,
672 | FA_TROPHY,
673 | FA_TRUCK,
674 | FA_TRY,
675 | FA_TTY,
676 | FA_TUMBLR,
677 | FA_TUMBLR_SQUARE,
678 | FA_TURKISH_LIRA,
679 | FA_TV,
680 | FA_TWITCH,
681 | FA_TWITTER,
682 | FA_TWITTER_SQUARE,
683 | FA_UMBRELLA,
684 | FA_UNDERLINE,
685 | FA_UNDO,
686 | FA_UNIVERSITY,
687 | FA_UNLINK,
688 | FA_UNLOCK,
689 | FA_UNLOCK_ALT,
690 | FA_UNSORTED,
691 | FA_UPLOAD,
692 | FA_USB,
693 | FA_USD,
694 | FA_USER,
695 | FA_USER_MD,
696 | FA_USER_PLUS,
697 | FA_USER_SECRET,
698 | FA_USER_TIMES,
699 | FA_USERS,
700 | FA_VENUS,
701 | FA_VENUS_DOUBLE,
702 | FA_VENUS_MARS,
703 | FA_VIACOIN,
704 | FA_VIDEO_CAMERA,
705 | FA_VIMEO,
706 | FA_VIMEO_SQUARE,
707 | FA_VINE,
708 | FA_VK,
709 | FA_VOLUME_DOWN,
710 | FA_VOLUME_OFF,
711 | FA_VOLUME_UP,
712 | FA_WARNING,
713 | FA_WECHAT,
714 | FA_WEIBO,
715 | FA_WEIXIN,
716 | FA_WHATSAPP,
717 | FA_WHEELCHAIR,
718 | FA_WIFI,
719 | FA_WIKIPEDIA_W,
720 | FA_WINDOWS,
721 | FA_WON,
722 | FA_WORDPRESS,
723 | FA_WRENCH,
724 | FA_XING,
725 | FA_XING_SQUARE,
726 | FA_Y_COMBINATOR,
727 | FA_Y_COMBINATOR_SQUARE,
728 | FA_YAHOO,
729 | FA_YC,
730 | FA_YC_SQUARE,
731 | FA_YELP,
732 | FA_YEN,
733 | FA_YOUTUBE,
734 | FA_YOUTUBE_PLAY,
735 | FA_YOUTUBE_SQUARE
736 | }) public @interface Icon {
737 | }
738 |
739 | public static final String FA_ADJUST = "fa_adjust";
740 | public static final String FA_ADN = "fa_adn";
741 | public static final String FA_ALIGN_CENTER = "fa_align_center";
742 | public static final String FA_ALIGN_JUSTIFY = "fa_align_justify";
743 | public static final String FA_ALIGN_LEFT = "fa_align_left";
744 | public static final String FA_ALIGN_RIGHT = "fa_align_right";
745 | public static final String FA_AMAZON = "fa_amazon";
746 | public static final String FA_AMBULANCE = "fa_ambulance";
747 | public static final String FA_ANCHOR = "fa_anchor";
748 | public static final String FA_ANDROID = "fa_android";
749 | public static final String FA_ANGELLIST = "fa_angellist";
750 | public static final String FA_ANGLE_DOUBLE_DOWN = "fa_angle_double_down";
751 | public static final String FA_ANGLE_DOUBLE_LEFT = "fa_angle_double_left";
752 | public static final String FA_ANGLE_DOUBLE_RIGHT = "fa_angle_double_right";
753 | public static final String FA_ANGLE_DOUBLE_UP = "fa_angle_double_up";
754 | public static final String FA_ANGLE_DOWN = "fa_angle_down";
755 | public static final String FA_ANGLE_LEFT = "fa_angle_left";
756 | public static final String FA_ANGLE_RIGHT = "fa_angle_right";
757 | public static final String FA_ANGLE_UP = "fa_angle_up";
758 | public static final String FA_APPLE = "fa_apple";
759 | public static final String FA_ARCHIVE = "fa_archive";
760 | public static final String FA_AREA_CHART = "fa_area_chart";
761 | public static final String FA_ARROW_CIRCLE_DOWN = "fa_arrow_circle_down";
762 | public static final String FA_ARROW_CIRCLE_LEFT = "fa_arrow_circle_left";
763 | public static final String FA_ARROW_CIRCLE_O_DOWN = "fa_arrow_circle_o_down";
764 | public static final String FA_ARROW_CIRCLE_O_LEFT = "fa_arrow_circle_o_left";
765 | public static final String FA_ARROW_CIRCLE_O_RIGHT = "fa_arrow_circle_o_right";
766 | public static final String FA_ARROW_CIRCLE_O_UP = "fa_arrow_circle_o_up";
767 | public static final String FA_ARROW_CIRCLE_RIGHT = "fa_arrow_circle_right";
768 | public static final String FA_ARROW_CIRCLE_UP = "fa_arrow_circle_up";
769 | public static final String FA_ARROW_DOWN = "fa_arrow_down";
770 | public static final String FA_ARROW_LEFT = "fa_arrow_left";
771 | public static final String FA_ARROW_RIGHT = "fa_arrow_right";
772 | public static final String FA_ARROW_UP = "fa_arrow_up";
773 | public static final String FA_ARROWS = "fa_arrows";
774 | public static final String FA_ARROWS_ALT = "fa_arrows_alt";
775 | public static final String FA_ARROWS_H = "fa_arrows_h";
776 | public static final String FA_ARROWS_V = "fa_arrows_v";
777 | public static final String FA_ASTERISK = "fa_asterisk";
778 | public static final String FA_AT = "fa_at";
779 | public static final String FA_AUTOMOBILE = "fa_automobile";
780 | public static final String FA_BACKWARD = "fa_backward";
781 | public static final String FA_BALANCE_SCALE = "fa_balance_scale";
782 | public static final String FA_BAN = "fa_ban";
783 | public static final String FA_BANK = "fa_bank";
784 | public static final String FA_BAR_CHART = "fa_bar_chart";
785 | public static final String FA_BAR_CHART_O = "fa_bar_chart_o";
786 | public static final String FA_BARCODE = "fa_barcode";
787 | public static final String FA_BARS = "fa_bars";
788 | public static final String FA_BATTERY_0 = "fa_battery_0";
789 | public static final String FA_BATTERY_1 = "fa_battery_1";
790 | public static final String FA_BATTERY_2 = "fa_battery_2";
791 | public static final String FA_BATTERY_3 = "fa_battery_3";
792 | public static final String FA_BATTERY_4 = "fa_battery_4";
793 | public static final String FA_BATTERY_EMPTY = "fa_battery_empty";
794 | public static final String FA_BATTERY_FULL = "fa_battery_full";
795 | public static final String FA_BATTERY_HALF = "fa_battery_half";
796 | public static final String FA_BATTERY_QUARTER = "fa_battery_quarter";
797 | public static final String FA_BATTERY_THREE_QUARTERS = "fa_battery_three_quarters";
798 | public static final String FA_BED = "fa_bed";
799 | public static final String FA_BEER = "fa_beer";
800 | public static final String FA_BEHANCE = "fa_behance";
801 | public static final String FA_BEHANCE_SQUARE = "fa_behance_square";
802 | public static final String FA_BELL = "fa_bell";
803 | public static final String FA_BELL_O = "fa_bell_o";
804 | public static final String FA_BELL_SLASH = "fa_bell_slash";
805 | public static final String FA_BELL_SLASH_O = "fa_bell_slash_o";
806 | public static final String FA_BICYCLE = "fa_bicycle";
807 | public static final String FA_BINOCULARS = "fa_binoculars";
808 | public static final String FA_BIRTHDAY_CAKE = "fa_birthday_cake";
809 | public static final String FA_BITBUCKET = "fa_bitbucket";
810 | public static final String FA_BITBUCKET_SQUARE = "fa_bitbucket_square";
811 | public static final String FA_BITCOIN = "fa_bitcoin";
812 | public static final String FA_BLACK_TIE = "fa_black_tie";
813 | public static final String FA_BLUETOOTH = "fa_bluetooth";
814 | public static final String FA_BLUETOOTH_B = "fa_bluetooth_b";
815 | public static final String FA_BOLD = "fa_bold";
816 | public static final String FA_BOLT = "fa_bolt";
817 | public static final String FA_BOMB = "fa_bomb";
818 | public static final String FA_BOOK = "fa_book";
819 | public static final String FA_BOOKMARK = "fa_bookmark";
820 | public static final String FA_BOOKMARK_O = "fa_bookmark_o";
821 | public static final String FA_BRIEFCASE = "fa_briefcase";
822 | public static final String FA_BTC = "fa_btc";
823 | public static final String FA_BUG = "fa_bug";
824 | public static final String FA_BUILDING = "fa_building";
825 | public static final String FA_BUILDING_O = "fa_building_o";
826 | public static final String FA_BULLHORN = "fa_bullhorn";
827 | public static final String FA_BULLSEYE = "fa_bullseye";
828 | public static final String FA_BUS = "fa_bus";
829 | public static final String FA_BUYSELLADS = "fa_buysellads";
830 | public static final String FA_CAB = "fa_cab";
831 | public static final String FA_CALCULATOR = "fa_calculator";
832 | public static final String FA_CALENDAR = "fa_calendar";
833 | public static final String FA_CALENDAR_CHECK_O = "fa_calendar_check_o";
834 | public static final String FA_CALENDAR_MINUS_O = "fa_calendar_minus_o";
835 | public static final String FA_CALENDAR_O = "fa_calendar_o";
836 | public static final String FA_CALENDAR_PLUS_O = "fa_calendar_plus_o";
837 | public static final String FA_CALENDAR_TIMES_O = "fa_calendar_times_o";
838 | public static final String FA_CAMERA = "fa_camera";
839 | public static final String FA_CAMERA_RETRO = "fa_camera_retro";
840 | public static final String FA_CAR = "fa_car";
841 | public static final String FA_CARET_DOWN = "fa_caret_down";
842 | public static final String FA_CARET_LEFT = "fa_caret_left";
843 | public static final String FA_CARET_RIGHT = "fa_caret_right";
844 | public static final String FA_CARET_SQUARE_O_DOWN = "fa_caret_square_o_down";
845 | public static final String FA_CARET_SQUARE_O_LEFT = "fa_caret_square_o_left";
846 | public static final String FA_CARET_SQUARE_O_RIGHT = "fa_caret_square_o_right";
847 | public static final String FA_CARET_SQUARE_O_UP = "fa_caret_square_o_up";
848 | public static final String FA_CARET_UP = "fa_caret_up";
849 | public static final String FA_CART_ARROW_DOWN = "fa_cart_arrow_down";
850 | public static final String FA_CART_PLUS = "fa_cart_plus";
851 | public static final String FA_CC = "fa_cc";
852 | public static final String FA_CC_AMEX = "fa_cc_amex";
853 | public static final String FA_CC_DINERS_CLUB = "fa_cc_diners_club";
854 | public static final String FA_CC_DISCOVER = "fa_cc_discover";
855 | public static final String FA_CC_JCB = "fa_cc_jcb";
856 | public static final String FA_CC_MASTERCARD = "fa_cc_mastercard";
857 | public static final String FA_CC_PAYPAL = "fa_cc_paypal";
858 | public static final String FA_CC_STRIPE = "fa_cc_stripe";
859 | public static final String FA_CC_VISA = "fa_cc_visa";
860 | public static final String FA_CERTIFICATE = "fa_certificate";
861 | public static final String FA_CHAIN = "fa_chain";
862 | public static final String FA_CHAIN_BROKEN = "fa_chain_broken";
863 | public static final String FA_CHECK = "fa_check";
864 | public static final String FA_CHECK_CIRCLE = "fa_check_circle";
865 | public static final String FA_CHECK_CIRCLE_O = "fa_check_circle_o";
866 | public static final String FA_CHECK_SQUARE = "fa_check_square";
867 | public static final String FA_CHECK_SQUARE_O = "fa_check_square_o";
868 | public static final String FA_CHEVRON_CIRCLE_DOWN = "fa_chevron_circle_down";
869 | public static final String FA_CHEVRON_CIRCLE_LEFT = "fa_chevron_circle_left";
870 | public static final String FA_CHEVRON_CIRCLE_RIGHT = "fa_chevron_circle_right";
871 | public static final String FA_CHEVRON_CIRCLE_UP = "fa_chevron_circle_up";
872 | public static final String FA_CHEVRON_DOWN = "fa_chevron_down";
873 | public static final String FA_CHEVRON_LEFT = "fa_chevron_left";
874 | public static final String FA_CHEVRON_RIGHT = "fa_chevron_right";
875 | public static final String FA_CHEVRON_UP = "fa_chevron_up";
876 | public static final String FA_CHILD = "fa_child";
877 | public static final String FA_CHROME = "fa_chrome";
878 | public static final String FA_CIRCLE = "fa_circle";
879 | public static final String FA_CIRCLE_O = "fa_circle_o";
880 | public static final String FA_CIRCLE_O_NOTCH = "fa_circle_o_notch";
881 | public static final String FA_CIRCLE_THIN = "fa_circle_thin";
882 | public static final String FA_CLIPBOARD = "fa_clipboard";
883 | public static final String FA_CLOCK_O = "fa_clock_o";
884 | public static final String FA_CLONE = "fa_clone";
885 | public static final String FA_CLOSE = "fa_close";
886 | public static final String FA_CLOUD = "fa_cloud";
887 | public static final String FA_CLOUD_DOWNLOAD = "fa_cloud_download";
888 | public static final String FA_CLOUD_UPLOAD = "fa_cloud_upload";
889 | public static final String FA_CNY = "fa_cny";
890 | public static final String FA_CODE = "fa_code";
891 | public static final String FA_CODE_FORK = "fa_code_fork";
892 | public static final String FA_CODEPEN = "fa_codepen";
893 | public static final String FA_CODIEPIE = "fa_codiepie";
894 | public static final String FA_COFFEE = "fa_coffee";
895 | public static final String FA_COG = "fa_cog";
896 | public static final String FA_COGS = "fa_cogs";
897 | public static final String FA_COLUMNS = "fa_columns";
898 | public static final String FA_COMMENT = "fa_comment";
899 | public static final String FA_COMMENT_O = "fa_comment_o";
900 | public static final String FA_COMMENTING = "fa_commenting";
901 | public static final String FA_COMMENTING_O = "fa_commenting_o";
902 | public static final String FA_COMMENTS = "fa_comments";
903 | public static final String FA_COMMENTS_O = "fa_comments_o";
904 | public static final String FA_COMPASS = "fa_compass";
905 | public static final String FA_COMPRESS = "fa_compress";
906 | public static final String FA_CONNECTDEVELOP = "fa_connectdevelop";
907 | public static final String FA_CONTAO = "fa_contao";
908 | public static final String FA_COPY = "fa_copy";
909 | public static final String FA_COPYRIGHT = "fa_copyright";
910 | public static final String FA_CREATIVE_COMMONS = "fa_creative_commons";
911 | public static final String FA_CREDIT_CARD = "fa_credit_card";
912 | public static final String FA_CREDIT_CARD_ALT = "fa_credit_card_alt";
913 | public static final String FA_CROP = "fa_crop";
914 | public static final String FA_CROSSHAIRS = "fa_crosshairs";
915 | public static final String FA_CSS3 = "fa_css3";
916 | public static final String FA_CUBE = "fa_cube";
917 | public static final String FA_CUBES = "fa_cubes";
918 | public static final String FA_CUT = "fa_cut";
919 | public static final String FA_CUTLERY = "fa_cutlery";
920 | public static final String FA_DASHBOARD = "fa_dashboard";
921 | public static final String FA_DASHCUBE = "fa_dashcube";
922 | public static final String FA_DATABASE = "fa_database";
923 | public static final String FA_DEDENT = "fa_dedent";
924 | public static final String FA_DELICIOUS = "fa_delicious";
925 | public static final String FA_DESKTOP = "fa_desktop";
926 | public static final String FA_DEVIANTART = "fa_deviantart";
927 | public static final String FA_DIAMOND = "fa_diamond";
928 | public static final String FA_DIGG = "fa_digg";
929 | public static final String FA_DOLLAR = "fa_dollar";
930 | public static final String FA_DOT_CIRCLE_O = "fa_dot_circle_o";
931 | public static final String FA_DOWNLOAD = "fa_download";
932 | public static final String FA_DRIBBBLE = "fa_dribbble";
933 | public static final String FA_DROPBOX = "fa_dropbox";
934 | public static final String FA_DRUPAL = "fa_drupal";
935 | public static final String FA_EDGE = "fa_edge";
936 | public static final String FA_EDIT = "fa_edit";
937 | public static final String FA_EJECT = "fa_eject";
938 | public static final String FA_ELLIPSIS_H = "fa_ellipsis_h";
939 | public static final String FA_ELLIPSIS_V = "fa_ellipsis_v";
940 | public static final String FA_EMPIRE = "fa_empire";
941 | public static final String FA_ENVELOPE = "fa_envelope";
942 | public static final String FA_ENVELOPE_O = "fa_envelope_o";
943 | public static final String FA_ENVELOPE_SQUARE = "fa_envelope_square";
944 | public static final String FA_ERASER = "fa_eraser";
945 | public static final String FA_EUR = "fa_eur";
946 | public static final String FA_EURO = "fa_euro";
947 | public static final String FA_EXCHANGE = "fa_exchange";
948 | public static final String FA_EXCLAMATION = "fa_exclamation";
949 | public static final String FA_EXCLAMATION_CIRCLE = "fa_exclamation_circle";
950 | public static final String FA_EXCLAMATION_TRIANGLE = "fa_exclamation_triangle";
951 | public static final String FA_EXPAND = "fa_expand";
952 | public static final String FA_EXPEDITEDSSL = "fa_expeditedssl";
953 | public static final String FA_EXTERNAL_LINK = "fa_external_link";
954 | public static final String FA_EXTERNAL_LINK_SQUARE = "fa_external_link_square";
955 | public static final String FA_EYE = "fa_eye";
956 | public static final String FA_EYE_SLASH = "fa_eye_slash";
957 | public static final String FA_EYEDROPPER = "fa_eyedropper";
958 | public static final String FA_FACEBOOK = "fa_facebook";
959 | public static final String FA_FACEBOOK_F = "fa_facebook_f";
960 | public static final String FA_FACEBOOK_OFFICIAL = "fa_facebook_official";
961 | public static final String FA_FACEBOOK_SQUARE = "fa_facebook_square";
962 | public static final String FA_FAST_BACKWARD = "fa_fast_backward";
963 | public static final String FA_FAST_FORWARD = "fa_fast_forward";
964 | public static final String FA_FAX = "fa_fax";
965 | public static final String FA_FEED = "fa_feed";
966 | public static final String FA_FEMALE = "fa_female";
967 | public static final String FA_FIGHTER_JET = "fa_fighter_jet";
968 | public static final String FA_FILE = "fa_file";
969 | public static final String FA_FILE_ARCHIVE_O = "fa_file_archive_o";
970 | public static final String FA_FILE_AUDIO_O = "fa_file_audio_o";
971 | public static final String FA_FILE_CODE_O = "fa_file_code_o";
972 | public static final String FA_FILE_EXCEL_O = "fa_file_excel_o";
973 | public static final String FA_FILE_IMAGE_O = "fa_file_image_o";
974 | public static final String FA_FILE_MOVIE_O = "fa_file_movie_o";
975 | public static final String FA_FILE_O = "fa_file_o";
976 | public static final String FA_FILE_PDF_O = "fa_file_pdf_o";
977 | public static final String FA_FILE_PHOTO_O = "fa_file_photo_o";
978 | public static final String FA_FILE_PICTURE_O = "fa_file_picture_o";
979 | public static final String FA_FILE_POWERPOINT_O = "fa_file_powerpoint_o";
980 | public static final String FA_FILE_SOUND_O = "fa_file_sound_o";
981 | public static final String FA_FILE_TEXT = "fa_file_text";
982 | public static final String FA_FILE_TEXT_O = "fa_file_text_o";
983 | public static final String FA_FILE_VIDEO_O = "fa_file_video_o";
984 | public static final String FA_FILE_WORD_O = "fa_file_word_o";
985 | public static final String FA_FILE_ZIP_O = "fa_file_zip_o";
986 | public static final String FA_FILES_O = "fa_files_o";
987 | public static final String FA_FILM = "fa_film";
988 | public static final String FA_FILTER = "fa_filter";
989 | public static final String FA_FIRE = "fa_fire";
990 | public static final String FA_FIRE_EXTINGUISHER = "fa_fire_extinguisher";
991 | public static final String FA_FIREFOX = "fa_firefox";
992 | public static final String FA_FLAG = "fa_flag";
993 | public static final String FA_FLAG_CHECKERED = "fa_flag_checkered";
994 | public static final String FA_FLAG_O = "fa_flag_o";
995 | public static final String FA_FLASH = "fa_flash";
996 | public static final String FA_FLASK = "fa_flask";
997 | public static final String FA_FLICKR = "fa_flickr";
998 | public static final String FA_FLOPPY_O = "fa_floppy_o";
999 | public static final String FA_FOLDER = "fa_folder";
1000 | public static final String FA_FOLDER_O = "fa_folder_o";
1001 | public static final String FA_FOLDER_OPEN = "fa_folder_open";
1002 | public static final String FA_FOLDER_OPEN_O = "fa_folder_open_o";
1003 | public static final String FA_FONT = "fa_font";
1004 | public static final String FA_FONTICONS = "fa_fonticons";
1005 | public static final String FA_FORT_AWESOME = "fa_fort_awesome";
1006 | public static final String FA_FORUMBEE = "fa_forumbee";
1007 | public static final String FA_FORWARD = "fa_forward";
1008 | public static final String FA_FOURSQUARE = "fa_foursquare";
1009 | public static final String FA_FROWN_O = "fa_frown_o";
1010 | public static final String FA_FUTBOL_O = "fa_futbol_o";
1011 | public static final String FA_GAMEPAD = "fa_gamepad";
1012 | public static final String FA_GAVEL = "fa_gavel";
1013 | public static final String FA_GBP = "fa_gbp";
1014 | public static final String FA_GE = "fa_ge";
1015 | public static final String FA_GEAR = "fa_gear";
1016 | public static final String FA_GEARS = "fa_gears";
1017 | public static final String FA_GENDERLESS = "fa_genderless";
1018 | public static final String FA_GET_POCKET = "fa_get_pocket";
1019 | public static final String FA_GG = "fa_gg";
1020 | public static final String FA_GG_CIRCLE = "fa_gg_circle";
1021 | public static final String FA_GIFT = "fa_gift";
1022 | public static final String FA_GIT = "fa_git";
1023 | public static final String FA_GIT_SQUARE = "fa_git_square";
1024 | public static final String FA_GITHUB = "fa_github";
1025 | public static final String FA_GITHUB_ALT = "fa_github_alt";
1026 | public static final String FA_GITHUB_SQUARE = "fa_github_square";
1027 | public static final String FA_GITTIP = "fa_gittip";
1028 | public static final String FA_GLASS = "fa_glass";
1029 | public static final String FA_GLOBE = "fa_globe";
1030 | public static final String FA_GOOGLE = "fa_google";
1031 | public static final String FA_GOOGLE_PLUS = "fa_google_plus";
1032 | public static final String FA_GOOGLE_PLUS_SQUARE = "fa_google_plus_square";
1033 | public static final String FA_GOOGLE_WALLET = "fa_google_wallet";
1034 | public static final String FA_GRADUATION_CAP = "fa_graduation_cap";
1035 | public static final String FA_GRATIPAY = "fa_gratipay";
1036 | public static final String FA_GROUP = "fa_group";
1037 | public static final String FA_H_SQUARE = "fa_h_square";
1038 | public static final String FA_HACKER_NEWS = "fa_hacker_news";
1039 | public static final String FA_HAND_GRAB_O = "fa_hand_grab_o";
1040 | public static final String FA_HAND_LIZARD_O = "fa_hand_lizard_o";
1041 | public static final String FA_HAND_O_DOWN = "fa_hand_o_down";
1042 | public static final String FA_HAND_O_LEFT = "fa_hand_o_left";
1043 | public static final String FA_HAND_O_RIGHT = "fa_hand_o_right";
1044 | public static final String FA_HAND_O_UP = "fa_hand_o_up";
1045 | public static final String FA_HAND_PAPER_O = "fa_hand_paper_o";
1046 | public static final String FA_HAND_PEACE_O = "fa_hand_peace_o";
1047 | public static final String FA_HAND_POINTER_O = "fa_hand_pointer_o";
1048 | public static final String FA_HAND_ROCK_O = "fa_hand_rock_o";
1049 | public static final String FA_HAND_SCISSORS_O = "fa_hand_scissors_o";
1050 | public static final String FA_HAND_SPOCK_O = "fa_hand_spock_o";
1051 | public static final String FA_HAND_STOP_O = "fa_hand_stop_o";
1052 | public static final String FA_HASHTAG = "fa_hashtag";
1053 | public static final String FA_HDD_O = "fa_hdd_o";
1054 | public static final String FA_HEADER = "fa_header";
1055 | public static final String FA_HEADPHONES = "fa_headphones";
1056 | public static final String FA_HEART = "fa_heart";
1057 | public static final String FA_HEART_O = "fa_heart_o";
1058 | public static final String FA_HEARTBEAT = "fa_heartbeat";
1059 | public static final String FA_HISTORY = "fa_history";
1060 | public static final String FA_HOME = "fa_home";
1061 | public static final String FA_HOSPITAL_O = "fa_hospital_o";
1062 | public static final String FA_HOTEL = "fa_hotel";
1063 | public static final String FA_HOURGLASS = "fa_hourglass";
1064 | public static final String FA_HOURGLASS_1 = "fa_hourglass_1";
1065 | public static final String FA_HOURGLASS_2 = "fa_hourglass_2";
1066 | public static final String FA_HOURGLASS_3 = "fa_hourglass_3";
1067 | public static final String FA_HOURGLASS_END = "fa_hourglass_end";
1068 | public static final String FA_HOURGLASS_HALF = "fa_hourglass_half";
1069 | public static final String FA_HOURGLASS_O = "fa_hourglass_o";
1070 | public static final String FA_HOURGLASS_START = "fa_hourglass_start";
1071 | public static final String FA_HOUZZ = "fa_houzz";
1072 | public static final String FA_HTML5 = "fa_html5";
1073 | public static final String FA_I_CURSOR = "fa_i_cursor";
1074 | public static final String FA_ILS = "fa_ils";
1075 | public static final String FA_IMAGE = "fa_image";
1076 | public static final String FA_INBOX = "fa_inbox";
1077 | public static final String FA_INDENT = "fa_indent";
1078 | public static final String FA_INDUSTRY = "fa_industry";
1079 | public static final String FA_INFO = "fa_info";
1080 | public static final String FA_INFO_CIRCLE = "fa_info_circle";
1081 | public static final String FA_INR = "fa_inr";
1082 | public static final String FA_INSTAGRAM = "fa_instagram";
1083 | public static final String FA_INSTITUTION = "fa_institution";
1084 | public static final String FA_INTERNET_EXPLORER = "fa_internet_explorer";
1085 | public static final String FA_INTERSEX = "fa_intersex";
1086 | public static final String FA_IOXHOST = "fa_ioxhost";
1087 | public static final String FA_ITALIC = "fa_italic";
1088 | public static final String FA_JOOMLA = "fa_joomla";
1089 | public static final String FA_JPY = "fa_jpy";
1090 | public static final String FA_JSFIDDLE = "fa_jsfiddle";
1091 | public static final String FA_KEY = "fa_key";
1092 | public static final String FA_KEYBOARD_O = "fa_keyboard_o";
1093 | public static final String FA_KRW = "fa_krw";
1094 | public static final String FA_LANGUAGE = "fa_language";
1095 | public static final String FA_LAPTOP = "fa_laptop";
1096 | public static final String FA_LASTFM = "fa_lastfm";
1097 | public static final String FA_LASTFM_SQUARE = "fa_lastfm_square";
1098 | public static final String FA_LEAF = "fa_leaf";
1099 | public static final String FA_LEANPUB = "fa_leanpub";
1100 | public static final String FA_LEGAL = "fa_legal";
1101 | public static final String FA_LEMON_O = "fa_lemon_o";
1102 | public static final String FA_LEVEL_DOWN = "fa_level_down";
1103 | public static final String FA_LEVEL_UP = "fa_level_up";
1104 | public static final String FA_LIFE_BOUY = "fa_life_bouy";
1105 | public static final String FA_LIFE_BUOY = "fa_life_buoy";
1106 | public static final String FA_LIFE_RING = "fa_life_ring";
1107 | public static final String FA_LIFE_SAVER = "fa_life_saver";
1108 | public static final String FA_LIGHTBULB_O = "fa_lightbulb_o";
1109 | public static final String FA_LINE_CHART = "fa_line_chart";
1110 | public static final String FA_LINK = "fa_link";
1111 | public static final String FA_LINKEDIN = "fa_linkedin";
1112 | public static final String FA_LINKEDIN_SQUARE = "fa_linkedin_square";
1113 | public static final String FA_LINUX = "fa_linux";
1114 | public static final String FA_LIST = "fa_list";
1115 | public static final String FA_LIST_ALT = "fa_list_alt";
1116 | public static final String FA_LIST_OL = "fa_list_ol";
1117 | public static final String FA_LIST_UL = "fa_list_ul";
1118 | public static final String FA_LOCATION_ARROW = "fa_location_arrow";
1119 | public static final String FA_LOCK = "fa_lock";
1120 | public static final String FA_LONG_ARROW_DOWN = "fa_long_arrow_down";
1121 | public static final String FA_LONG_ARROW_LEFT = "fa_long_arrow_left";
1122 | public static final String FA_LONG_ARROW_RIGHT = "fa_long_arrow_right";
1123 | public static final String FA_LONG_ARROW_UP = "fa_long_arrow_up";
1124 | public static final String FA_MAGIC = "fa_magic";
1125 | public static final String FA_MAGNET = "fa_magnet";
1126 | public static final String FA_MAIL_FORWARD = "fa_mail_forward";
1127 | public static final String FA_MAIL_REPLY = "fa_mail_reply";
1128 | public static final String FA_MAIL_REPLY_ALL = "fa_mail_reply_all";
1129 | public static final String FA_MALE = "fa_male";
1130 | public static final String FA_MAP = "fa_map";
1131 | public static final String FA_MAP_MARKER = "fa_map_marker";
1132 | public static final String FA_MAP_O = "fa_map_o";
1133 | public static final String FA_MAP_PIN = "fa_map_pin";
1134 | public static final String FA_MAP_SIGNS = "fa_map_signs";
1135 | public static final String FA_MARS = "fa_mars";
1136 | public static final String FA_MARS_DOUBLE = "fa_mars_double";
1137 | public static final String FA_MARS_STROKE = "fa_mars_stroke";
1138 | public static final String FA_MARS_STROKE_H = "fa_mars_stroke_h";
1139 | public static final String FA_MARS_STROKE_V = "fa_mars_stroke_v";
1140 | public static final String FA_MAXCDN = "fa_maxcdn";
1141 | public static final String FA_MEANPATH = "fa_meanpath";
1142 | public static final String FA_MEDIUM = "fa_medium";
1143 | public static final String FA_MEDKIT = "fa_medkit";
1144 | public static final String FA_MEH_O = "fa_meh_o";
1145 | public static final String FA_MERCURY = "fa_mercury";
1146 | public static final String FA_MICROPHONE = "fa_microphone";
1147 | public static final String FA_MICROPHONE_SLASH = "fa_microphone_slash";
1148 | public static final String FA_MINUS = "fa_minus";
1149 | public static final String FA_MINUS_CIRCLE = "fa_minus_circle";
1150 | public static final String FA_MINUS_SQUARE = "fa_minus_square";
1151 | public static final String FA_MINUS_SQUARE_O = "fa_minus_square_o";
1152 | public static final String FA_MIXCLOUD = "fa_mixcloud";
1153 | public static final String FA_MOBILE = "fa_mobile";
1154 | public static final String FA_MOBILE_PHONE = "fa_mobile_phone";
1155 | public static final String FA_MODX = "fa_modx";
1156 | public static final String FA_MONEY = "fa_money";
1157 | public static final String FA_MOON_O = "fa_moon_o";
1158 | public static final String FA_MORTAR_BOARD = "fa_mortar_board";
1159 | public static final String FA_MOTORCYCLE = "fa_motorcycle";
1160 | public static final String FA_MOUSE_POINTER = "fa_mouse_pointer";
1161 | public static final String FA_MUSIC = "fa_music";
1162 | public static final String FA_NAVICON = "fa_navicon";
1163 | public static final String FA_NEUTER = "fa_neuter";
1164 | public static final String FA_NEWSPAPER_O = "fa_newspaper_o";
1165 | public static final String FA_OBJECT_GROUP = "fa_object_group";
1166 | public static final String FA_OBJECT_UNGROUP = "fa_object_ungroup";
1167 | public static final String FA_ODNOKLASSNIKI = "fa_odnoklassniki";
1168 | public static final String FA_ODNOKLASSNIKI_SQUARE = "fa_odnoklassniki_square";
1169 | public static final String FA_OPENCART = "fa_opencart";
1170 | public static final String FA_OPENID = "fa_openid";
1171 | public static final String FA_OPERA = "fa_opera";
1172 | public static final String FA_OPTIN_MONSTER = "fa_optin_monster";
1173 | public static final String FA_OUTDENT = "fa_outdent";
1174 | public static final String FA_PAGELINES = "fa_pagelines";
1175 | public static final String FA_PAINT_BRUSH = "fa_paint_brush";
1176 | public static final String FA_PAPER_PLANE = "fa_paper_plane";
1177 | public static final String FA_PAPER_PLANE_O = "fa_paper_plane_o";
1178 | public static final String FA_PAPERCLIP = "fa_paperclip";
1179 | public static final String FA_PARAGRAPH = "fa_paragraph";
1180 | public static final String FA_PASTE = "fa_paste";
1181 | public static final String FA_PAUSE = "fa_pause";
1182 | public static final String FA_PAUSE_CIRCLE = "fa_pause_circle";
1183 | public static final String FA_PAUSE_CIRCLE_O = "fa_pause_circle_o";
1184 | public static final String FA_PAW = "fa_paw";
1185 | public static final String FA_PAYPAL = "fa_paypal";
1186 | public static final String FA_PENCIL = "fa_pencil";
1187 | public static final String FA_PENCIL_SQUARE = "fa_pencil_square";
1188 | public static final String FA_PENCIL_SQUARE_O = "fa_pencil_square_o";
1189 | public static final String FA_PERCENT = "fa_percent";
1190 | public static final String FA_PHONE = "fa_phone";
1191 | public static final String FA_PHONE_SQUARE = "fa_phone_square";
1192 | public static final String FA_PHOTO = "fa_photo";
1193 | public static final String FA_PICTURE_O = "fa_picture_o";
1194 | public static final String FA_PIE_CHART = "fa_pie_chart";
1195 | public static final String FA_PIED_PIPER = "fa_pied_piper";
1196 | public static final String FA_PIED_PIPER_ALT = "fa_pied_piper_alt";
1197 | public static final String FA_PINTEREST = "fa_pinterest";
1198 | public static final String FA_PINTEREST_P = "fa_pinterest_p";
1199 | public static final String FA_PINTEREST_SQUARE = "fa_pinterest_square";
1200 | public static final String FA_PLANE = "fa_plane";
1201 | public static final String FA_PLAY = "fa_play";
1202 | public static final String FA_PLAY_CIRCLE = "fa_play_circle";
1203 | public static final String FA_PLAY_CIRCLE_O = "fa_play_circle_o";
1204 | public static final String FA_PLUG = "fa_plug";
1205 | public static final String FA_PLUS = "fa_plus";
1206 | public static final String FA_PLUS_CIRCLE = "fa_plus_circle";
1207 | public static final String FA_PLUS_SQUARE = "fa_plus_square";
1208 | public static final String FA_PLUS_SQUARE_O = "fa_plus_square_o";
1209 | public static final String FA_POWER_OFF = "fa_power_off";
1210 | public static final String FA_PRINT = "fa_print";
1211 | public static final String FA_PRODUCT_HUNT = "fa_product_hunt";
1212 | public static final String FA_PUZZLE_PIECE = "fa_puzzle_piece";
1213 | public static final String FA_QQ = "fa_qq";
1214 | public static final String FA_QRCODE = "fa_qrcode";
1215 | public static final String FA_QUESTION = "fa_question";
1216 | public static final String FA_QUESTION_CIRCLE = "fa_question_circle";
1217 | public static final String FA_QUOTE_LEFT = "fa_quote_left";
1218 | public static final String FA_QUOTE_RIGHT = "fa_quote_right";
1219 | public static final String FA_RA = "fa_ra";
1220 | public static final String FA_RANDOM = "fa_random";
1221 | public static final String FA_REBEL = "fa_rebel";
1222 | public static final String FA_RECYCLE = "fa_recycle";
1223 | public static final String FA_REDDIT = "fa_reddit";
1224 | public static final String FA_REDDIT_ALIEN = "fa_reddit_alien";
1225 | public static final String FA_REDDIT_SQUARE = "fa_reddit_square";
1226 | public static final String FA_REFRESH = "fa_refresh";
1227 | public static final String FA_REGISTERED = "fa_registered";
1228 | public static final String FA_REMOVE = "fa_remove";
1229 | public static final String FA_RENREN = "fa_renren";
1230 | public static final String FA_REORDER = "fa_reorder";
1231 | public static final String FA_REPEAT = "fa_repeat";
1232 | public static final String FA_REPLY = "fa_reply";
1233 | public static final String FA_REPLY_ALL = "fa_reply_all";
1234 | public static final String FA_RETWEET = "fa_retweet";
1235 | public static final String FA_RMB = "fa_rmb";
1236 | public static final String FA_ROAD = "fa_road";
1237 | public static final String FA_ROCKET = "fa_rocket";
1238 | public static final String FA_ROTATE_LEFT = "fa_rotate_left";
1239 | public static final String FA_ROTATE_RIGHT = "fa_rotate_right";
1240 | public static final String FA_ROUBLE = "fa_rouble";
1241 | public static final String FA_RSS = "fa_rss";
1242 | public static final String FA_RSS_SQUARE = "fa_rss_square";
1243 | public static final String FA_RUB = "fa_rub";
1244 | public static final String FA_RUBLE = "fa_ruble";
1245 | public static final String FA_RUPEE = "fa_rupee";
1246 | public static final String FA_SAFARI = "fa_safari";
1247 | public static final String FA_SAVE = "fa_save";
1248 | public static final String FA_SCISSORS = "fa_scissors";
1249 | public static final String FA_SCRIBD = "fa_scribd";
1250 | public static final String FA_SEARCH = "fa_search";
1251 | public static final String FA_SEARCH_MINUS = "fa_search_minus";
1252 | public static final String FA_SEARCH_PLUS = "fa_search_plus";
1253 | public static final String FA_SELLSY = "fa_sellsy";
1254 | public static final String FA_SEND = "fa_send";
1255 | public static final String FA_SEND_O = "fa_send_o";
1256 | public static final String FA_SERVER = "fa_server";
1257 | public static final String FA_SHARE = "fa_share";
1258 | public static final String FA_SHARE_ALT = "fa_share_alt";
1259 | public static final String FA_SHARE_ALT_SQUARE = "fa_share_alt_square";
1260 | public static final String FA_SHARE_SQUARE = "fa_share_square";
1261 | public static final String FA_SHARE_SQUARE_O = "fa_share_square_o";
1262 | public static final String FA_SHEKEL = "fa_shekel";
1263 | public static final String FA_SHEQEL = "fa_sheqel";
1264 | public static final String FA_SHIELD = "fa_shield";
1265 | public static final String FA_SHIP = "fa_ship";
1266 | public static final String FA_SHIRTSINBULK = "fa_shirtsinbulk";
1267 | public static final String FA_SHOPPING_BAG = "fa_shopping_bag";
1268 | public static final String FA_SHOPPING_BASKET = "fa_shopping_basket";
1269 | public static final String FA_SHOPPING_CART = "fa_shopping_cart";
1270 | public static final String FA_SIGN_IN = "fa_sign_in";
1271 | public static final String FA_SIGN_OUT = "fa_sign_out";
1272 | public static final String FA_SIGNAL = "fa_signal";
1273 | public static final String FA_SIMPLYBUILT = "fa_simplybuilt";
1274 | public static final String FA_SITEMAP = "fa_sitemap";
1275 | public static final String FA_SKYATLAS = "fa_skyatlas";
1276 | public static final String FA_SKYPE = "fa_skype";
1277 | public static final String FA_SLACK = "fa_slack";
1278 | public static final String FA_SLIDERS = "fa_sliders";
1279 | public static final String FA_SLIDESHARE = "fa_slideshare";
1280 | public static final String FA_SMILE_O = "fa_smile_o";
1281 | public static final String FA_SOCCER_BALL_O = "fa_soccer_ball_o";
1282 | public static final String FA_SORT = "fa_sort";
1283 | public static final String FA_SORT_ALPHA_ASC = "fa_sort_alpha_asc";
1284 | public static final String FA_SORT_ALPHA_DESC = "fa_sort_alpha_desc";
1285 | public static final String FA_SORT_AMOUNT_ASC = "fa_sort_amount_asc";
1286 | public static final String FA_SORT_AMOUNT_DESC = "fa_sort_amount_desc";
1287 | public static final String FA_SORT_ASC = "fa_sort_asc";
1288 | public static final String FA_SORT_DESC = "fa_sort_desc";
1289 | public static final String FA_SORT_DOWN = "fa_sort_down";
1290 | public static final String FA_SORT_NUMERIC_ASC = "fa_sort_numeric_asc";
1291 | public static final String FA_SORT_NUMERIC_DESC = "fa_sort_numeric_desc";
1292 | public static final String FA_SORT_UP = "fa_sort_up";
1293 | public static final String FA_SOUNDCLOUD = "fa_soundcloud";
1294 | public static final String FA_SPACE_SHUTTLE = "fa_space_shuttle";
1295 | public static final String FA_SPINNER = "fa_spinner";
1296 | public static final String FA_SPOON = "fa_spoon";
1297 | public static final String FA_SPOTIFY = "fa_spotify";
1298 | public static final String FA_SQUARE = "fa_square";
1299 | public static final String FA_SQUARE_O = "fa_square_o";
1300 | public static final String FA_STACK_EXCHANGE = "fa_stack_exchange";
1301 | public static final String FA_STACK_OVERFLOW = "fa_stack_overflow";
1302 | public static final String FA_STAR = "fa_star";
1303 | public static final String FA_STAR_HALF = "fa_star_half";
1304 | public static final String FA_STAR_HALF_EMPTY = "fa_star_half_empty";
1305 | public static final String FA_STAR_HALF_FULL = "fa_star_half_full";
1306 | public static final String FA_STAR_HALF_O = "fa_star_half_o";
1307 | public static final String FA_STAR_O = "fa_star_o";
1308 | public static final String FA_STEAM = "fa_steam";
1309 | public static final String FA_STEAM_SQUARE = "fa_steam_square";
1310 | public static final String FA_STEP_BACKWARD = "fa_step_backward";
1311 | public static final String FA_STEP_FORWARD = "fa_step_forward";
1312 | public static final String FA_STETHOSCOPE = "fa_stethoscope";
1313 | public static final String FA_STICKY_NOTE = "fa_sticky_note";
1314 | public static final String FA_STICKY_NOTE_O = "fa_sticky_note_o";
1315 | public static final String FA_STOP = "fa_stop";
1316 | public static final String FA_STOP_CIRCLE = "fa_stop_circle";
1317 | public static final String FA_STOP_CIRCLE_O = "fa_stop_circle_o";
1318 | public static final String FA_STREET_VIEW = "fa_street_view";
1319 | public static final String FA_STRIKETHROUGH = "fa_strikethrough";
1320 | public static final String FA_STUMBLEUPON = "fa_stumbleupon";
1321 | public static final String FA_STUMBLEUPON_CIRCLE = "fa_stumbleupon_circle";
1322 | public static final String FA_SUBSCRIPT = "fa_subscript";
1323 | public static final String FA_SUBWAY = "fa_subway";
1324 | public static final String FA_SUITCASE = "fa_suitcase";
1325 | public static final String FA_SUN_O = "fa_sun_o";
1326 | public static final String FA_SUPERSCRIPT = "fa_superscript";
1327 | public static final String FA_SUPPORT = "fa_support";
1328 | public static final String FA_TABLE = "fa_table";
1329 | public static final String FA_TABLET = "fa_tablet";
1330 | public static final String FA_TACHOMETER = "fa_tachometer";
1331 | public static final String FA_TAG = "fa_tag";
1332 | public static final String FA_TAGS = "fa_tags";
1333 | public static final String FA_TASKS = "fa_tasks";
1334 | public static final String FA_TAXI = "fa_taxi";
1335 | public static final String FA_TELEVISION = "fa_television";
1336 | public static final String FA_TENCENT_WEIBO = "fa_tencent_weibo";
1337 | public static final String FA_TERMINAL = "fa_terminal";
1338 | public static final String FA_TEXT_HEIGHT = "fa_text_height";
1339 | public static final String FA_TEXT_WIDTH = "fa_text_width";
1340 | public static final String FA_TH = "fa_th";
1341 | public static final String FA_TH_LARGE = "fa_th_large";
1342 | public static final String FA_TH_LIST = "fa_th_list";
1343 | public static final String FA_THUMB_TACK = "fa_thumb_tack";
1344 | public static final String FA_THUMBS_DOWN = "fa_thumbs_down";
1345 | public static final String FA_THUMBS_O_DOWN = "fa_thumbs_o_down";
1346 | public static final String FA_THUMBS_O_UP = "fa_thumbs_o_up";
1347 | public static final String FA_THUMBS_UP = "fa_thumbs_up";
1348 | public static final String FA_TICKET = "fa_ticket";
1349 | public static final String FA_TIMES = "fa_times";
1350 | public static final String FA_TIMES_CIRCLE = "fa_times_circle";
1351 | public static final String FA_TIMES_CIRCLE_O = "fa_times_circle_o";
1352 | public static final String FA_TINT = "fa_tint";
1353 | public static final String FA_TOGGLE_DOWN = "fa_toggle_down";
1354 | public static final String FA_TOGGLE_LEFT = "fa_toggle_left";
1355 | public static final String FA_TOGGLE_OFF = "fa_toggle_off";
1356 | public static final String FA_TOGGLE_ON = "fa_toggle_on";
1357 | public static final String FA_TOGGLE_RIGHT = "fa_toggle_right";
1358 | public static final String FA_TOGGLE_UP = "fa_toggle_up";
1359 | public static final String FA_TRADEMARK = "fa_trademark";
1360 | public static final String FA_TRAIN = "fa_train";
1361 | public static final String FA_TRANSGENDER = "fa_transgender";
1362 | public static final String FA_TRANSGENDER_ALT = "fa_transgender_alt";
1363 | public static final String FA_TRASH = "fa_trash";
1364 | public static final String FA_TRASH_O = "fa_trash_o";
1365 | public static final String FA_TREE = "fa_tree";
1366 | public static final String FA_TRELLO = "fa_trello";
1367 | public static final String FA_TRIPADVISOR = "fa_tripadvisor";
1368 | public static final String FA_TROPHY = "fa_trophy";
1369 | public static final String FA_TRUCK = "fa_truck";
1370 | public static final String FA_TRY = "fa_try";
1371 | public static final String FA_TTY = "fa_tty";
1372 | public static final String FA_TUMBLR = "fa_tumblr";
1373 | public static final String FA_TUMBLR_SQUARE = "fa_tumblr_square";
1374 | public static final String FA_TURKISH_LIRA = "fa_turkish_lira";
1375 | public static final String FA_TV = "fa_tv";
1376 | public static final String FA_TWITCH = "fa_twitch";
1377 | public static final String FA_TWITTER = "fa_twitter";
1378 | public static final String FA_TWITTER_SQUARE = "fa_twitter_square";
1379 | public static final String FA_UMBRELLA = "fa_umbrella";
1380 | public static final String FA_UNDERLINE = "fa_underline";
1381 | public static final String FA_UNDO = "fa_undo";
1382 | public static final String FA_UNIVERSITY = "fa_university";
1383 | public static final String FA_UNLINK = "fa_unlink";
1384 | public static final String FA_UNLOCK = "fa_unlock";
1385 | public static final String FA_UNLOCK_ALT = "fa_unlock_alt";
1386 | public static final String FA_UNSORTED = "fa_unsorted";
1387 | public static final String FA_UPLOAD = "fa_upload";
1388 | public static final String FA_USB = "fa_usb";
1389 | public static final String FA_USD = "fa_usd";
1390 | public static final String FA_USER = "fa_user";
1391 | public static final String FA_USER_MD = "fa_user_md";
1392 | public static final String FA_USER_PLUS = "fa_user_plus";
1393 | public static final String FA_USER_SECRET = "fa_user_secret";
1394 | public static final String FA_USER_TIMES = "fa_user_times";
1395 | public static final String FA_USERS = "fa_users";
1396 | public static final String FA_VENUS = "fa_venus";
1397 | public static final String FA_VENUS_DOUBLE = "fa_venus_double";
1398 | public static final String FA_VENUS_MARS = "fa_venus_mars";
1399 | public static final String FA_VIACOIN = "fa_viacoin";
1400 | public static final String FA_VIDEO_CAMERA = "fa_video_camera";
1401 | public static final String FA_VIMEO = "fa_vimeo";
1402 | public static final String FA_VIMEO_SQUARE = "fa_vimeo_square";
1403 | public static final String FA_VINE = "fa_vine";
1404 | public static final String FA_VK = "fa_vk";
1405 | public static final String FA_VOLUME_DOWN = "fa_volume_down";
1406 | public static final String FA_VOLUME_OFF = "fa_volume_off";
1407 | public static final String FA_VOLUME_UP = "fa_volume_up";
1408 | public static final String FA_WARNING = "fa_warning";
1409 | public static final String FA_WECHAT = "fa_wechat";
1410 | public static final String FA_WEIBO = "fa_weibo";
1411 | public static final String FA_WEIXIN = "fa_weixin";
1412 | public static final String FA_WHATSAPP = "fa_whatsapp";
1413 | public static final String FA_WHEELCHAIR = "fa_wheelchair";
1414 | public static final String FA_WIFI = "fa_wifi";
1415 | public static final String FA_WIKIPEDIA_W = "fa_wikipedia_w";
1416 | public static final String FA_WINDOWS = "fa_windows";
1417 | public static final String FA_WON = "fa_won";
1418 | public static final String FA_WORDPRESS = "fa_wordpress";
1419 | public static final String FA_WRENCH = "fa_wrench";
1420 | public static final String FA_XING = "fa_xing";
1421 | public static final String FA_XING_SQUARE = "fa_xing_square";
1422 | public static final String FA_Y_COMBINATOR = "fa_y_combinator";
1423 | public static final String FA_Y_COMBINATOR_SQUARE = "fa_y_combinator_square";
1424 | public static final String FA_YAHOO = "fa_yahoo";
1425 | public static final String FA_YC = "fa_yc";
1426 | public static final String FA_YC_SQUARE = "fa_yc_square";
1427 | public static final String FA_YELP = "fa_yelp";
1428 | public static final String FA_YEN = "fa_yen";
1429 | public static final String FA_YOUTUBE = "fa_youtube";
1430 | public static final String FA_YOUTUBE_PLAY = "fa_youtube_play";
1431 | public static final String FA_YOUTUBE_SQUARE = "fa_youtube_square";
1432 |
1433 | static {
1434 | ICON_MAP.put(FA_ADJUST, "\uf042");
1435 | ICON_MAP.put(FA_ADN, "\uf170");
1436 | ICON_MAP.put(FA_ALIGN_CENTER, "\uf037");
1437 | ICON_MAP.put(FA_ALIGN_JUSTIFY, "\uf039");
1438 | ICON_MAP.put(FA_ALIGN_LEFT, "\uf036");
1439 | ICON_MAP.put(FA_ALIGN_RIGHT, "\uf038");
1440 | ICON_MAP.put(FA_AMAZON, "\uf270");
1441 | ICON_MAP.put(FA_AMBULANCE, "\uf0f9");
1442 | ICON_MAP.put(FA_ANCHOR, "\uf13d");
1443 | ICON_MAP.put(FA_ANDROID, "\uf17b");
1444 | ICON_MAP.put(FA_ANGELLIST, "\uf209");
1445 | ICON_MAP.put(FA_ANGLE_DOUBLE_DOWN, "\uf103");
1446 | ICON_MAP.put(FA_ANGLE_DOUBLE_LEFT, "\uf100");
1447 | ICON_MAP.put(FA_ANGLE_DOUBLE_RIGHT, "\uf101");
1448 | ICON_MAP.put(FA_ANGLE_DOUBLE_UP, "\uf102");
1449 | ICON_MAP.put(FA_ANGLE_DOWN, "\uf107");
1450 | ICON_MAP.put(FA_ANGLE_LEFT, "\uf104");
1451 | ICON_MAP.put(FA_ANGLE_RIGHT, "\uf105");
1452 | ICON_MAP.put(FA_ANGLE_UP, "\uf106");
1453 | ICON_MAP.put(FA_APPLE, "\uf179");
1454 | ICON_MAP.put(FA_ARCHIVE, "\uf187");
1455 | ICON_MAP.put(FA_AREA_CHART, "\uf1fe");
1456 | ICON_MAP.put(FA_ARROW_CIRCLE_DOWN, "\uf0ab");
1457 | ICON_MAP.put(FA_ARROW_CIRCLE_LEFT, "\uf0a8");
1458 | ICON_MAP.put(FA_ARROW_CIRCLE_O_DOWN, "\uf01a");
1459 | ICON_MAP.put(FA_ARROW_CIRCLE_O_LEFT, "\uf190");
1460 | ICON_MAP.put(FA_ARROW_CIRCLE_O_RIGHT, "\uf18e");
1461 | ICON_MAP.put(FA_ARROW_CIRCLE_O_UP, "\uf01b");
1462 | ICON_MAP.put(FA_ARROW_CIRCLE_RIGHT, "\uf0a9");
1463 | ICON_MAP.put(FA_ARROW_CIRCLE_UP, "\uf0aa");
1464 | ICON_MAP.put(FA_ARROW_DOWN, "\uf063");
1465 | ICON_MAP.put(FA_ARROW_LEFT, "\uf060");
1466 | ICON_MAP.put(FA_ARROW_RIGHT, "\uf061");
1467 | ICON_MAP.put(FA_ARROW_UP, "\uf062");
1468 | ICON_MAP.put(FA_ARROWS, "\uf047");
1469 | ICON_MAP.put(FA_ARROWS_ALT, "\uf0b2");
1470 | ICON_MAP.put(FA_ARROWS_H, "\uf07e");
1471 | ICON_MAP.put(FA_ARROWS_V, "\uf07d");
1472 | ICON_MAP.put(FA_ASTERISK, "\uf069");
1473 | ICON_MAP.put(FA_AT, "\uf1fa");
1474 | ICON_MAP.put(FA_AUTOMOBILE, "\uf1b9");
1475 | ICON_MAP.put(FA_BACKWARD, "\uf04a");
1476 | ICON_MAP.put(FA_BALANCE_SCALE, "\uf24e");
1477 | ICON_MAP.put(FA_BAN, "\uf05e");
1478 | ICON_MAP.put(FA_BANK, "\uf19c");
1479 | ICON_MAP.put(FA_BAR_CHART, "\uf080");
1480 | ICON_MAP.put(FA_BAR_CHART_O, "\uf080");
1481 | ICON_MAP.put(FA_BARCODE, "\uf02a");
1482 | ICON_MAP.put(FA_BARS, "\uf0c9");
1483 | ICON_MAP.put(FA_BATTERY_0, "\uf244");
1484 | ICON_MAP.put(FA_BATTERY_1, "\uf243");
1485 | ICON_MAP.put(FA_BATTERY_2, "\uf242");
1486 | ICON_MAP.put(FA_BATTERY_3, "\uf241");
1487 | ICON_MAP.put(FA_BATTERY_4, "\uf240");
1488 | ICON_MAP.put(FA_BATTERY_EMPTY, "\uf244");
1489 | ICON_MAP.put(FA_BATTERY_FULL, "\uf240");
1490 | ICON_MAP.put(FA_BATTERY_HALF, "\uf242");
1491 | ICON_MAP.put(FA_BATTERY_QUARTER, "\uf243");
1492 | ICON_MAP.put(FA_BATTERY_THREE_QUARTERS, "\uf241");
1493 | ICON_MAP.put(FA_BED, "\uf236");
1494 | ICON_MAP.put(FA_BEER, "\uf0fc");
1495 | ICON_MAP.put(FA_BEHANCE, "\uf1b4");
1496 | ICON_MAP.put(FA_BEHANCE_SQUARE, "\uf1b5");
1497 | ICON_MAP.put(FA_BELL, "\uf0f3");
1498 | ICON_MAP.put(FA_BELL_O, "\uf0a2");
1499 | ICON_MAP.put(FA_BELL_SLASH, "\uf1f6");
1500 | ICON_MAP.put(FA_BELL_SLASH_O, "\uf1f7");
1501 | ICON_MAP.put(FA_BICYCLE, "\uf206");
1502 | ICON_MAP.put(FA_BINOCULARS, "\uf1e5");
1503 | ICON_MAP.put(FA_BIRTHDAY_CAKE, "\uf1fd");
1504 | ICON_MAP.put(FA_BITBUCKET, "\uf171");
1505 | ICON_MAP.put(FA_BITBUCKET_SQUARE, "\uf172");
1506 | ICON_MAP.put(FA_BITCOIN, "\uf15a");
1507 | ICON_MAP.put(FA_BLACK_TIE, "\uf27e");
1508 | ICON_MAP.put(FA_BLUETOOTH, "\uf293");
1509 | ICON_MAP.put(FA_BLUETOOTH_B, "\uf294");
1510 | ICON_MAP.put(FA_BOLD, "\uf032");
1511 | ICON_MAP.put(FA_BOLT, "\uf0e7");
1512 | ICON_MAP.put(FA_BOMB, "\uf1e2");
1513 | ICON_MAP.put(FA_BOOK, "\uf02d");
1514 | ICON_MAP.put(FA_BOOKMARK, "\uf02e");
1515 | ICON_MAP.put(FA_BOOKMARK_O, "\uf097");
1516 | ICON_MAP.put(FA_BRIEFCASE, "\uf0b1");
1517 | ICON_MAP.put(FA_BTC, "\uf15a");
1518 | ICON_MAP.put(FA_BUG, "\uf188");
1519 | ICON_MAP.put(FA_BUILDING, "\uf1ad");
1520 | ICON_MAP.put(FA_BUILDING_O, "\uf0f7");
1521 | ICON_MAP.put(FA_BULLHORN, "\uf0a1");
1522 | ICON_MAP.put(FA_BULLSEYE, "\uf140");
1523 | ICON_MAP.put(FA_BUS, "\uf207");
1524 | ICON_MAP.put(FA_BUYSELLADS, "\uf20d");
1525 | ICON_MAP.put(FA_CAB, "\uf1ba");
1526 | ICON_MAP.put(FA_CALCULATOR, "\uf1ec");
1527 | ICON_MAP.put(FA_CALENDAR, "\uf073");
1528 | ICON_MAP.put(FA_CALENDAR_CHECK_O, "\uf274");
1529 | ICON_MAP.put(FA_CALENDAR_MINUS_O, "\uf272");
1530 | ICON_MAP.put(FA_CALENDAR_O, "\uf133");
1531 | ICON_MAP.put(FA_CALENDAR_PLUS_O, "\uf271");
1532 | ICON_MAP.put(FA_CALENDAR_TIMES_O, "\uf273");
1533 | ICON_MAP.put(FA_CAMERA, "\uf030");
1534 | ICON_MAP.put(FA_CAMERA_RETRO, "\uf083");
1535 | ICON_MAP.put(FA_CAR, "\uf1b9");
1536 | ICON_MAP.put(FA_CARET_DOWN, "\uf0d7");
1537 | ICON_MAP.put(FA_CARET_LEFT, "\uf0d9");
1538 | ICON_MAP.put(FA_CARET_RIGHT, "\uf0da");
1539 | ICON_MAP.put(FA_CARET_SQUARE_O_DOWN, "\uf150");
1540 | ICON_MAP.put(FA_CARET_SQUARE_O_LEFT, "\uf191");
1541 | ICON_MAP.put(FA_CARET_SQUARE_O_RIGHT, "\uf152");
1542 | ICON_MAP.put(FA_CARET_SQUARE_O_UP, "\uf151");
1543 | ICON_MAP.put(FA_CARET_UP, "\uf0d8");
1544 | ICON_MAP.put(FA_CART_ARROW_DOWN, "\uf218");
1545 | ICON_MAP.put(FA_CART_PLUS, "\uf217");
1546 | ICON_MAP.put(FA_CC, "\uf20a");
1547 | ICON_MAP.put(FA_CC_AMEX, "\uf1f3");
1548 | ICON_MAP.put(FA_CC_DINERS_CLUB, "\uf24c");
1549 | ICON_MAP.put(FA_CC_DISCOVER, "\uf1f2");
1550 | ICON_MAP.put(FA_CC_JCB, "\uf24b");
1551 | ICON_MAP.put(FA_CC_MASTERCARD, "\uf1f1");
1552 | ICON_MAP.put(FA_CC_PAYPAL, "\uf1f4");
1553 | ICON_MAP.put(FA_CC_STRIPE, "\uf1f5");
1554 | ICON_MAP.put(FA_CC_VISA, "\uf1f0");
1555 | ICON_MAP.put(FA_CERTIFICATE, "\uf0a3");
1556 | ICON_MAP.put(FA_CHAIN, "\uf0c1");
1557 | ICON_MAP.put(FA_CHAIN_BROKEN, "\uf127");
1558 | ICON_MAP.put(FA_CHECK, "\uf00c");
1559 | ICON_MAP.put(FA_CHECK_CIRCLE, "\uf058");
1560 | ICON_MAP.put(FA_CHECK_CIRCLE_O, "\uf05d");
1561 | ICON_MAP.put(FA_CHECK_SQUARE, "\uf14a");
1562 | ICON_MAP.put(FA_CHECK_SQUARE_O, "\uf046");
1563 | ICON_MAP.put(FA_CHEVRON_CIRCLE_DOWN, "\uf13a");
1564 | ICON_MAP.put(FA_CHEVRON_CIRCLE_LEFT, "\uf137");
1565 | ICON_MAP.put(FA_CHEVRON_CIRCLE_RIGHT, "\uf138");
1566 | ICON_MAP.put(FA_CHEVRON_CIRCLE_UP, "\uf139");
1567 | ICON_MAP.put(FA_CHEVRON_DOWN, "\uf078");
1568 | ICON_MAP.put(FA_CHEVRON_LEFT, "\uf053");
1569 | ICON_MAP.put(FA_CHEVRON_RIGHT, "\uf054");
1570 | ICON_MAP.put(FA_CHEVRON_UP, "\uf077");
1571 | ICON_MAP.put(FA_CHILD, "\uf1ae");
1572 | ICON_MAP.put(FA_CHROME, "\uf268");
1573 | ICON_MAP.put(FA_CIRCLE, "\uf111");
1574 | ICON_MAP.put(FA_CIRCLE_O, "\uf10c");
1575 | ICON_MAP.put(FA_CIRCLE_O_NOTCH, "\uf1ce");
1576 | ICON_MAP.put(FA_CIRCLE_THIN, "\uf1db");
1577 | ICON_MAP.put(FA_CLIPBOARD, "\uf0ea");
1578 | ICON_MAP.put(FA_CLOCK_O, "\uf017");
1579 | ICON_MAP.put(FA_CLONE, "\uf24d");
1580 | ICON_MAP.put(FA_CLOSE, "\uf00d");
1581 | ICON_MAP.put(FA_CLOUD, "\uf0c2");
1582 | ICON_MAP.put(FA_CLOUD_DOWNLOAD, "\uf0ed");
1583 | ICON_MAP.put(FA_CLOUD_UPLOAD, "\uf0ee");
1584 | ICON_MAP.put(FA_CNY, "\uf157");
1585 | ICON_MAP.put(FA_CODE, "\uf121");
1586 | ICON_MAP.put(FA_CODE_FORK, "\uf126");
1587 | ICON_MAP.put(FA_CODEPEN, "\uf1cb");
1588 | ICON_MAP.put(FA_CODIEPIE, "\uf284");
1589 | ICON_MAP.put(FA_COFFEE, "\uf0f4");
1590 | ICON_MAP.put(FA_COG, "\uf013");
1591 | ICON_MAP.put(FA_COGS, "\uf085");
1592 | ICON_MAP.put(FA_COLUMNS, "\uf0db");
1593 | ICON_MAP.put(FA_COMMENT, "\uf075");
1594 | ICON_MAP.put(FA_COMMENT_O, "\uf0e5");
1595 | ICON_MAP.put(FA_COMMENTING, "\uf27a");
1596 | ICON_MAP.put(FA_COMMENTING_O, "\uf27b");
1597 | ICON_MAP.put(FA_COMMENTS, "\uf086");
1598 | ICON_MAP.put(FA_COMMENTS_O, "\uf0e6");
1599 | ICON_MAP.put(FA_COMPASS, "\uf14e");
1600 | ICON_MAP.put(FA_COMPRESS, "\uf066");
1601 | ICON_MAP.put(FA_CONNECTDEVELOP, "\uf20e");
1602 | ICON_MAP.put(FA_CONTAO, "\uf26d");
1603 | ICON_MAP.put(FA_COPY, "\uf0c5");
1604 | ICON_MAP.put(FA_COPYRIGHT, "\uf1f9");
1605 | ICON_MAP.put(FA_CREATIVE_COMMONS, "\uf25e");
1606 | ICON_MAP.put(FA_CREDIT_CARD, "\uf09d");
1607 | ICON_MAP.put(FA_CREDIT_CARD_ALT, "\uf283");
1608 | ICON_MAP.put(FA_CROP, "\uf125");
1609 | ICON_MAP.put(FA_CROSSHAIRS, "\uf05b");
1610 | ICON_MAP.put(FA_CSS3, "\uf13c");
1611 | ICON_MAP.put(FA_CUBE, "\uf1b2");
1612 | ICON_MAP.put(FA_CUBES, "\uf1b3");
1613 | ICON_MAP.put(FA_CUT, "\uf0c4");
1614 | ICON_MAP.put(FA_CUTLERY, "\uf0f5");
1615 | ICON_MAP.put(FA_DASHBOARD, "\uf0e4");
1616 | ICON_MAP.put(FA_DASHCUBE, "\uf210");
1617 | ICON_MAP.put(FA_DATABASE, "\uf1c0");
1618 | ICON_MAP.put(FA_DEDENT, "\uf03b");
1619 | ICON_MAP.put(FA_DELICIOUS, "\uf1a5");
1620 | ICON_MAP.put(FA_DESKTOP, "\uf108");
1621 | ICON_MAP.put(FA_DEVIANTART, "\uf1bd");
1622 | ICON_MAP.put(FA_DIAMOND, "\uf219");
1623 | ICON_MAP.put(FA_DIGG, "\uf1a6");
1624 | ICON_MAP.put(FA_DOLLAR, "\uf155");
1625 | ICON_MAP.put(FA_DOT_CIRCLE_O, "\uf192");
1626 | ICON_MAP.put(FA_DOWNLOAD, "\uf019");
1627 | ICON_MAP.put(FA_DRIBBBLE, "\uf17d");
1628 | ICON_MAP.put(FA_DROPBOX, "\uf16b");
1629 | ICON_MAP.put(FA_DRUPAL, "\uf1a9");
1630 | ICON_MAP.put(FA_EDGE, "\uf282");
1631 | ICON_MAP.put(FA_EDIT, "\uf044");
1632 | ICON_MAP.put(FA_EJECT, "\uf052");
1633 | ICON_MAP.put(FA_ELLIPSIS_H, "\uf141");
1634 | ICON_MAP.put(FA_ELLIPSIS_V, "\uf142");
1635 | ICON_MAP.put(FA_EMPIRE, "\uf1d1");
1636 | ICON_MAP.put(FA_ENVELOPE, "\uf0e0");
1637 | ICON_MAP.put(FA_ENVELOPE_O, "\uf003");
1638 | ICON_MAP.put(FA_ENVELOPE_SQUARE, "\uf199");
1639 | ICON_MAP.put(FA_ERASER, "\uf12d");
1640 | ICON_MAP.put(FA_EUR, "\uf153");
1641 | ICON_MAP.put(FA_EURO, "\uf153");
1642 | ICON_MAP.put(FA_EXCHANGE, "\uf0ec");
1643 | ICON_MAP.put(FA_EXCLAMATION, "\uf12a");
1644 | ICON_MAP.put(FA_EXCLAMATION_CIRCLE, "\uf06a");
1645 | ICON_MAP.put(FA_EXCLAMATION_TRIANGLE, "\uf071");
1646 | ICON_MAP.put(FA_EXPAND, "\uf065");
1647 | ICON_MAP.put(FA_EXPEDITEDSSL, "\uf23e");
1648 | ICON_MAP.put(FA_EXTERNAL_LINK, "\uf08e");
1649 | ICON_MAP.put(FA_EXTERNAL_LINK_SQUARE, "\uf14c");
1650 | ICON_MAP.put(FA_EYE, "\uf06e");
1651 | ICON_MAP.put(FA_EYE_SLASH, "\uf070");
1652 | ICON_MAP.put(FA_EYEDROPPER, "\uf1fb");
1653 | ICON_MAP.put(FA_FACEBOOK, "\uf09a");
1654 | ICON_MAP.put(FA_FACEBOOK_F, "\uf09a");
1655 | ICON_MAP.put(FA_FACEBOOK_OFFICIAL, "\uf230");
1656 | ICON_MAP.put(FA_FACEBOOK_SQUARE, "\uf082");
1657 | ICON_MAP.put(FA_FAST_BACKWARD, "\uf049");
1658 | ICON_MAP.put(FA_FAST_FORWARD, "\uf050");
1659 | ICON_MAP.put(FA_FAX, "\uf1ac");
1660 | ICON_MAP.put(FA_FEED, "\uf09e");
1661 | ICON_MAP.put(FA_FEMALE, "\uf182");
1662 | ICON_MAP.put(FA_FIGHTER_JET, "\uf0fb");
1663 | ICON_MAP.put(FA_FILE, "\uf15b");
1664 | ICON_MAP.put(FA_FILE_ARCHIVE_O, "\uf1c6");
1665 | ICON_MAP.put(FA_FILE_AUDIO_O, "\uf1c7");
1666 | ICON_MAP.put(FA_FILE_CODE_O, "\uf1c9");
1667 | ICON_MAP.put(FA_FILE_EXCEL_O, "\uf1c3");
1668 | ICON_MAP.put(FA_FILE_IMAGE_O, "\uf1c5");
1669 | ICON_MAP.put(FA_FILE_MOVIE_O, "\uf1c8");
1670 | ICON_MAP.put(FA_FILE_O, "\uf016");
1671 | ICON_MAP.put(FA_FILE_PDF_O, "\uf1c1");
1672 | ICON_MAP.put(FA_FILE_PHOTO_O, "\uf1c5");
1673 | ICON_MAP.put(FA_FILE_PICTURE_O, "\uf1c5");
1674 | ICON_MAP.put(FA_FILE_POWERPOINT_O, "\uf1c4");
1675 | ICON_MAP.put(FA_FILE_SOUND_O, "\uf1c7");
1676 | ICON_MAP.put(FA_FILE_TEXT, "\uf15c");
1677 | ICON_MAP.put(FA_FILE_TEXT_O, "\uf0f6");
1678 | ICON_MAP.put(FA_FILE_VIDEO_O, "\uf1c8");
1679 | ICON_MAP.put(FA_FILE_WORD_O, "\uf1c2");
1680 | ICON_MAP.put(FA_FILE_ZIP_O, "\uf1c6");
1681 | ICON_MAP.put(FA_FILES_O, "\uf0c5");
1682 | ICON_MAP.put(FA_FILM, "\uf008");
1683 | ICON_MAP.put(FA_FILTER, "\uf0b0");
1684 | ICON_MAP.put(FA_FIRE, "\uf06d");
1685 | ICON_MAP.put(FA_FIRE_EXTINGUISHER, "\uf134");
1686 | ICON_MAP.put(FA_FIREFOX, "\uf269");
1687 | ICON_MAP.put(FA_FLAG, "\uf024");
1688 | ICON_MAP.put(FA_FLAG_CHECKERED, "\uf11e");
1689 | ICON_MAP.put(FA_FLAG_O, "\uf11d");
1690 | ICON_MAP.put(FA_FLASH, "\uf0e7");
1691 | ICON_MAP.put(FA_FLASK, "\uf0c3");
1692 | ICON_MAP.put(FA_FLICKR, "\uf16e");
1693 | ICON_MAP.put(FA_FLOPPY_O, "\uf0c7");
1694 | ICON_MAP.put(FA_FOLDER, "\uf07b");
1695 | ICON_MAP.put(FA_FOLDER_O, "\uf114");
1696 | ICON_MAP.put(FA_FOLDER_OPEN, "\uf07c");
1697 | ICON_MAP.put(FA_FOLDER_OPEN_O, "\uf115");
1698 | ICON_MAP.put(FA_FONT, "\uf031");
1699 | ICON_MAP.put(FA_FONTICONS, "\uf280");
1700 | ICON_MAP.put(FA_FORT_AWESOME, "\uf286");
1701 | ICON_MAP.put(FA_FORUMBEE, "\uf211");
1702 | ICON_MAP.put(FA_FORWARD, "\uf04e");
1703 | ICON_MAP.put(FA_FOURSQUARE, "\uf180");
1704 | ICON_MAP.put(FA_FROWN_O, "\uf119");
1705 | ICON_MAP.put(FA_FUTBOL_O, "\uf1e3");
1706 | ICON_MAP.put(FA_GAMEPAD, "\uf11b");
1707 | ICON_MAP.put(FA_GAVEL, "\uf0e3");
1708 | ICON_MAP.put(FA_GBP, "\uf154");
1709 | ICON_MAP.put(FA_GE, "\uf1d1");
1710 | ICON_MAP.put(FA_GEAR, "\uf013");
1711 | ICON_MAP.put(FA_GEARS, "\uf085");
1712 | ICON_MAP.put(FA_GENDERLESS, "\uf22d");
1713 | ICON_MAP.put(FA_GET_POCKET, "\uf265");
1714 | ICON_MAP.put(FA_GG, "\uf260");
1715 | ICON_MAP.put(FA_GG_CIRCLE, "\uf261");
1716 | ICON_MAP.put(FA_GIFT, "\uf06b");
1717 | ICON_MAP.put(FA_GIT, "\uf1d3");
1718 | ICON_MAP.put(FA_GIT_SQUARE, "\uf1d2");
1719 | ICON_MAP.put(FA_GITHUB, "\uf09b");
1720 | ICON_MAP.put(FA_GITHUB_ALT, "\uf113");
1721 | ICON_MAP.put(FA_GITHUB_SQUARE, "\uf092");
1722 | ICON_MAP.put(FA_GITTIP, "\uf184");
1723 | ICON_MAP.put(FA_GLASS, "\uf000");
1724 | ICON_MAP.put(FA_GLOBE, "\uf0ac");
1725 | ICON_MAP.put(FA_GOOGLE, "\uf1a0");
1726 | ICON_MAP.put(FA_GOOGLE_PLUS, "\uf0d5");
1727 | ICON_MAP.put(FA_GOOGLE_PLUS_SQUARE, "\uf0d4");
1728 | ICON_MAP.put(FA_GOOGLE_WALLET, "\uf1ee");
1729 | ICON_MAP.put(FA_GRADUATION_CAP, "\uf19d");
1730 | ICON_MAP.put(FA_GRATIPAY, "\uf184");
1731 | ICON_MAP.put(FA_GROUP, "\uf0c0");
1732 | ICON_MAP.put(FA_H_SQUARE, "\uf0fd");
1733 | ICON_MAP.put(FA_HACKER_NEWS, "\uf1d4");
1734 | ICON_MAP.put(FA_HAND_GRAB_O, "\uf255");
1735 | ICON_MAP.put(FA_HAND_LIZARD_O, "\uf258");
1736 | ICON_MAP.put(FA_HAND_O_DOWN, "\uf0a7");
1737 | ICON_MAP.put(FA_HAND_O_LEFT, "\uf0a5");
1738 | ICON_MAP.put(FA_HAND_O_RIGHT, "\uf0a4");
1739 | ICON_MAP.put(FA_HAND_O_UP, "\uf0a6");
1740 | ICON_MAP.put(FA_HAND_PAPER_O, "\uf256");
1741 | ICON_MAP.put(FA_HAND_PEACE_O, "\uf25b");
1742 | ICON_MAP.put(FA_HAND_POINTER_O, "\uf25a");
1743 | ICON_MAP.put(FA_HAND_ROCK_O, "\uf255");
1744 | ICON_MAP.put(FA_HAND_SCISSORS_O, "\uf257");
1745 | ICON_MAP.put(FA_HAND_SPOCK_O, "\uf259");
1746 | ICON_MAP.put(FA_HAND_STOP_O, "\uf256");
1747 | ICON_MAP.put(FA_HASHTAG, "\uf292");
1748 | ICON_MAP.put(FA_HDD_O, "\uf0a0");
1749 | ICON_MAP.put(FA_HEADER, "\uf1dc");
1750 | ICON_MAP.put(FA_HEADPHONES, "\uf025");
1751 | ICON_MAP.put(FA_HEART, "\uf004");
1752 | ICON_MAP.put(FA_HEART_O, "\uf08a");
1753 | ICON_MAP.put(FA_HEARTBEAT, "\uf21e");
1754 | ICON_MAP.put(FA_HISTORY, "\uf1da");
1755 | ICON_MAP.put(FA_HOME, "\uf015");
1756 | ICON_MAP.put(FA_HOSPITAL_O, "\uf0f8");
1757 | ICON_MAP.put(FA_HOTEL, "\uf236");
1758 | ICON_MAP.put(FA_HOURGLASS, "\uf254");
1759 | ICON_MAP.put(FA_HOURGLASS_1, "\uf251");
1760 | ICON_MAP.put(FA_HOURGLASS_2, "\uf252");
1761 | ICON_MAP.put(FA_HOURGLASS_3, "\uf253");
1762 | ICON_MAP.put(FA_HOURGLASS_END, "\uf253");
1763 | ICON_MAP.put(FA_HOURGLASS_HALF, "\uf252");
1764 | ICON_MAP.put(FA_HOURGLASS_O, "\uf250");
1765 | ICON_MAP.put(FA_HOURGLASS_START, "\uf251");
1766 | ICON_MAP.put(FA_HOUZZ, "\uf27c");
1767 | ICON_MAP.put(FA_HTML5, "\uf13b");
1768 | ICON_MAP.put(FA_I_CURSOR, "\uf246");
1769 | ICON_MAP.put(FA_ILS, "\uf20b");
1770 | ICON_MAP.put(FA_IMAGE, "\uf03e");
1771 | ICON_MAP.put(FA_INBOX, "\uf01c");
1772 | ICON_MAP.put(FA_INDENT, "\uf03c");
1773 | ICON_MAP.put(FA_INDUSTRY, "\uf275");
1774 | ICON_MAP.put(FA_INFO, "\uf129");
1775 | ICON_MAP.put(FA_INFO_CIRCLE, "\uf05a");
1776 | ICON_MAP.put(FA_INR, "\uf156");
1777 | ICON_MAP.put(FA_INSTAGRAM, "\uf16d");
1778 | ICON_MAP.put(FA_INSTITUTION, "\uf19c");
1779 | ICON_MAP.put(FA_INTERNET_EXPLORER, "\uf26b");
1780 | ICON_MAP.put(FA_INTERSEX, "\uf224");
1781 | ICON_MAP.put(FA_IOXHOST, "\uf208");
1782 | ICON_MAP.put(FA_ITALIC, "\uf033");
1783 | ICON_MAP.put(FA_JOOMLA, "\uf1aa");
1784 | ICON_MAP.put(FA_JPY, "\uf157");
1785 | ICON_MAP.put(FA_JSFIDDLE, "\uf1cc");
1786 | ICON_MAP.put(FA_KEY, "\uf084");
1787 | ICON_MAP.put(FA_KEYBOARD_O, "\uf11c");
1788 | ICON_MAP.put(FA_KRW, "\uf159");
1789 | ICON_MAP.put(FA_LANGUAGE, "\uf1ab");
1790 | ICON_MAP.put(FA_LAPTOP, "\uf109");
1791 | ICON_MAP.put(FA_LASTFM, "\uf202");
1792 | ICON_MAP.put(FA_LASTFM_SQUARE, "\uf203");
1793 | ICON_MAP.put(FA_LEAF, "\uf06c");
1794 | ICON_MAP.put(FA_LEANPUB, "\uf212");
1795 | ICON_MAP.put(FA_LEGAL, "\uf0e3");
1796 | ICON_MAP.put(FA_LEMON_O, "\uf094");
1797 | ICON_MAP.put(FA_LEVEL_DOWN, "\uf149");
1798 | ICON_MAP.put(FA_LEVEL_UP, "\uf148");
1799 | ICON_MAP.put(FA_LIFE_BOUY, "\uf1cd");
1800 | ICON_MAP.put(FA_LIFE_BUOY, "\uf1cd");
1801 | ICON_MAP.put(FA_LIFE_RING, "\uf1cd");
1802 | ICON_MAP.put(FA_LIFE_SAVER, "\uf1cd");
1803 | ICON_MAP.put(FA_LIGHTBULB_O, "\uf0eb");
1804 | ICON_MAP.put(FA_LINE_CHART, "\uf201");
1805 | ICON_MAP.put(FA_LINK, "\uf0c1");
1806 | ICON_MAP.put(FA_LINKEDIN, "\uf0e1");
1807 | ICON_MAP.put(FA_LINKEDIN_SQUARE, "\uf08c");
1808 | ICON_MAP.put(FA_LINUX, "\uf17c");
1809 | ICON_MAP.put(FA_LIST, "\uf03a");
1810 | ICON_MAP.put(FA_LIST_ALT, "\uf022");
1811 | ICON_MAP.put(FA_LIST_OL, "\uf0cb");
1812 | ICON_MAP.put(FA_LIST_UL, "\uf0ca");
1813 | ICON_MAP.put(FA_LOCATION_ARROW, "\uf124");
1814 | ICON_MAP.put(FA_LOCK, "\uf023");
1815 | ICON_MAP.put(FA_LONG_ARROW_DOWN, "\uf175");
1816 | ICON_MAP.put(FA_LONG_ARROW_LEFT, "\uf177");
1817 | ICON_MAP.put(FA_LONG_ARROW_RIGHT, "\uf178");
1818 | ICON_MAP.put(FA_LONG_ARROW_UP, "\uf176");
1819 | ICON_MAP.put(FA_MAGIC, "\uf0d0");
1820 | ICON_MAP.put(FA_MAGNET, "\uf076");
1821 | ICON_MAP.put(FA_MAIL_FORWARD, "\uf064");
1822 | ICON_MAP.put(FA_MAIL_REPLY, "\uf112");
1823 | ICON_MAP.put(FA_MAIL_REPLY_ALL, "\uf122");
1824 | ICON_MAP.put(FA_MALE, "\uf183");
1825 | ICON_MAP.put(FA_MAP, "\uf279");
1826 | ICON_MAP.put(FA_MAP_MARKER, "\uf041");
1827 | ICON_MAP.put(FA_MAP_O, "\uf278");
1828 | ICON_MAP.put(FA_MAP_PIN, "\uf276");
1829 | ICON_MAP.put(FA_MAP_SIGNS, "\uf277");
1830 | ICON_MAP.put(FA_MARS, "\uf222");
1831 | ICON_MAP.put(FA_MARS_DOUBLE, "\uf227");
1832 | ICON_MAP.put(FA_MARS_STROKE, "\uf229");
1833 | ICON_MAP.put(FA_MARS_STROKE_H, "\uf22b");
1834 | ICON_MAP.put(FA_MARS_STROKE_V, "\uf22a");
1835 | ICON_MAP.put(FA_MAXCDN, "\uf136");
1836 | ICON_MAP.put(FA_MEANPATH, "\uf20c");
1837 | ICON_MAP.put(FA_MEDIUM, "\uf23a");
1838 | ICON_MAP.put(FA_MEDKIT, "\uf0fa");
1839 | ICON_MAP.put(FA_MEH_O, "\uf11a");
1840 | ICON_MAP.put(FA_MERCURY, "\uf223");
1841 | ICON_MAP.put(FA_MICROPHONE, "\uf130");
1842 | ICON_MAP.put(FA_MICROPHONE_SLASH, "\uf131");
1843 | ICON_MAP.put(FA_MINUS, "\uf068");
1844 | ICON_MAP.put(FA_MINUS_CIRCLE, "\uf056");
1845 | ICON_MAP.put(FA_MINUS_SQUARE, "\uf146");
1846 | ICON_MAP.put(FA_MINUS_SQUARE_O, "\uf147");
1847 | ICON_MAP.put(FA_MIXCLOUD, "\uf289");
1848 | ICON_MAP.put(FA_MOBILE, "\uf10b");
1849 | ICON_MAP.put(FA_MOBILE_PHONE, "\uf10b");
1850 | ICON_MAP.put(FA_MODX, "\uf285");
1851 | ICON_MAP.put(FA_MONEY, "\uf0d6");
1852 | ICON_MAP.put(FA_MOON_O, "\uf186");
1853 | ICON_MAP.put(FA_MORTAR_BOARD, "\uf19d");
1854 | ICON_MAP.put(FA_MOTORCYCLE, "\uf21c");
1855 | ICON_MAP.put(FA_MOUSE_POINTER, "\uf245");
1856 | ICON_MAP.put(FA_MUSIC, "\uf001");
1857 | ICON_MAP.put(FA_NAVICON, "\uf0c9");
1858 | ICON_MAP.put(FA_NEUTER, "\uf22c");
1859 | ICON_MAP.put(FA_NEWSPAPER_O, "\uf1ea");
1860 | ICON_MAP.put(FA_OBJECT_GROUP, "\uf247");
1861 | ICON_MAP.put(FA_OBJECT_UNGROUP, "\uf248");
1862 | ICON_MAP.put(FA_ODNOKLASSNIKI, "\uf263");
1863 | ICON_MAP.put(FA_ODNOKLASSNIKI_SQUARE, "\uf264");
1864 | ICON_MAP.put(FA_OPENCART, "\uf23d");
1865 | ICON_MAP.put(FA_OPENID, "\uf19b");
1866 | ICON_MAP.put(FA_OPERA, "\uf26a");
1867 | ICON_MAP.put(FA_OPTIN_MONSTER, "\uf23c");
1868 | ICON_MAP.put(FA_OUTDENT, "\uf03b");
1869 | ICON_MAP.put(FA_PAGELINES, "\uf18c");
1870 | ICON_MAP.put(FA_PAINT_BRUSH, "\uf1fc");
1871 | ICON_MAP.put(FA_PAPER_PLANE, "\uf1d8");
1872 | ICON_MAP.put(FA_PAPER_PLANE_O, "\uf1d9");
1873 | ICON_MAP.put(FA_PAPERCLIP, "\uf0c6");
1874 | ICON_MAP.put(FA_PARAGRAPH, "\uf1dd");
1875 | ICON_MAP.put(FA_PASTE, "\uf0ea");
1876 | ICON_MAP.put(FA_PAUSE, "\uf04c");
1877 | ICON_MAP.put(FA_PAUSE_CIRCLE, "\uf28b");
1878 | ICON_MAP.put(FA_PAUSE_CIRCLE_O, "\uf28c");
1879 | ICON_MAP.put(FA_PAW, "\uf1b0");
1880 | ICON_MAP.put(FA_PAYPAL, "\uf1ed");
1881 | ICON_MAP.put(FA_PENCIL, "\uf040");
1882 | ICON_MAP.put(FA_PENCIL_SQUARE, "\uf14b");
1883 | ICON_MAP.put(FA_PENCIL_SQUARE_O, "\uf044");
1884 | ICON_MAP.put(FA_PERCENT, "\uf295");
1885 | ICON_MAP.put(FA_PHONE, "\uf095");
1886 | ICON_MAP.put(FA_PHONE_SQUARE, "\uf098");
1887 | ICON_MAP.put(FA_PHOTO, "\uf03e");
1888 | ICON_MAP.put(FA_PICTURE_O, "\uf03e");
1889 | ICON_MAP.put(FA_PIE_CHART, "\uf200");
1890 | ICON_MAP.put(FA_PIED_PIPER, "\uf1a7");
1891 | ICON_MAP.put(FA_PIED_PIPER_ALT, "\uf1a8");
1892 | ICON_MAP.put(FA_PINTEREST, "\uf0d2");
1893 | ICON_MAP.put(FA_PINTEREST_P, "\uf231");
1894 | ICON_MAP.put(FA_PINTEREST_SQUARE, "\uf0d3");
1895 | ICON_MAP.put(FA_PLANE, "\uf072");
1896 | ICON_MAP.put(FA_PLAY, "\uf04b");
1897 | ICON_MAP.put(FA_PLAY_CIRCLE, "\uf144");
1898 | ICON_MAP.put(FA_PLAY_CIRCLE_O, "\uf01d");
1899 | ICON_MAP.put(FA_PLUG, "\uf1e6");
1900 | ICON_MAP.put(FA_PLUS, "\uf067");
1901 | ICON_MAP.put(FA_PLUS_CIRCLE, "\uf055");
1902 | ICON_MAP.put(FA_PLUS_SQUARE, "\uf0fe");
1903 | ICON_MAP.put(FA_PLUS_SQUARE_O, "\uf196");
1904 | ICON_MAP.put(FA_POWER_OFF, "\uf011");
1905 | ICON_MAP.put(FA_PRINT, "\uf02f");
1906 | ICON_MAP.put(FA_PRODUCT_HUNT, "\uf288");
1907 | ICON_MAP.put(FA_PUZZLE_PIECE, "\uf12e");
1908 | ICON_MAP.put(FA_QQ, "\uf1d6");
1909 | ICON_MAP.put(FA_QRCODE, "\uf029");
1910 | ICON_MAP.put(FA_QUESTION, "\uf128");
1911 | ICON_MAP.put(FA_QUESTION_CIRCLE, "\uf059");
1912 | ICON_MAP.put(FA_QUOTE_LEFT, "\uf10d");
1913 | ICON_MAP.put(FA_QUOTE_RIGHT, "\uf10e");
1914 | ICON_MAP.put(FA_RA, "\uf1d0");
1915 | ICON_MAP.put(FA_RANDOM, "\uf074");
1916 | ICON_MAP.put(FA_REBEL, "\uf1d0");
1917 | ICON_MAP.put(FA_RECYCLE, "\uf1b8");
1918 | ICON_MAP.put(FA_REDDIT, "\uf1a1");
1919 | ICON_MAP.put(FA_REDDIT_ALIEN, "\uf281");
1920 | ICON_MAP.put(FA_REDDIT_SQUARE, "\uf1a2");
1921 | ICON_MAP.put(FA_REFRESH, "\uf021");
1922 | ICON_MAP.put(FA_REGISTERED, "\uf25d");
1923 | ICON_MAP.put(FA_REMOVE, "\uf00d");
1924 | ICON_MAP.put(FA_RENREN, "\uf18b");
1925 | ICON_MAP.put(FA_REORDER, "\uf0c9");
1926 | ICON_MAP.put(FA_REPEAT, "\uf01e");
1927 | ICON_MAP.put(FA_REPLY, "\uf112");
1928 | ICON_MAP.put(FA_REPLY_ALL, "\uf122");
1929 | ICON_MAP.put(FA_RETWEET, "\uf079");
1930 | ICON_MAP.put(FA_RMB, "\uf157");
1931 | ICON_MAP.put(FA_ROAD, "\uf018");
1932 | ICON_MAP.put(FA_ROCKET, "\uf135");
1933 | ICON_MAP.put(FA_ROTATE_LEFT, "\uf0e2");
1934 | ICON_MAP.put(FA_ROTATE_RIGHT, "\uf01e");
1935 | ICON_MAP.put(FA_ROUBLE, "\uf158");
1936 | ICON_MAP.put(FA_RSS, "\uf09e");
1937 | ICON_MAP.put(FA_RSS_SQUARE, "\uf143");
1938 | ICON_MAP.put(FA_RUB, "\uf158");
1939 | ICON_MAP.put(FA_RUBLE, "\uf158");
1940 | ICON_MAP.put(FA_RUPEE, "\uf156");
1941 | ICON_MAP.put(FA_SAFARI, "\uf267");
1942 | ICON_MAP.put(FA_SAVE, "\uf0c7");
1943 | ICON_MAP.put(FA_SCISSORS, "\uf0c4");
1944 | ICON_MAP.put(FA_SCRIBD, "\uf28a");
1945 | ICON_MAP.put(FA_SEARCH, "\uf002");
1946 | ICON_MAP.put(FA_SEARCH_MINUS, "\uf010");
1947 | ICON_MAP.put(FA_SEARCH_PLUS, "\uf00e");
1948 | ICON_MAP.put(FA_SELLSY, "\uf213");
1949 | ICON_MAP.put(FA_SEND, "\uf1d8");
1950 | ICON_MAP.put(FA_SEND_O, "\uf1d9");
1951 | ICON_MAP.put(FA_SERVER, "\uf233");
1952 | ICON_MAP.put(FA_SHARE, "\uf064");
1953 | ICON_MAP.put(FA_SHARE_ALT, "\uf1e0");
1954 | ICON_MAP.put(FA_SHARE_ALT_SQUARE, "\uf1e1");
1955 | ICON_MAP.put(FA_SHARE_SQUARE, "\uf14d");
1956 | ICON_MAP.put(FA_SHARE_SQUARE_O, "\uf045");
1957 | ICON_MAP.put(FA_SHEKEL, "\uf20b");
1958 | ICON_MAP.put(FA_SHEQEL, "\uf20b");
1959 | ICON_MAP.put(FA_SHIELD, "\uf132");
1960 | ICON_MAP.put(FA_SHIP, "\uf21a");
1961 | ICON_MAP.put(FA_SHIRTSINBULK, "\uf214");
1962 | ICON_MAP.put(FA_SHOPPING_BAG, "\uf290");
1963 | ICON_MAP.put(FA_SHOPPING_BASKET, "\uf291");
1964 | ICON_MAP.put(FA_SHOPPING_CART, "\uf07a");
1965 | ICON_MAP.put(FA_SIGN_IN, "\uf090");
1966 | ICON_MAP.put(FA_SIGN_OUT, "\uf08b");
1967 | ICON_MAP.put(FA_SIGNAL, "\uf012");
1968 | ICON_MAP.put(FA_SIMPLYBUILT, "\uf215");
1969 | ICON_MAP.put(FA_SITEMAP, "\uf0e8");
1970 | ICON_MAP.put(FA_SKYATLAS, "\uf216");
1971 | ICON_MAP.put(FA_SKYPE, "\uf17e");
1972 | ICON_MAP.put(FA_SLACK, "\uf198");
1973 | ICON_MAP.put(FA_SLIDERS, "\uf1de");
1974 | ICON_MAP.put(FA_SLIDESHARE, "\uf1e7");
1975 | ICON_MAP.put(FA_SMILE_O, "\uf118");
1976 | ICON_MAP.put(FA_SOCCER_BALL_O, "\uf1e3");
1977 | ICON_MAP.put(FA_SORT, "\uf0dc");
1978 | ICON_MAP.put(FA_SORT_ALPHA_ASC, "\uf15d");
1979 | ICON_MAP.put(FA_SORT_ALPHA_DESC, "\uf15e");
1980 | ICON_MAP.put(FA_SORT_AMOUNT_ASC, "\uf160");
1981 | ICON_MAP.put(FA_SORT_AMOUNT_DESC, "\uf161");
1982 | ICON_MAP.put(FA_SORT_ASC, "\uf0de");
1983 | ICON_MAP.put(FA_SORT_DESC, "\uf0dd");
1984 | ICON_MAP.put(FA_SORT_DOWN, "\uf0dd");
1985 | ICON_MAP.put(FA_SORT_NUMERIC_ASC, "\uf162");
1986 | ICON_MAP.put(FA_SORT_NUMERIC_DESC, "\uf163");
1987 | ICON_MAP.put(FA_SORT_UP, "\uf0de");
1988 | ICON_MAP.put(FA_SOUNDCLOUD, "\uf1be");
1989 | ICON_MAP.put(FA_SPACE_SHUTTLE, "\uf197");
1990 | ICON_MAP.put(FA_SPINNER, "\uf110");
1991 | ICON_MAP.put(FA_SPOON, "\uf1b1");
1992 | ICON_MAP.put(FA_SPOTIFY, "\uf1bc");
1993 | ICON_MAP.put(FA_SQUARE, "\uf0c8");
1994 | ICON_MAP.put(FA_SQUARE_O, "\uf096");
1995 | ICON_MAP.put(FA_STACK_EXCHANGE, "\uf18d");
1996 | ICON_MAP.put(FA_STACK_OVERFLOW, "\uf16c");
1997 | ICON_MAP.put(FA_STAR, "\uf005");
1998 | ICON_MAP.put(FA_STAR_HALF, "\uf089");
1999 | ICON_MAP.put(FA_STAR_HALF_EMPTY, "\uf123");
2000 | ICON_MAP.put(FA_STAR_HALF_FULL, "\uf123");
2001 | ICON_MAP.put(FA_STAR_HALF_O, "\uf123");
2002 | ICON_MAP.put(FA_STAR_O, "\uf006");
2003 | ICON_MAP.put(FA_STEAM, "\uf1b6");
2004 | ICON_MAP.put(FA_STEAM_SQUARE, "\uf1b7");
2005 | ICON_MAP.put(FA_STEP_BACKWARD, "\uf048");
2006 | ICON_MAP.put(FA_STEP_FORWARD, "\uf051");
2007 | ICON_MAP.put(FA_STETHOSCOPE, "\uf0f1");
2008 | ICON_MAP.put(FA_STICKY_NOTE, "\uf249");
2009 | ICON_MAP.put(FA_STICKY_NOTE_O, "\uf24a");
2010 | ICON_MAP.put(FA_STOP, "\uf04d");
2011 | ICON_MAP.put(FA_STOP_CIRCLE, "\uf28d");
2012 | ICON_MAP.put(FA_STOP_CIRCLE_O, "\uf28e");
2013 | ICON_MAP.put(FA_STREET_VIEW, "\uf21d");
2014 | ICON_MAP.put(FA_STRIKETHROUGH, "\uf0cc");
2015 | ICON_MAP.put(FA_STUMBLEUPON, "\uf1a4");
2016 | ICON_MAP.put(FA_STUMBLEUPON_CIRCLE, "\uf1a3");
2017 | ICON_MAP.put(FA_SUBSCRIPT, "\uf12c");
2018 | ICON_MAP.put(FA_SUBWAY, "\uf239");
2019 | ICON_MAP.put(FA_SUITCASE, "\uf0f2");
2020 | ICON_MAP.put(FA_SUN_O, "\uf185");
2021 | ICON_MAP.put(FA_SUPERSCRIPT, "\uf12b");
2022 | ICON_MAP.put(FA_SUPPORT, "\uf1cd");
2023 | ICON_MAP.put(FA_TABLE, "\uf0ce");
2024 | ICON_MAP.put(FA_TABLET, "\uf10a");
2025 | ICON_MAP.put(FA_TACHOMETER, "\uf0e4");
2026 | ICON_MAP.put(FA_TAG, "\uf02b");
2027 | ICON_MAP.put(FA_TAGS, "\uf02c");
2028 | ICON_MAP.put(FA_TASKS, "\uf0ae");
2029 | ICON_MAP.put(FA_TAXI, "\uf1ba");
2030 | ICON_MAP.put(FA_TELEVISION, "\uf26c");
2031 | ICON_MAP.put(FA_TENCENT_WEIBO, "\uf1d5");
2032 | ICON_MAP.put(FA_TERMINAL, "\uf120");
2033 | ICON_MAP.put(FA_TEXT_HEIGHT, "\uf034");
2034 | ICON_MAP.put(FA_TEXT_WIDTH, "\uf035");
2035 | ICON_MAP.put(FA_TH, "\uf00a");
2036 | ICON_MAP.put(FA_TH_LARGE, "\uf009");
2037 | ICON_MAP.put(FA_TH_LIST, "\uf00b");
2038 | ICON_MAP.put(FA_THUMB_TACK, "\uf08d");
2039 | ICON_MAP.put(FA_THUMBS_DOWN, "\uf165");
2040 | ICON_MAP.put(FA_THUMBS_O_DOWN, "\uf088");
2041 | ICON_MAP.put(FA_THUMBS_O_UP, "\uf087");
2042 | ICON_MAP.put(FA_THUMBS_UP, "\uf164");
2043 | ICON_MAP.put(FA_TICKET, "\uf145");
2044 | ICON_MAP.put(FA_TIMES, "\uf00d");
2045 | ICON_MAP.put(FA_TIMES_CIRCLE, "\uf057");
2046 | ICON_MAP.put(FA_TIMES_CIRCLE_O, "\uf05c");
2047 | ICON_MAP.put(FA_TINT, "\uf043");
2048 | ICON_MAP.put(FA_TOGGLE_DOWN, "\uf150");
2049 | ICON_MAP.put(FA_TOGGLE_LEFT, "\uf191");
2050 | ICON_MAP.put(FA_TOGGLE_OFF, "\uf204");
2051 | ICON_MAP.put(FA_TOGGLE_ON, "\uf205");
2052 | ICON_MAP.put(FA_TOGGLE_RIGHT, "\uf152");
2053 | ICON_MAP.put(FA_TOGGLE_UP, "\uf151");
2054 | ICON_MAP.put(FA_TRADEMARK, "\uf25c");
2055 | ICON_MAP.put(FA_TRAIN, "\uf238");
2056 | ICON_MAP.put(FA_TRANSGENDER, "\uf224");
2057 | ICON_MAP.put(FA_TRANSGENDER_ALT, "\uf225");
2058 | ICON_MAP.put(FA_TRASH, "\uf1f8");
2059 | ICON_MAP.put(FA_TRASH_O, "\uf014");
2060 | ICON_MAP.put(FA_TREE, "\uf1bb");
2061 | ICON_MAP.put(FA_TRELLO, "\uf181");
2062 | ICON_MAP.put(FA_TRIPADVISOR, "\uf262");
2063 | ICON_MAP.put(FA_TROPHY, "\uf091");
2064 | ICON_MAP.put(FA_TRUCK, "\uf0d1");
2065 | ICON_MAP.put(FA_TRY, "\uf195");
2066 | ICON_MAP.put(FA_TTY, "\uf1e4");
2067 | ICON_MAP.put(FA_TUMBLR, "\uf173");
2068 | ICON_MAP.put(FA_TUMBLR_SQUARE, "\uf174");
2069 | ICON_MAP.put(FA_TURKISH_LIRA, "\uf195");
2070 | ICON_MAP.put(FA_TV, "\uf26c");
2071 | ICON_MAP.put(FA_TWITCH, "\uf1e8");
2072 | ICON_MAP.put(FA_TWITTER, "\uf099");
2073 | ICON_MAP.put(FA_TWITTER_SQUARE, "\uf081");
2074 | ICON_MAP.put(FA_UMBRELLA, "\uf0e9");
2075 | ICON_MAP.put(FA_UNDERLINE, "\uf0cd");
2076 | ICON_MAP.put(FA_UNDO, "\uf0e2");
2077 | ICON_MAP.put(FA_UNIVERSITY, "\uf19c");
2078 | ICON_MAP.put(FA_UNLINK, "\uf127");
2079 | ICON_MAP.put(FA_UNLOCK, "\uf09c");
2080 | ICON_MAP.put(FA_UNLOCK_ALT, "\uf13e");
2081 | ICON_MAP.put(FA_UNSORTED, "\uf0dc");
2082 | ICON_MAP.put(FA_UPLOAD, "\uf093");
2083 | ICON_MAP.put(FA_USB, "\uf287");
2084 | ICON_MAP.put(FA_USD, "\uf155");
2085 | ICON_MAP.put(FA_USER, "\uf007");
2086 | ICON_MAP.put(FA_USER_MD, "\uf0f0");
2087 | ICON_MAP.put(FA_USER_PLUS, "\uf234");
2088 | ICON_MAP.put(FA_USER_SECRET, "\uf21b");
2089 | ICON_MAP.put(FA_USER_TIMES, "\uf235");
2090 | ICON_MAP.put(FA_USERS, "\uf0c0");
2091 | ICON_MAP.put(FA_VENUS, "\uf221");
2092 | ICON_MAP.put(FA_VENUS_DOUBLE, "\uf226");
2093 | ICON_MAP.put(FA_VENUS_MARS, "\uf228");
2094 | ICON_MAP.put(FA_VIACOIN, "\uf237");
2095 | ICON_MAP.put(FA_VIDEO_CAMERA, "\uf03d");
2096 | ICON_MAP.put(FA_VIMEO, "\uf27d");
2097 | ICON_MAP.put(FA_VIMEO_SQUARE, "\uf194");
2098 | ICON_MAP.put(FA_VINE, "\uf1ca");
2099 | ICON_MAP.put(FA_VK, "\uf189");
2100 | ICON_MAP.put(FA_VOLUME_DOWN, "\uf027");
2101 | ICON_MAP.put(FA_VOLUME_OFF, "\uf026");
2102 | ICON_MAP.put(FA_VOLUME_UP, "\uf028");
2103 | ICON_MAP.put(FA_WARNING, "\uf071");
2104 | ICON_MAP.put(FA_WECHAT, "\uf1d7");
2105 | ICON_MAP.put(FA_WEIBO, "\uf18a");
2106 | ICON_MAP.put(FA_WEIXIN, "\uf1d7");
2107 | ICON_MAP.put(FA_WHATSAPP, "\uf232");
2108 | ICON_MAP.put(FA_WHEELCHAIR, "\uf193");
2109 | ICON_MAP.put(FA_WIFI, "\uf1eb");
2110 | ICON_MAP.put(FA_WIKIPEDIA_W, "\uf266");
2111 | ICON_MAP.put(FA_WINDOWS, "\uf17a");
2112 | ICON_MAP.put(FA_WON, "\uf159");
2113 | ICON_MAP.put(FA_WORDPRESS, "\uf19a");
2114 | ICON_MAP.put(FA_WRENCH, "\uf0ad");
2115 | ICON_MAP.put(FA_XING, "\uf168");
2116 | ICON_MAP.put(FA_XING_SQUARE, "\uf169");
2117 | ICON_MAP.put(FA_Y_COMBINATOR, "\uf23b");
2118 | ICON_MAP.put(FA_Y_COMBINATOR_SQUARE, "\uf1d4");
2119 | ICON_MAP.put(FA_YAHOO, "\uf19e");
2120 | ICON_MAP.put(FA_YC, "\uf23b");
2121 | ICON_MAP.put(FA_YC_SQUARE, "\uf1d4");
2122 | ICON_MAP.put(FA_YELP, "\uf1e9");
2123 | ICON_MAP.put(FA_YEN, "\uf157");
2124 | ICON_MAP.put(FA_YOUTUBE, "\uf167");
2125 | ICON_MAP.put(FA_YOUTUBE_PLAY, "\uf16a");
2126 | ICON_MAP.put(FA_YOUTUBE_SQUARE, "\uf166");
2127 |
2128 |
2129 | ATTR_MAP.put(0, FA_ADJUST);
2130 | ATTR_MAP.put(1, FA_ADN);
2131 | ATTR_MAP.put(2, FA_ALIGN_CENTER);
2132 | ATTR_MAP.put(3, FA_ALIGN_JUSTIFY);
2133 | ATTR_MAP.put(4, FA_ALIGN_LEFT);
2134 | ATTR_MAP.put(5, FA_ALIGN_RIGHT);
2135 | ATTR_MAP.put(6, FA_AMAZON);
2136 | ATTR_MAP.put(7, FA_AMBULANCE);
2137 | ATTR_MAP.put(8, FA_ANCHOR);
2138 | ATTR_MAP.put(9, FA_ANDROID);
2139 | ATTR_MAP.put(10, FA_ANGELLIST);
2140 | ATTR_MAP.put(11, FA_ANGLE_DOUBLE_DOWN);
2141 | ATTR_MAP.put(12, FA_ANGLE_DOUBLE_LEFT);
2142 | ATTR_MAP.put(13, FA_ANGLE_DOUBLE_RIGHT);
2143 | ATTR_MAP.put(14, FA_ANGLE_DOUBLE_UP);
2144 | ATTR_MAP.put(15, FA_ANGLE_DOWN);
2145 | ATTR_MAP.put(16, FA_ANGLE_LEFT);
2146 | ATTR_MAP.put(17, FA_ANGLE_RIGHT);
2147 | ATTR_MAP.put(18, FA_ANGLE_UP);
2148 | ATTR_MAP.put(19, FA_APPLE);
2149 | ATTR_MAP.put(20, FA_ARCHIVE);
2150 | ATTR_MAP.put(21, FA_AREA_CHART);
2151 | ATTR_MAP.put(22, FA_ARROW_CIRCLE_DOWN);
2152 | ATTR_MAP.put(23, FA_ARROW_CIRCLE_LEFT);
2153 | ATTR_MAP.put(24, FA_ARROW_CIRCLE_O_DOWN);
2154 | ATTR_MAP.put(25, FA_ARROW_CIRCLE_O_LEFT);
2155 | ATTR_MAP.put(26, FA_ARROW_CIRCLE_O_RIGHT);
2156 | ATTR_MAP.put(27, FA_ARROW_CIRCLE_O_UP);
2157 | ATTR_MAP.put(28, FA_ARROW_CIRCLE_RIGHT);
2158 | ATTR_MAP.put(29, FA_ARROW_CIRCLE_UP);
2159 | ATTR_MAP.put(30, FA_ARROW_DOWN);
2160 | ATTR_MAP.put(31, FA_ARROW_LEFT);
2161 | ATTR_MAP.put(32, FA_ARROW_RIGHT);
2162 | ATTR_MAP.put(33, FA_ARROW_UP);
2163 | ATTR_MAP.put(34, FA_ARROWS);
2164 | ATTR_MAP.put(35, FA_ARROWS_ALT);
2165 | ATTR_MAP.put(36, FA_ARROWS_H);
2166 | ATTR_MAP.put(37, FA_ARROWS_V);
2167 | ATTR_MAP.put(38, FA_ASTERISK);
2168 | ATTR_MAP.put(39, FA_AT);
2169 | ATTR_MAP.put(40, FA_AUTOMOBILE);
2170 | ATTR_MAP.put(41, FA_BACKWARD);
2171 | ATTR_MAP.put(42, FA_BALANCE_SCALE);
2172 | ATTR_MAP.put(43, FA_BAN);
2173 | ATTR_MAP.put(44, FA_BANK);
2174 | ATTR_MAP.put(45, FA_BAR_CHART);
2175 | ATTR_MAP.put(46, FA_BAR_CHART_O);
2176 | ATTR_MAP.put(47, FA_BARCODE);
2177 | ATTR_MAP.put(48, FA_BARS);
2178 | ATTR_MAP.put(49, FA_BATTERY_0);
2179 | ATTR_MAP.put(50, FA_BATTERY_1);
2180 | ATTR_MAP.put(51, FA_BATTERY_2);
2181 | ATTR_MAP.put(52, FA_BATTERY_3);
2182 | ATTR_MAP.put(53, FA_BATTERY_4);
2183 | ATTR_MAP.put(54, FA_BATTERY_EMPTY);
2184 | ATTR_MAP.put(55, FA_BATTERY_FULL);
2185 | ATTR_MAP.put(56, FA_BATTERY_HALF);
2186 | ATTR_MAP.put(57, FA_BATTERY_QUARTER);
2187 | ATTR_MAP.put(58, FA_BATTERY_THREE_QUARTERS);
2188 | ATTR_MAP.put(59, FA_BED);
2189 | ATTR_MAP.put(60, FA_BEER);
2190 | ATTR_MAP.put(61, FA_BEHANCE);
2191 | ATTR_MAP.put(62, FA_BEHANCE_SQUARE);
2192 | ATTR_MAP.put(63, FA_BELL);
2193 | ATTR_MAP.put(64, FA_BELL_O);
2194 | ATTR_MAP.put(65, FA_BELL_SLASH);
2195 | ATTR_MAP.put(66, FA_BELL_SLASH_O);
2196 | ATTR_MAP.put(67, FA_BICYCLE);
2197 | ATTR_MAP.put(68, FA_BINOCULARS);
2198 | ATTR_MAP.put(69, FA_BIRTHDAY_CAKE);
2199 | ATTR_MAP.put(70, FA_BITBUCKET);
2200 | ATTR_MAP.put(71, FA_BITBUCKET_SQUARE);
2201 | ATTR_MAP.put(72, FA_BITCOIN);
2202 | ATTR_MAP.put(73, FA_BLACK_TIE);
2203 | ATTR_MAP.put(74, FA_BLUETOOTH);
2204 | ATTR_MAP.put(75, FA_BLUETOOTH_B);
2205 | ATTR_MAP.put(76, FA_BOLD);
2206 | ATTR_MAP.put(77, FA_BOLT);
2207 | ATTR_MAP.put(78, FA_BOMB);
2208 | ATTR_MAP.put(79, FA_BOOK);
2209 | ATTR_MAP.put(80, FA_BOOKMARK);
2210 | ATTR_MAP.put(81, FA_BOOKMARK_O);
2211 | ATTR_MAP.put(82, FA_BRIEFCASE);
2212 | ATTR_MAP.put(83, FA_BTC);
2213 | ATTR_MAP.put(84, FA_BUG);
2214 | ATTR_MAP.put(85, FA_BUILDING);
2215 | ATTR_MAP.put(86, FA_BUILDING_O);
2216 | ATTR_MAP.put(87, FA_BULLHORN);
2217 | ATTR_MAP.put(88, FA_BULLSEYE);
2218 | ATTR_MAP.put(89, FA_BUS);
2219 | ATTR_MAP.put(90, FA_BUYSELLADS);
2220 | ATTR_MAP.put(91, FA_CAB);
2221 | ATTR_MAP.put(92, FA_CALCULATOR);
2222 | ATTR_MAP.put(93, FA_CALENDAR);
2223 | ATTR_MAP.put(94, FA_CALENDAR_CHECK_O);
2224 | ATTR_MAP.put(95, FA_CALENDAR_MINUS_O);
2225 | ATTR_MAP.put(96, FA_CALENDAR_O);
2226 | ATTR_MAP.put(97, FA_CALENDAR_PLUS_O);
2227 | ATTR_MAP.put(98, FA_CALENDAR_TIMES_O);
2228 | ATTR_MAP.put(99, FA_CAMERA);
2229 | ATTR_MAP.put(100, FA_CAMERA_RETRO);
2230 | ATTR_MAP.put(101, FA_CAR);
2231 | ATTR_MAP.put(102, FA_CARET_DOWN);
2232 | ATTR_MAP.put(103, FA_CARET_LEFT);
2233 | ATTR_MAP.put(104, FA_CARET_RIGHT);
2234 | ATTR_MAP.put(105, FA_CARET_SQUARE_O_DOWN);
2235 | ATTR_MAP.put(106, FA_CARET_SQUARE_O_LEFT);
2236 | ATTR_MAP.put(107, FA_CARET_SQUARE_O_RIGHT);
2237 | ATTR_MAP.put(108, FA_CARET_SQUARE_O_UP);
2238 | ATTR_MAP.put(109, FA_CARET_UP);
2239 | ATTR_MAP.put(110, FA_CART_ARROW_DOWN);
2240 | ATTR_MAP.put(111, FA_CART_PLUS);
2241 | ATTR_MAP.put(112, FA_CC);
2242 | ATTR_MAP.put(113, FA_CC_AMEX);
2243 | ATTR_MAP.put(114, FA_CC_DINERS_CLUB);
2244 | ATTR_MAP.put(115, FA_CC_DISCOVER);
2245 | ATTR_MAP.put(116, FA_CC_JCB);
2246 | ATTR_MAP.put(117, FA_CC_MASTERCARD);
2247 | ATTR_MAP.put(118, FA_CC_PAYPAL);
2248 | ATTR_MAP.put(119, FA_CC_STRIPE);
2249 | ATTR_MAP.put(120, FA_CC_VISA);
2250 | ATTR_MAP.put(121, FA_CERTIFICATE);
2251 | ATTR_MAP.put(122, FA_CHAIN);
2252 | ATTR_MAP.put(123, FA_CHAIN_BROKEN);
2253 | ATTR_MAP.put(124, FA_CHECK);
2254 | ATTR_MAP.put(125, FA_CHECK_CIRCLE);
2255 | ATTR_MAP.put(126, FA_CHECK_CIRCLE_O);
2256 | ATTR_MAP.put(127, FA_CHECK_SQUARE);
2257 | ATTR_MAP.put(128, FA_CHECK_SQUARE_O);
2258 | ATTR_MAP.put(129, FA_CHEVRON_CIRCLE_DOWN);
2259 | ATTR_MAP.put(130, FA_CHEVRON_CIRCLE_LEFT);
2260 | ATTR_MAP.put(131, FA_CHEVRON_CIRCLE_RIGHT);
2261 | ATTR_MAP.put(132, FA_CHEVRON_CIRCLE_UP);
2262 | ATTR_MAP.put(133, FA_CHEVRON_DOWN);
2263 | ATTR_MAP.put(134, FA_CHEVRON_LEFT);
2264 | ATTR_MAP.put(135, FA_CHEVRON_RIGHT);
2265 | ATTR_MAP.put(136, FA_CHEVRON_UP);
2266 | ATTR_MAP.put(137, FA_CHILD);
2267 | ATTR_MAP.put(138, FA_CHROME);
2268 | ATTR_MAP.put(139, FA_CIRCLE);
2269 | ATTR_MAP.put(140, FA_CIRCLE_O);
2270 | ATTR_MAP.put(141, FA_CIRCLE_O_NOTCH);
2271 | ATTR_MAP.put(142, FA_CIRCLE_THIN);
2272 | ATTR_MAP.put(143, FA_CLIPBOARD);
2273 | ATTR_MAP.put(144, FA_CLOCK_O);
2274 | ATTR_MAP.put(145, FA_CLONE);
2275 | ATTR_MAP.put(146, FA_CLOSE);
2276 | ATTR_MAP.put(147, FA_CLOUD);
2277 | ATTR_MAP.put(148, FA_CLOUD_DOWNLOAD);
2278 | ATTR_MAP.put(149, FA_CLOUD_UPLOAD);
2279 | ATTR_MAP.put(150, FA_CNY);
2280 | ATTR_MAP.put(151, FA_CODE);
2281 | ATTR_MAP.put(152, FA_CODE_FORK);
2282 | ATTR_MAP.put(153, FA_CODEPEN);
2283 | ATTR_MAP.put(154, FA_CODIEPIE);
2284 | ATTR_MAP.put(155, FA_COFFEE);
2285 | ATTR_MAP.put(156, FA_COG);
2286 | ATTR_MAP.put(157, FA_COGS);
2287 | ATTR_MAP.put(158, FA_COLUMNS);
2288 | ATTR_MAP.put(159, FA_COMMENT);
2289 | ATTR_MAP.put(160, FA_COMMENT_O);
2290 | ATTR_MAP.put(161, FA_COMMENTING);
2291 | ATTR_MAP.put(162, FA_COMMENTING_O);
2292 | ATTR_MAP.put(163, FA_COMMENTS);
2293 | ATTR_MAP.put(164, FA_COMMENTS_O);
2294 | ATTR_MAP.put(165, FA_COMPASS);
2295 | ATTR_MAP.put(166, FA_COMPRESS);
2296 | ATTR_MAP.put(167, FA_CONNECTDEVELOP);
2297 | ATTR_MAP.put(168, FA_CONTAO);
2298 | ATTR_MAP.put(169, FA_COPY);
2299 | ATTR_MAP.put(170, FA_COPYRIGHT);
2300 | ATTR_MAP.put(171, FA_CREATIVE_COMMONS);
2301 | ATTR_MAP.put(172, FA_CREDIT_CARD);
2302 | ATTR_MAP.put(173, FA_CREDIT_CARD_ALT);
2303 | ATTR_MAP.put(174, FA_CROP);
2304 | ATTR_MAP.put(175, FA_CROSSHAIRS);
2305 | ATTR_MAP.put(176, FA_CSS3);
2306 | ATTR_MAP.put(177, FA_CUBE);
2307 | ATTR_MAP.put(178, FA_CUBES);
2308 | ATTR_MAP.put(179, FA_CUT);
2309 | ATTR_MAP.put(180, FA_CUTLERY);
2310 | ATTR_MAP.put(181, FA_DASHBOARD);
2311 | ATTR_MAP.put(182, FA_DASHCUBE);
2312 | ATTR_MAP.put(183, FA_DATABASE);
2313 | ATTR_MAP.put(184, FA_DEDENT);
2314 | ATTR_MAP.put(185, FA_DELICIOUS);
2315 | ATTR_MAP.put(186, FA_DESKTOP);
2316 | ATTR_MAP.put(187, FA_DEVIANTART);
2317 | ATTR_MAP.put(188, FA_DIAMOND);
2318 | ATTR_MAP.put(189, FA_DIGG);
2319 | ATTR_MAP.put(190, FA_DOLLAR);
2320 | ATTR_MAP.put(191, FA_DOT_CIRCLE_O);
2321 | ATTR_MAP.put(192, FA_DOWNLOAD);
2322 | ATTR_MAP.put(193, FA_DRIBBBLE);
2323 | ATTR_MAP.put(194, FA_DROPBOX);
2324 | ATTR_MAP.put(195, FA_DRUPAL);
2325 | ATTR_MAP.put(196, FA_EDGE);
2326 | ATTR_MAP.put(197, FA_EDIT);
2327 | ATTR_MAP.put(198, FA_EJECT);
2328 | ATTR_MAP.put(199, FA_ELLIPSIS_H);
2329 | ATTR_MAP.put(200, FA_ELLIPSIS_V);
2330 | ATTR_MAP.put(201, FA_EMPIRE);
2331 | ATTR_MAP.put(202, FA_ENVELOPE);
2332 | ATTR_MAP.put(203, FA_ENVELOPE_O);
2333 | ATTR_MAP.put(204, FA_ENVELOPE_SQUARE);
2334 | ATTR_MAP.put(205, FA_ERASER);
2335 | ATTR_MAP.put(206, FA_EUR);
2336 | ATTR_MAP.put(207, FA_EURO);
2337 | ATTR_MAP.put(208, FA_EXCHANGE);
2338 | ATTR_MAP.put(209, FA_EXCLAMATION);
2339 | ATTR_MAP.put(210, FA_EXCLAMATION_CIRCLE);
2340 | ATTR_MAP.put(211, FA_EXCLAMATION_TRIANGLE);
2341 | ATTR_MAP.put(212, FA_EXPAND);
2342 | ATTR_MAP.put(213, FA_EXPEDITEDSSL);
2343 | ATTR_MAP.put(214, FA_EXTERNAL_LINK);
2344 | ATTR_MAP.put(215, FA_EXTERNAL_LINK_SQUARE);
2345 | ATTR_MAP.put(216, FA_EYE);
2346 | ATTR_MAP.put(217, FA_EYE_SLASH);
2347 | ATTR_MAP.put(218, FA_EYEDROPPER);
2348 | ATTR_MAP.put(219, FA_FACEBOOK);
2349 | ATTR_MAP.put(220, FA_FACEBOOK_F);
2350 | ATTR_MAP.put(221, FA_FACEBOOK_OFFICIAL);
2351 | ATTR_MAP.put(222, FA_FACEBOOK_SQUARE);
2352 | ATTR_MAP.put(223, FA_FAST_BACKWARD);
2353 | ATTR_MAP.put(224, FA_FAST_FORWARD);
2354 | ATTR_MAP.put(225, FA_FAX);
2355 | ATTR_MAP.put(226, FA_FEED);
2356 | ATTR_MAP.put(227, FA_FEMALE);
2357 | ATTR_MAP.put(228, FA_FIGHTER_JET);
2358 | ATTR_MAP.put(229, FA_FILE);
2359 | ATTR_MAP.put(230, FA_FILE_ARCHIVE_O);
2360 | ATTR_MAP.put(231, FA_FILE_AUDIO_O);
2361 | ATTR_MAP.put(232, FA_FILE_CODE_O);
2362 | ATTR_MAP.put(233, FA_FILE_EXCEL_O);
2363 | ATTR_MAP.put(234, FA_FILE_IMAGE_O);
2364 | ATTR_MAP.put(235, FA_FILE_MOVIE_O);
2365 | ATTR_MAP.put(236, FA_FILE_O);
2366 | ATTR_MAP.put(237, FA_FILE_PDF_O);
2367 | ATTR_MAP.put(238, FA_FILE_PHOTO_O);
2368 | ATTR_MAP.put(239, FA_FILE_PICTURE_O);
2369 | ATTR_MAP.put(240, FA_FILE_POWERPOINT_O);
2370 | ATTR_MAP.put(241, FA_FILE_SOUND_O);
2371 | ATTR_MAP.put(242, FA_FILE_TEXT);
2372 | ATTR_MAP.put(243, FA_FILE_TEXT_O);
2373 | ATTR_MAP.put(244, FA_FILE_VIDEO_O);
2374 | ATTR_MAP.put(245, FA_FILE_WORD_O);
2375 | ATTR_MAP.put(246, FA_FILE_ZIP_O);
2376 | ATTR_MAP.put(247, FA_FILES_O);
2377 | ATTR_MAP.put(248, FA_FILM);
2378 | ATTR_MAP.put(249, FA_FILTER);
2379 | ATTR_MAP.put(250, FA_FIRE);
2380 | ATTR_MAP.put(251, FA_FIRE_EXTINGUISHER);
2381 | ATTR_MAP.put(252, FA_FIREFOX);
2382 | ATTR_MAP.put(253, FA_FLAG);
2383 | ATTR_MAP.put(254, FA_FLAG_CHECKERED);
2384 | ATTR_MAP.put(255, FA_FLAG_O);
2385 | ATTR_MAP.put(256, FA_FLASH);
2386 | ATTR_MAP.put(257, FA_FLASK);
2387 | ATTR_MAP.put(258, FA_FLICKR);
2388 | ATTR_MAP.put(259, FA_FLOPPY_O);
2389 | ATTR_MAP.put(260, FA_FOLDER);
2390 | ATTR_MAP.put(261, FA_FOLDER_O);
2391 | ATTR_MAP.put(262, FA_FOLDER_OPEN);
2392 | ATTR_MAP.put(263, FA_FOLDER_OPEN_O);
2393 | ATTR_MAP.put(264, FA_FONT);
2394 | ATTR_MAP.put(265, FA_FONTICONS);
2395 | ATTR_MAP.put(266, FA_FORT_AWESOME);
2396 | ATTR_MAP.put(267, FA_FORUMBEE);
2397 | ATTR_MAP.put(268, FA_FORWARD);
2398 | ATTR_MAP.put(269, FA_FOURSQUARE);
2399 | ATTR_MAP.put(270, FA_FROWN_O);
2400 | ATTR_MAP.put(271, FA_FUTBOL_O);
2401 | ATTR_MAP.put(272, FA_GAMEPAD);
2402 | ATTR_MAP.put(273, FA_GAVEL);
2403 | ATTR_MAP.put(274, FA_GBP);
2404 | ATTR_MAP.put(275, FA_GE);
2405 | ATTR_MAP.put(276, FA_GEAR);
2406 | ATTR_MAP.put(277, FA_GEARS);
2407 | ATTR_MAP.put(278, FA_GENDERLESS);
2408 | ATTR_MAP.put(279, FA_GET_POCKET);
2409 | ATTR_MAP.put(280, FA_GG);
2410 | ATTR_MAP.put(281, FA_GG_CIRCLE);
2411 | ATTR_MAP.put(282, FA_GIFT);
2412 | ATTR_MAP.put(283, FA_GIT);
2413 | ATTR_MAP.put(284, FA_GIT_SQUARE);
2414 | ATTR_MAP.put(285, FA_GITHUB);
2415 | ATTR_MAP.put(286, FA_GITHUB_ALT);
2416 | ATTR_MAP.put(287, FA_GITHUB_SQUARE);
2417 | ATTR_MAP.put(288, FA_GITTIP);
2418 | ATTR_MAP.put(289, FA_GLASS);
2419 | ATTR_MAP.put(290, FA_GLOBE);
2420 | ATTR_MAP.put(291, FA_GOOGLE);
2421 | ATTR_MAP.put(292, FA_GOOGLE_PLUS);
2422 | ATTR_MAP.put(293, FA_GOOGLE_PLUS_SQUARE);
2423 | ATTR_MAP.put(294, FA_GOOGLE_WALLET);
2424 | ATTR_MAP.put(295, FA_GRADUATION_CAP);
2425 | ATTR_MAP.put(296, FA_GRATIPAY);
2426 | ATTR_MAP.put(297, FA_GROUP);
2427 | ATTR_MAP.put(298, FA_H_SQUARE);
2428 | ATTR_MAP.put(299, FA_HACKER_NEWS);
2429 | ATTR_MAP.put(300, FA_HAND_GRAB_O);
2430 | ATTR_MAP.put(301, FA_HAND_LIZARD_O);
2431 | ATTR_MAP.put(302, FA_HAND_O_DOWN);
2432 | ATTR_MAP.put(303, FA_HAND_O_LEFT);
2433 | ATTR_MAP.put(304, FA_HAND_O_RIGHT);
2434 | ATTR_MAP.put(305, FA_HAND_O_UP);
2435 | ATTR_MAP.put(306, FA_HAND_PAPER_O);
2436 | ATTR_MAP.put(307, FA_HAND_PEACE_O);
2437 | ATTR_MAP.put(308, FA_HAND_POINTER_O);
2438 | ATTR_MAP.put(309, FA_HAND_ROCK_O);
2439 | ATTR_MAP.put(310, FA_HAND_SCISSORS_O);
2440 | ATTR_MAP.put(311, FA_HAND_SPOCK_O);
2441 | ATTR_MAP.put(312, FA_HAND_STOP_O);
2442 | ATTR_MAP.put(313, FA_HASHTAG);
2443 | ATTR_MAP.put(314, FA_HDD_O);
2444 | ATTR_MAP.put(315, FA_HEADER);
2445 | ATTR_MAP.put(316, FA_HEADPHONES);
2446 | ATTR_MAP.put(317, FA_HEART);
2447 | ATTR_MAP.put(318, FA_HEART_O);
2448 | ATTR_MAP.put(319, FA_HEARTBEAT);
2449 | ATTR_MAP.put(320, FA_HISTORY);
2450 | ATTR_MAP.put(321, FA_HOME);
2451 | ATTR_MAP.put(322, FA_HOSPITAL_O);
2452 | ATTR_MAP.put(323, FA_HOTEL);
2453 | ATTR_MAP.put(324, FA_HOURGLASS);
2454 | ATTR_MAP.put(325, FA_HOURGLASS_1);
2455 | ATTR_MAP.put(326, FA_HOURGLASS_2);
2456 | ATTR_MAP.put(327, FA_HOURGLASS_3);
2457 | ATTR_MAP.put(328, FA_HOURGLASS_END);
2458 | ATTR_MAP.put(329, FA_HOURGLASS_HALF);
2459 | ATTR_MAP.put(330, FA_HOURGLASS_O);
2460 | ATTR_MAP.put(331, FA_HOURGLASS_START);
2461 | ATTR_MAP.put(332, FA_HOUZZ);
2462 | ATTR_MAP.put(333, FA_HTML5);
2463 | ATTR_MAP.put(334, FA_I_CURSOR);
2464 | ATTR_MAP.put(335, FA_ILS);
2465 | ATTR_MAP.put(336, FA_IMAGE);
2466 | ATTR_MAP.put(337, FA_INBOX);
2467 | ATTR_MAP.put(338, FA_INDENT);
2468 | ATTR_MAP.put(339, FA_INDUSTRY);
2469 | ATTR_MAP.put(340, FA_INFO);
2470 | ATTR_MAP.put(341, FA_INFO_CIRCLE);
2471 | ATTR_MAP.put(342, FA_INR);
2472 | ATTR_MAP.put(343, FA_INSTAGRAM);
2473 | ATTR_MAP.put(344, FA_INSTITUTION);
2474 | ATTR_MAP.put(345, FA_INTERNET_EXPLORER);
2475 | ATTR_MAP.put(346, FA_INTERSEX);
2476 | ATTR_MAP.put(347, FA_IOXHOST);
2477 | ATTR_MAP.put(348, FA_ITALIC);
2478 | ATTR_MAP.put(349, FA_JOOMLA);
2479 | ATTR_MAP.put(350, FA_JPY);
2480 | ATTR_MAP.put(351, FA_JSFIDDLE);
2481 | ATTR_MAP.put(352, FA_KEY);
2482 | ATTR_MAP.put(353, FA_KEYBOARD_O);
2483 | ATTR_MAP.put(354, FA_KRW);
2484 | ATTR_MAP.put(355, FA_LANGUAGE);
2485 | ATTR_MAP.put(356, FA_LAPTOP);
2486 | ATTR_MAP.put(357, FA_LASTFM);
2487 | ATTR_MAP.put(358, FA_LASTFM_SQUARE);
2488 | ATTR_MAP.put(359, FA_LEAF);
2489 | ATTR_MAP.put(360, FA_LEANPUB);
2490 | ATTR_MAP.put(361, FA_LEGAL);
2491 | ATTR_MAP.put(362, FA_LEMON_O);
2492 | ATTR_MAP.put(363, FA_LEVEL_DOWN);
2493 | ATTR_MAP.put(364, FA_LEVEL_UP);
2494 | ATTR_MAP.put(365, FA_LIFE_BOUY);
2495 | ATTR_MAP.put(366, FA_LIFE_BUOY);
2496 | ATTR_MAP.put(367, FA_LIFE_RING);
2497 | ATTR_MAP.put(368, FA_LIFE_SAVER);
2498 | ATTR_MAP.put(369, FA_LIGHTBULB_O);
2499 | ATTR_MAP.put(370, FA_LINE_CHART);
2500 | ATTR_MAP.put(371, FA_LINK);
2501 | ATTR_MAP.put(372, FA_LINKEDIN);
2502 | ATTR_MAP.put(373, FA_LINKEDIN_SQUARE);
2503 | ATTR_MAP.put(374, FA_LINUX);
2504 | ATTR_MAP.put(375, FA_LIST);
2505 | ATTR_MAP.put(376, FA_LIST_ALT);
2506 | ATTR_MAP.put(377, FA_LIST_OL);
2507 | ATTR_MAP.put(378, FA_LIST_UL);
2508 | ATTR_MAP.put(379, FA_LOCATION_ARROW);
2509 | ATTR_MAP.put(380, FA_LOCK);
2510 | ATTR_MAP.put(381, FA_LONG_ARROW_DOWN);
2511 | ATTR_MAP.put(382, FA_LONG_ARROW_LEFT);
2512 | ATTR_MAP.put(383, FA_LONG_ARROW_RIGHT);
2513 | ATTR_MAP.put(384, FA_LONG_ARROW_UP);
2514 | ATTR_MAP.put(385, FA_MAGIC);
2515 | ATTR_MAP.put(386, FA_MAGNET);
2516 | ATTR_MAP.put(387, FA_MAIL_FORWARD);
2517 | ATTR_MAP.put(388, FA_MAIL_REPLY);
2518 | ATTR_MAP.put(389, FA_MAIL_REPLY_ALL);
2519 | ATTR_MAP.put(390, FA_MALE);
2520 | ATTR_MAP.put(391, FA_MAP);
2521 | ATTR_MAP.put(392, FA_MAP_MARKER);
2522 | ATTR_MAP.put(393, FA_MAP_O);
2523 | ATTR_MAP.put(394, FA_MAP_PIN);
2524 | ATTR_MAP.put(395, FA_MAP_SIGNS);
2525 | ATTR_MAP.put(396, FA_MARS);
2526 | ATTR_MAP.put(397, FA_MARS_DOUBLE);
2527 | ATTR_MAP.put(398, FA_MARS_STROKE);
2528 | ATTR_MAP.put(399, FA_MARS_STROKE_H);
2529 | ATTR_MAP.put(400, FA_MARS_STROKE_V);
2530 | ATTR_MAP.put(401, FA_MAXCDN);
2531 | ATTR_MAP.put(402, FA_MEANPATH);
2532 | ATTR_MAP.put(403, FA_MEDIUM);
2533 | ATTR_MAP.put(404, FA_MEDKIT);
2534 | ATTR_MAP.put(405, FA_MEH_O);
2535 | ATTR_MAP.put(406, FA_MERCURY);
2536 | ATTR_MAP.put(407, FA_MICROPHONE);
2537 | ATTR_MAP.put(408, FA_MICROPHONE_SLASH);
2538 | ATTR_MAP.put(409, FA_MINUS);
2539 | ATTR_MAP.put(410, FA_MINUS_CIRCLE);
2540 | ATTR_MAP.put(411, FA_MINUS_SQUARE);
2541 | ATTR_MAP.put(412, FA_MINUS_SQUARE_O);
2542 | ATTR_MAP.put(413, FA_MIXCLOUD);
2543 | ATTR_MAP.put(414, FA_MOBILE);
2544 | ATTR_MAP.put(415, FA_MOBILE_PHONE);
2545 | ATTR_MAP.put(416, FA_MODX);
2546 | ATTR_MAP.put(417, FA_MONEY);
2547 | ATTR_MAP.put(418, FA_MOON_O);
2548 | ATTR_MAP.put(419, FA_MORTAR_BOARD);
2549 | ATTR_MAP.put(420, FA_MOTORCYCLE);
2550 | ATTR_MAP.put(421, FA_MOUSE_POINTER);
2551 | ATTR_MAP.put(422, FA_MUSIC);
2552 | ATTR_MAP.put(423, FA_NAVICON);
2553 | ATTR_MAP.put(424, FA_NEUTER);
2554 | ATTR_MAP.put(425, FA_NEWSPAPER_O);
2555 | ATTR_MAP.put(426, FA_OBJECT_GROUP);
2556 | ATTR_MAP.put(427, FA_OBJECT_UNGROUP);
2557 | ATTR_MAP.put(428, FA_ODNOKLASSNIKI);
2558 | ATTR_MAP.put(429, FA_ODNOKLASSNIKI_SQUARE);
2559 | ATTR_MAP.put(430, FA_OPENCART);
2560 | ATTR_MAP.put(431, FA_OPENID);
2561 | ATTR_MAP.put(432, FA_OPERA);
2562 | ATTR_MAP.put(433, FA_OPTIN_MONSTER);
2563 | ATTR_MAP.put(434, FA_OUTDENT);
2564 | ATTR_MAP.put(435, FA_PAGELINES);
2565 | ATTR_MAP.put(436, FA_PAINT_BRUSH);
2566 | ATTR_MAP.put(437, FA_PAPER_PLANE);
2567 | ATTR_MAP.put(438, FA_PAPER_PLANE_O);
2568 | ATTR_MAP.put(439, FA_PAPERCLIP);
2569 | ATTR_MAP.put(440, FA_PARAGRAPH);
2570 | ATTR_MAP.put(441, FA_PASTE);
2571 | ATTR_MAP.put(442, FA_PAUSE);
2572 | ATTR_MAP.put(443, FA_PAUSE_CIRCLE);
2573 | ATTR_MAP.put(444, FA_PAUSE_CIRCLE_O);
2574 | ATTR_MAP.put(445, FA_PAW);
2575 | ATTR_MAP.put(446, FA_PAYPAL);
2576 | ATTR_MAP.put(447, FA_PENCIL);
2577 | ATTR_MAP.put(448, FA_PENCIL_SQUARE);
2578 | ATTR_MAP.put(449, FA_PENCIL_SQUARE_O);
2579 | ATTR_MAP.put(450, FA_PERCENT);
2580 | ATTR_MAP.put(451, FA_PHONE);
2581 | ATTR_MAP.put(452, FA_PHONE_SQUARE);
2582 | ATTR_MAP.put(453, FA_PHOTO);
2583 | ATTR_MAP.put(454, FA_PICTURE_O);
2584 | ATTR_MAP.put(455, FA_PIE_CHART);
2585 | ATTR_MAP.put(456, FA_PIED_PIPER);
2586 | ATTR_MAP.put(457, FA_PIED_PIPER_ALT);
2587 | ATTR_MAP.put(458, FA_PINTEREST);
2588 | ATTR_MAP.put(459, FA_PINTEREST_P);
2589 | ATTR_MAP.put(460, FA_PINTEREST_SQUARE);
2590 | ATTR_MAP.put(461, FA_PLANE);
2591 | ATTR_MAP.put(462, FA_PLAY);
2592 | ATTR_MAP.put(463, FA_PLAY_CIRCLE);
2593 | ATTR_MAP.put(464, FA_PLAY_CIRCLE_O);
2594 | ATTR_MAP.put(465, FA_PLUG);
2595 | ATTR_MAP.put(466, FA_PLUS);
2596 | ATTR_MAP.put(467, FA_PLUS_CIRCLE);
2597 | ATTR_MAP.put(468, FA_PLUS_SQUARE);
2598 | ATTR_MAP.put(469, FA_PLUS_SQUARE_O);
2599 | ATTR_MAP.put(470, FA_POWER_OFF);
2600 | ATTR_MAP.put(471, FA_PRINT);
2601 | ATTR_MAP.put(472, FA_PRODUCT_HUNT);
2602 | ATTR_MAP.put(473, FA_PUZZLE_PIECE);
2603 | ATTR_MAP.put(474, FA_QQ);
2604 | ATTR_MAP.put(475, FA_QRCODE);
2605 | ATTR_MAP.put(476, FA_QUESTION);
2606 | ATTR_MAP.put(477, FA_QUESTION_CIRCLE);
2607 | ATTR_MAP.put(478, FA_QUOTE_LEFT);
2608 | ATTR_MAP.put(479, FA_QUOTE_RIGHT);
2609 | ATTR_MAP.put(480, FA_RA);
2610 | ATTR_MAP.put(481, FA_RANDOM);
2611 | ATTR_MAP.put(482, FA_REBEL);
2612 | ATTR_MAP.put(483, FA_RECYCLE);
2613 | ATTR_MAP.put(484, FA_REDDIT);
2614 | ATTR_MAP.put(485, FA_REDDIT_ALIEN);
2615 | ATTR_MAP.put(486, FA_REDDIT_SQUARE);
2616 | ATTR_MAP.put(487, FA_REFRESH);
2617 | ATTR_MAP.put(488, FA_REGISTERED);
2618 | ATTR_MAP.put(489, FA_REMOVE);
2619 | ATTR_MAP.put(490, FA_RENREN);
2620 | ATTR_MAP.put(491, FA_REORDER);
2621 | ATTR_MAP.put(492, FA_REPEAT);
2622 | ATTR_MAP.put(493, FA_REPLY);
2623 | ATTR_MAP.put(494, FA_REPLY_ALL);
2624 | ATTR_MAP.put(495, FA_RETWEET);
2625 | ATTR_MAP.put(496, FA_RMB);
2626 | ATTR_MAP.put(497, FA_ROAD);
2627 | ATTR_MAP.put(498, FA_ROCKET);
2628 | ATTR_MAP.put(499, FA_ROTATE_LEFT);
2629 | ATTR_MAP.put(500, FA_ROTATE_RIGHT);
2630 | ATTR_MAP.put(501, FA_ROUBLE);
2631 | ATTR_MAP.put(502, FA_RSS);
2632 | ATTR_MAP.put(503, FA_RSS_SQUARE);
2633 | ATTR_MAP.put(504, FA_RUB);
2634 | ATTR_MAP.put(505, FA_RUBLE);
2635 | ATTR_MAP.put(506, FA_RUPEE);
2636 | ATTR_MAP.put(507, FA_SAFARI);
2637 | ATTR_MAP.put(508, FA_SAVE);
2638 | ATTR_MAP.put(509, FA_SCISSORS);
2639 | ATTR_MAP.put(510, FA_SCRIBD);
2640 | ATTR_MAP.put(511, FA_SEARCH);
2641 | ATTR_MAP.put(512, FA_SEARCH_MINUS);
2642 | ATTR_MAP.put(513, FA_SEARCH_PLUS);
2643 | ATTR_MAP.put(514, FA_SELLSY);
2644 | ATTR_MAP.put(515, FA_SEND);
2645 | ATTR_MAP.put(516, FA_SEND_O);
2646 | ATTR_MAP.put(517, FA_SERVER);
2647 | ATTR_MAP.put(518, FA_SHARE);
2648 | ATTR_MAP.put(519, FA_SHARE_ALT);
2649 | ATTR_MAP.put(520, FA_SHARE_ALT_SQUARE);
2650 | ATTR_MAP.put(521, FA_SHARE_SQUARE);
2651 | ATTR_MAP.put(522, FA_SHARE_SQUARE_O);
2652 | ATTR_MAP.put(523, FA_SHEKEL);
2653 | ATTR_MAP.put(524, FA_SHEQEL);
2654 | ATTR_MAP.put(525, FA_SHIELD);
2655 | ATTR_MAP.put(526, FA_SHIP);
2656 | ATTR_MAP.put(527, FA_SHIRTSINBULK);
2657 | ATTR_MAP.put(528, FA_SHOPPING_BAG);
2658 | ATTR_MAP.put(529, FA_SHOPPING_BASKET);
2659 | ATTR_MAP.put(530, FA_SHOPPING_CART);
2660 | ATTR_MAP.put(531, FA_SIGN_IN);
2661 | ATTR_MAP.put(532, FA_SIGN_OUT);
2662 | ATTR_MAP.put(533, FA_SIGNAL);
2663 | ATTR_MAP.put(534, FA_SIMPLYBUILT);
2664 | ATTR_MAP.put(535, FA_SITEMAP);
2665 | ATTR_MAP.put(536, FA_SKYATLAS);
2666 | ATTR_MAP.put(537, FA_SKYPE);
2667 | ATTR_MAP.put(538, FA_SLACK);
2668 | ATTR_MAP.put(539, FA_SLIDERS);
2669 | ATTR_MAP.put(540, FA_SLIDESHARE);
2670 | ATTR_MAP.put(541, FA_SMILE_O);
2671 | ATTR_MAP.put(542, FA_SOCCER_BALL_O);
2672 | ATTR_MAP.put(543, FA_SORT);
2673 | ATTR_MAP.put(544, FA_SORT_ALPHA_ASC);
2674 | ATTR_MAP.put(545, FA_SORT_ALPHA_DESC);
2675 | ATTR_MAP.put(546, FA_SORT_AMOUNT_ASC);
2676 | ATTR_MAP.put(547, FA_SORT_AMOUNT_DESC);
2677 | ATTR_MAP.put(548, FA_SORT_ASC);
2678 | ATTR_MAP.put(549, FA_SORT_DESC);
2679 | ATTR_MAP.put(550, FA_SORT_DOWN);
2680 | ATTR_MAP.put(551, FA_SORT_NUMERIC_ASC);
2681 | ATTR_MAP.put(552, FA_SORT_NUMERIC_DESC);
2682 | ATTR_MAP.put(553, FA_SORT_UP);
2683 | ATTR_MAP.put(554, FA_SOUNDCLOUD);
2684 | ATTR_MAP.put(555, FA_SPACE_SHUTTLE);
2685 | ATTR_MAP.put(556, FA_SPINNER);
2686 | ATTR_MAP.put(557, FA_SPOON);
2687 | ATTR_MAP.put(558, FA_SPOTIFY);
2688 | ATTR_MAP.put(559, FA_SQUARE);
2689 | ATTR_MAP.put(560, FA_SQUARE_O);
2690 | ATTR_MAP.put(561, FA_STACK_EXCHANGE);
2691 | ATTR_MAP.put(562, FA_STACK_OVERFLOW);
2692 | ATTR_MAP.put(563, FA_STAR);
2693 | ATTR_MAP.put(564, FA_STAR_HALF);
2694 | ATTR_MAP.put(565, FA_STAR_HALF_EMPTY);
2695 | ATTR_MAP.put(566, FA_STAR_HALF_FULL);
2696 | ATTR_MAP.put(567, FA_STAR_HALF_O);
2697 | ATTR_MAP.put(568, FA_STAR_O);
2698 | ATTR_MAP.put(569, FA_STEAM);
2699 | ATTR_MAP.put(570, FA_STEAM_SQUARE);
2700 | ATTR_MAP.put(571, FA_STEP_BACKWARD);
2701 | ATTR_MAP.put(572, FA_STEP_FORWARD);
2702 | ATTR_MAP.put(573, FA_STETHOSCOPE);
2703 | ATTR_MAP.put(574, FA_STICKY_NOTE);
2704 | ATTR_MAP.put(575, FA_STICKY_NOTE_O);
2705 | ATTR_MAP.put(576, FA_STOP);
2706 | ATTR_MAP.put(577, FA_STOP_CIRCLE);
2707 | ATTR_MAP.put(578, FA_STOP_CIRCLE_O);
2708 | ATTR_MAP.put(579, FA_STREET_VIEW);
2709 | ATTR_MAP.put(580, FA_STRIKETHROUGH);
2710 | ATTR_MAP.put(581, FA_STUMBLEUPON);
2711 | ATTR_MAP.put(582, FA_STUMBLEUPON_CIRCLE);
2712 | ATTR_MAP.put(583, FA_SUBSCRIPT);
2713 | ATTR_MAP.put(584, FA_SUBWAY);
2714 | ATTR_MAP.put(585, FA_SUITCASE);
2715 | ATTR_MAP.put(586, FA_SUN_O);
2716 | ATTR_MAP.put(587, FA_SUPERSCRIPT);
2717 | ATTR_MAP.put(588, FA_SUPPORT);
2718 | ATTR_MAP.put(589, FA_TABLE);
2719 | ATTR_MAP.put(590, FA_TABLET);
2720 | ATTR_MAP.put(591, FA_TACHOMETER);
2721 | ATTR_MAP.put(592, FA_TAG);
2722 | ATTR_MAP.put(593, FA_TAGS);
2723 | ATTR_MAP.put(594, FA_TASKS);
2724 | ATTR_MAP.put(595, FA_TAXI);
2725 | ATTR_MAP.put(596, FA_TELEVISION);
2726 | ATTR_MAP.put(597, FA_TENCENT_WEIBO);
2727 | ATTR_MAP.put(598, FA_TERMINAL);
2728 | ATTR_MAP.put(599, FA_TEXT_HEIGHT);
2729 | ATTR_MAP.put(600, FA_TEXT_WIDTH);
2730 | ATTR_MAP.put(601, FA_TH);
2731 | ATTR_MAP.put(602, FA_TH_LARGE);
2732 | ATTR_MAP.put(603, FA_TH_LIST);
2733 | ATTR_MAP.put(604, FA_THUMB_TACK);
2734 | ATTR_MAP.put(605, FA_THUMBS_DOWN);
2735 | ATTR_MAP.put(606, FA_THUMBS_O_DOWN);
2736 | ATTR_MAP.put(607, FA_THUMBS_O_UP);
2737 | ATTR_MAP.put(608, FA_THUMBS_UP);
2738 | ATTR_MAP.put(609, FA_TICKET);
2739 | ATTR_MAP.put(610, FA_TIMES);
2740 | ATTR_MAP.put(611, FA_TIMES_CIRCLE);
2741 | ATTR_MAP.put(612, FA_TIMES_CIRCLE_O);
2742 | ATTR_MAP.put(613, FA_TINT);
2743 | ATTR_MAP.put(614, FA_TOGGLE_DOWN);
2744 | ATTR_MAP.put(615, FA_TOGGLE_LEFT);
2745 | ATTR_MAP.put(616, FA_TOGGLE_OFF);
2746 | ATTR_MAP.put(617, FA_TOGGLE_ON);
2747 | ATTR_MAP.put(618, FA_TOGGLE_RIGHT);
2748 | ATTR_MAP.put(619, FA_TOGGLE_UP);
2749 | ATTR_MAP.put(620, FA_TRADEMARK);
2750 | ATTR_MAP.put(621, FA_TRAIN);
2751 | ATTR_MAP.put(622, FA_TRANSGENDER);
2752 | ATTR_MAP.put(623, FA_TRANSGENDER_ALT);
2753 | ATTR_MAP.put(624, FA_TRASH);
2754 | ATTR_MAP.put(625, FA_TRASH_O);
2755 | ATTR_MAP.put(626, FA_TREE);
2756 | ATTR_MAP.put(627, FA_TRELLO);
2757 | ATTR_MAP.put(628, FA_TRIPADVISOR);
2758 | ATTR_MAP.put(629, FA_TROPHY);
2759 | ATTR_MAP.put(630, FA_TRUCK);
2760 | ATTR_MAP.put(631, FA_TRY);
2761 | ATTR_MAP.put(632, FA_TTY);
2762 | ATTR_MAP.put(633, FA_TUMBLR);
2763 | ATTR_MAP.put(634, FA_TUMBLR_SQUARE);
2764 | ATTR_MAP.put(635, FA_TURKISH_LIRA);
2765 | ATTR_MAP.put(636, FA_TV);
2766 | ATTR_MAP.put(637, FA_TWITCH);
2767 | ATTR_MAP.put(638, FA_TWITTER);
2768 | ATTR_MAP.put(639, FA_TWITTER_SQUARE);
2769 | ATTR_MAP.put(640, FA_UMBRELLA);
2770 | ATTR_MAP.put(641, FA_UNDERLINE);
2771 | ATTR_MAP.put(642, FA_UNDO);
2772 | ATTR_MAP.put(643, FA_UNIVERSITY);
2773 | ATTR_MAP.put(644, FA_UNLINK);
2774 | ATTR_MAP.put(645, FA_UNLOCK);
2775 | ATTR_MAP.put(646, FA_UNLOCK_ALT);
2776 | ATTR_MAP.put(647, FA_UNSORTED);
2777 | ATTR_MAP.put(648, FA_UPLOAD);
2778 | ATTR_MAP.put(649, FA_USB);
2779 | ATTR_MAP.put(650, FA_USD);
2780 | ATTR_MAP.put(651, FA_USER);
2781 | ATTR_MAP.put(652, FA_USER_MD);
2782 | ATTR_MAP.put(653, FA_USER_PLUS);
2783 | ATTR_MAP.put(654, FA_USER_SECRET);
2784 | ATTR_MAP.put(655, FA_USER_TIMES);
2785 | ATTR_MAP.put(656, FA_USERS);
2786 | ATTR_MAP.put(657, FA_VENUS);
2787 | ATTR_MAP.put(658, FA_VENUS_DOUBLE);
2788 | ATTR_MAP.put(659, FA_VENUS_MARS);
2789 | ATTR_MAP.put(660, FA_VIACOIN);
2790 | ATTR_MAP.put(661, FA_VIDEO_CAMERA);
2791 | ATTR_MAP.put(662, FA_VIMEO);
2792 | ATTR_MAP.put(663, FA_VIMEO_SQUARE);
2793 | ATTR_MAP.put(664, FA_VINE);
2794 | ATTR_MAP.put(665, FA_VK);
2795 | ATTR_MAP.put(666, FA_VOLUME_DOWN);
2796 | ATTR_MAP.put(667, FA_VOLUME_OFF);
2797 | ATTR_MAP.put(668, FA_VOLUME_UP);
2798 | ATTR_MAP.put(669, FA_WARNING);
2799 | ATTR_MAP.put(670, FA_WECHAT);
2800 | ATTR_MAP.put(671, FA_WEIBO);
2801 | ATTR_MAP.put(672, FA_WEIXIN);
2802 | ATTR_MAP.put(673, FA_WHATSAPP);
2803 | ATTR_MAP.put(674, FA_WHEELCHAIR);
2804 | ATTR_MAP.put(675, FA_WIFI);
2805 | ATTR_MAP.put(676, FA_WIKIPEDIA_W);
2806 | ATTR_MAP.put(677, FA_WINDOWS);
2807 | ATTR_MAP.put(678, FA_WON);
2808 | ATTR_MAP.put(679, FA_WORDPRESS);
2809 | ATTR_MAP.put(680, FA_WRENCH);
2810 | ATTR_MAP.put(681, FA_XING);
2811 | ATTR_MAP.put(682, FA_XING_SQUARE);
2812 | ATTR_MAP.put(683, FA_Y_COMBINATOR);
2813 | ATTR_MAP.put(684, FA_Y_COMBINATOR_SQUARE);
2814 | ATTR_MAP.put(685, FA_YAHOO);
2815 | ATTR_MAP.put(686, FA_YC);
2816 | ATTR_MAP.put(687, FA_YC_SQUARE);
2817 | ATTR_MAP.put(688, FA_YELP);
2818 | ATTR_MAP.put(689, FA_YEN);
2819 | ATTR_MAP.put(690, FA_YOUTUBE);
2820 | ATTR_MAP.put(691, FA_YOUTUBE_PLAY);
2821 | ATTR_MAP.put(692, FA_YOUTUBE_SQUARE);
2822 | }
2823 |
2824 | }
2825 |
--------------------------------------------------------------------------------
/library/src/main/java/info/hoang8f/android/segmented/font/IconSet.java:
--------------------------------------------------------------------------------
1 | package info.hoang8f.android.segmented.font;
2 |
3 | /**
4 | * Specifies the icon codes for a Typeface, and provides the filename of the font so that it can be
5 | * initialised
6 | */
7 | public interface IconSet {
8 |
9 | /**
10 | * Returns the unicode character for the current Font Icon.
11 | *
12 | * @return the unicode character
13 | */
14 | CharSequence unicodeForKey(CharSequence key);
15 |
16 |
17 | /**
18 | * Returns the icon code for the current Font Icon.
19 | *
20 | * @return the icon code
21 | */
22 | CharSequence iconCodeForAttrIndex(int index);
23 |
24 | /**
25 | * Specifies the location that the font file resides in, starting from the assets directory
26 | * e.g."fontawesome-webfont.ttf"
27 | *
28 | * @return the font path
29 | */
30 | CharSequence fontPath();
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/library/src/main/java/info/hoang8f/android/segmented/utils/BootstrapText.java:
--------------------------------------------------------------------------------
1 | package info.hoang8f.android.segmented.utils;
2 |
3 | import android.content.Context;
4 | import android.text.SpannableString;
5 | import android.text.Spanned;
6 |
7 | import java.io.Serializable;
8 | import java.util.HashMap;
9 | import java.util.Map;
10 |
11 | import info.hoang8f.android.segmented.font.AwesomeTypefaceSpan;
12 | import info.hoang8f.android.segmented.font.FontAwesome;
13 | import info.hoang8f.android.segmented.font.IconSet;
14 |
15 | /**
16 | * Bootstrap Text provides a Builder class, which allows convenient construction of SpannableStrings.
17 | * Currently regular text, FontAwesome icons, and Typicons can be added.
18 | */
19 | public class BootstrapText extends SpannableString implements Serializable {
20 |
21 | private BootstrapText(CharSequence source) {
22 | super(source);
23 | }
24 |
25 | /**
26 | * This class should be used to construct BootstrapText instances. Text is appended to itself
27 | * in the order in which it was added.
28 | */
29 | public static class Builder {
30 |
31 | private final StringBuilder sb;
32 | private final Context context;
33 | private final boolean editMode;
34 | private final Map fontIndicesMap;
35 |
36 | public Builder(Context context) {
37 | fontIndicesMap = new HashMap<>();
38 | sb = new StringBuilder();
39 | this.context = context.getApplicationContext();
40 | this.editMode = false;
41 | }
42 |
43 | public Builder(Context context, boolean editMode) {
44 | fontIndicesMap = new HashMap<>();
45 | sb = new StringBuilder();
46 | this.context = context.getApplicationContext();
47 | this.editMode = editMode;
48 | }
49 |
50 | /**
51 | * Appends a regular piece of text to the BootstrapText under construction.
52 | *
53 | * @param text a regular piece of text
54 | * @return the updated builder instance
55 | */
56 | public Builder addText(CharSequence text) {
57 | sb.append(text);
58 | return this;
59 | }
60 |
61 | /**
62 | * Appends a FontAwesomeIcon to the BootstrapText under construction
63 | *
64 | * @return the updated builder instance
65 | */
66 | public Builder addFontAwesomeIcon(@FontAwesome.Icon CharSequence iconCode) {
67 | IconSet iconSet = TypefaceProvider.retrieveRegisteredIconSet(FontAwesome.FONT_PATH, editMode);
68 | sb.append(iconSet.unicodeForKey(iconCode.toString().replaceAll("\\-", "_")));
69 | fontIndicesMap.put(sb.length(), iconSet);
70 | return this;
71 | }
72 |
73 | /**
74 | * Appends a font icon to the BootstrapText under construction
75 | *
76 | * @param iconSet a font icon
77 | * @return the updated builder instance
78 | */
79 | public Builder addIcon(CharSequence iconCode, IconSet iconSet) {
80 | sb.append(iconSet.unicodeForKey(iconCode.toString().replaceAll("\\-", "_")));
81 | fontIndicesMap.put(sb.length(), iconSet);
82 | return this;
83 | }
84 |
85 | /**
86 | * @return a new instance of BootstrapText, constructed according to Builder arguments.
87 | */
88 | public BootstrapText build() {
89 | BootstrapText bootstrapText = new BootstrapText(sb.toString());
90 |
91 | for (Map.Entry entry : fontIndicesMap.entrySet()) {
92 | int index = entry.getKey();
93 |
94 | AwesomeTypefaceSpan span = new AwesomeTypefaceSpan(context, entry.getValue());
95 | bootstrapText.setSpan(span, index - 1, index, Spanned.SPAN_INCLUSIVE_INCLUSIVE);
96 | }
97 | return bootstrapText;
98 | }
99 | }
100 |
101 | }
--------------------------------------------------------------------------------
/library/src/main/java/info/hoang8f/android/segmented/utils/IconResolver.java:
--------------------------------------------------------------------------------
1 | package info.hoang8f.android.segmented.utils;
2 |
3 | import android.content.Context;
4 |
5 | import info.hoang8f.android.segmented.font.FontAwesome;
6 | import info.hoang8f.android.segmented.font.IconSet;
7 |
8 |
9 | /**
10 | * Resolves markdown strings using FA codes and produces BootstrapText instances.
11 | */
12 | public class IconResolver {
13 |
14 | private static final String REGEX_FONT_AWESOME = "(fa_|fa-)[a-z_0-9]+";
15 | /**
16 | * Resolves markdown to produce a BootstrapText instance. e.g. "{fa_android}" would be replaced
17 | * with the appropriate FontAwesome character and a SpannableString producec.
18 | *
19 | * @param context the current context
20 | * @param markdown the markdown string
21 | * @param editMode - whether the view requesting the icon set is displayed in the preview editor
22 | * @return a constructed BootstrapText
23 | */
24 | public static BootstrapText resolveMarkdown(Context context, String markdown, boolean editMode) {
25 | if (markdown == null) {
26 | return null;
27 | }
28 | else { // detect {fa_*} and split into spannable, ignore escaped chars
29 | BootstrapText.Builder builder = new BootstrapText.Builder(context, editMode);
30 |
31 | int lastAddedIndex = 0;
32 | int startIndex = -1;
33 | int endIndex = -1;
34 |
35 | for (int i = 0; i < markdown.length(); i++) {
36 | char c = markdown.charAt(i);
37 |
38 | if (c == '\\') { // escape sequence, ignore next char
39 | i += 2;
40 | continue;
41 | }
42 |
43 | if (c == '{') {
44 | startIndex = i;
45 | }
46 | else if (c == '}') {
47 | endIndex = i;
48 | }
49 |
50 | if (startIndex != -1 && endIndex != -1) { // recognised markdown string
51 |
52 | if (startIndex >= 0 && endIndex < markdown.length()) {
53 | String iconCode = markdown.substring(startIndex + 1, endIndex).replaceAll("\\-", "_");
54 | builder.addText(markdown.substring(lastAddedIndex, startIndex));
55 |
56 | if (iconCode.matches(REGEX_FONT_AWESOME)) { // text is FontAwesome code
57 | if (editMode) {
58 | builder.addText("?");
59 | }
60 | else {
61 | builder.addIcon(iconCode, TypefaceProvider.retrieveRegisteredIconSet(FontAwesome.FONT_PATH, false));
62 | }
63 | }
64 | else {
65 | if (editMode) {
66 | builder.addText("?");
67 | }
68 | else {
69 | builder.addIcon(iconCode, resolveIconSet(iconCode));
70 | }
71 | }
72 | lastAddedIndex = endIndex + 1;
73 | }
74 | startIndex = -1;
75 | endIndex = -1;
76 | }
77 | }
78 | return builder.addText(markdown.substring(lastAddedIndex, markdown.length())).build();
79 | }
80 | }
81 |
82 | /**
83 | * Searches for the unicode character value for the Font Icon Code. This method searches all
84 | * active FontIcons in the application.
85 | *
86 | * @param iconCode the font icon code
87 | * @return the unicode character matching the icon, or null if none matches
88 | */
89 | private static IconSet resolveIconSet(String iconCode) {
90 | CharSequence unicode;
91 |
92 | for (IconSet set : TypefaceProvider.getRegisteredIconSets()) {
93 |
94 | if (set.fontPath().equals(FontAwesome.FONT_PATH)) {
95 | continue; // already checked previously, ignore
96 | }
97 |
98 | unicode = set.unicodeForKey(iconCode);
99 |
100 | if (unicode != null) {
101 | return set;
102 | }
103 | }
104 |
105 | String message = String.format("Could not find FontIcon value for '%s', " +
106 | "please ensure that it is mapped to a valid font", iconCode);
107 |
108 | throw new IllegalArgumentException(message);
109 | }
110 |
111 | }
112 |
--------------------------------------------------------------------------------
/library/src/main/java/info/hoang8f/android/segmented/utils/TypefaceProvider.java:
--------------------------------------------------------------------------------
1 | package info.hoang8f.android.segmented.utils;
2 |
3 | import android.content.Context;
4 | import android.graphics.Typeface;
5 |
6 | import java.util.Collection;
7 | import java.util.HashMap;
8 | import java.util.Map;
9 |
10 | import info.hoang8f.android.segmented.font.FontAwesome;
11 | import info.hoang8f.android.segmented.font.IconSet;
12 |
13 | /**
14 | * Holds static instances of Typefaces, and IconSets, allowing views to use them across the application
15 | * without expensive initialisation.
16 | */
17 | public class TypefaceProvider {
18 |
19 | private final static Map TYPEFACE_MAP = new HashMap<>();
20 | private final static Map REGISTERED_ICON_SETS = new HashMap<>();
21 |
22 | /**
23 | * Returns a reference to the requested typeface, creating a new instance if none already exists
24 | *
25 | * @param context the current context
26 | * @param iconSet the icon typeface
27 | * @return a reference to the typeface instance
28 | */
29 | public static Typeface getTypeface(Context context, IconSet iconSet) {
30 | String path = iconSet.fontPath().toString();
31 |
32 | if (TYPEFACE_MAP.get(path) == null) {
33 | final Typeface font = Typeface.createFromAsset(context.getAssets(), path);
34 | TYPEFACE_MAP.put(path, font);
35 | }
36 | return TYPEFACE_MAP.get(path);
37 | }
38 |
39 | /**
40 | * Registers instances of the Default IconSets so that they are available throughout the whole
41 | * application. Currently the default icon sets include FontAwesome and Typicon.
42 | */
43 | public static void registerDefaultIconSets() {
44 | final FontAwesome fontAwesome = new FontAwesome();
45 |
46 | REGISTERED_ICON_SETS.put(fontAwesome.fontPath(), fontAwesome);
47 | }
48 |
49 | /**
50 | * Registers a custom IconSet, so that it is available for use throughout the whole application.
51 | *
52 | * @param iconSet a custom IconSet
53 | */
54 | public static void registerCustomIconSet(IconSet iconSet) {
55 | REGISTERED_ICON_SETS.put(iconSet.fontPath(), iconSet);
56 | }
57 |
58 | /**
59 | * Retrieves a registered IconSet whose font can be found in the asset directory at the given path
60 | *
61 | * @param fontPath the given path
62 | * @param editMode - whether the view requesting the icon set is displayed in the preview editor
63 | * @return the registered IconSet instance
64 | */
65 | public static IconSet retrieveRegisteredIconSet(String fontPath, boolean editMode) {
66 | final IconSet iconSet = REGISTERED_ICON_SETS.get(fontPath);
67 |
68 | if (iconSet == null && !editMode) {
69 | throw new RuntimeException(String.format("Font '%s' not properly registered", fontPath));
70 | }
71 | return iconSet;
72 | }
73 |
74 | /**
75 | * Retrieves a collection of all registered IconSets in the application
76 | *
77 | * @return a collection of registered IconSets.
78 | */
79 | public static Collection getRegisteredIconSets() {
80 | return REGISTERED_ICON_SETS.values();
81 | }
82 |
83 | }
84 |
--------------------------------------------------------------------------------
/library/src/main/res/drawable/button_text_color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/library/src/main/res/drawable/radio_checked.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
10 |
--------------------------------------------------------------------------------
/library/src/main/res/drawable/radio_unchecked.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
10 |
--------------------------------------------------------------------------------
/library/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/library/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #ff33b5e5
4 | #e0e0e0
5 |
--------------------------------------------------------------------------------
/library/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 5dp
4 | 1dp
5 |
6 |
--------------------------------------------------------------------------------
/library/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Android Segmented
5 |
6 |
7 |
--------------------------------------------------------------------------------
/library/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/maven_push.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'maven'
2 | apply plugin: 'signing'
3 |
4 | def sonatypeRepositoryUrl
5 | if (isReleaseBuild()) {
6 | println 'RELEASE BUILD'
7 | sonatypeRepositoryUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
8 | } else {
9 | println 'DEBUG BUILD'
10 | sonatypeRepositoryUrl = "https://oss.sonatype.org/content/repositories/snapshots/"
11 | }
12 |
13 | afterEvaluate { project ->
14 | uploadArchives {
15 | repositories {
16 | mavenDeployer {
17 | beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
18 |
19 | pom.artifactId = POM_ARTIFACT_ID
20 |
21 | repository(url: sonatypeRepositoryUrl) {
22 | authentication(userName: nexusUsername, password: nexusPassword)
23 | }
24 |
25 | pom.project {
26 | name POM_NAME
27 | packaging POM_PACKAGING
28 | description POM_DESCRIPTION
29 | url POM_URL
30 |
31 | scm {
32 | url POM_SCM_URL
33 | connection POM_SCM_CONNECTION
34 | developerConnection POM_SCM_DEV_CONNECTION
35 | }
36 |
37 | licenses {
38 | license {
39 | name POM_LICENCE_NAME
40 | url POM_LICENCE_URL
41 | distribution POM_LICENCE_DIST
42 | }
43 | }
44 |
45 | developers {
46 | developer {
47 | id POM_DEVELOPER_ID
48 | name POM_DEVELOPER_NAME
49 | }
50 | }
51 | }
52 | }
53 | }
54 | }
55 |
56 | signing {
57 | required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") }
58 | sign configurations.archives
59 | }
60 |
61 | task androidJavadocs(type: Javadoc) {
62 | // source = android.sourceSets.main.allJava
63 | }
64 |
65 | task androidJavadocsJar(type: Jar) {
66 | classifier = 'javadoc'
67 | //basename = artifact_id
68 | from androidJavadocs.destinationDir
69 | }
70 |
71 | task androidSourcesJar(type: Jar) {
72 | classifier = 'sources'
73 | //basename = artifact_id
74 | // from android.sourceSets.main.allSource
75 | }
76 |
77 | artifacts {
78 | //archives packageReleaseJar
79 | archives androidSourcesJar
80 | archives androidJavadocsJar
81 | }
82 | }
--------------------------------------------------------------------------------
/screenshot/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kaopiz/android-segmented-control/519e553c84a351929d4ef2fdf31854e3a36735b9/screenshot/screenshot.png
--------------------------------------------------------------------------------
/screenshot/screenshot2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kaopiz/android-segmented-control/519e553c84a351929d4ef2fdf31854e3a36735b9/screenshot/screenshot2.png
--------------------------------------------------------------------------------
/screenshot/screenshot3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kaopiz/android-segmented-control/519e553c84a351929d4ef2fdf31854e3a36735b9/screenshot/screenshot3.png
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':demo', ':library'
2 |
--------------------------------------------------------------------------------