Skip to content

Commit

Permalink
First commit
Browse files Browse the repository at this point in the history
  • Loading branch information
DayS committed Sep 3, 2013
0 parents commit 8437870
Show file tree
Hide file tree
Showing 7 changed files with 443 additions and 0 deletions.
44 changes: 44 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# OS junk files
.DS_Store
[Tt]humbs.db

# Temp files
*~

#Android generated
bin
gen
lint.xml

#Eclipse
.project
.classpath
.settings
.checkstyle
.apt_generated

#IntelliJ IDEA
.idea
*.iml
*.ipr
*.iws
classes
out
gen-external-apklibs

#Maven
target
release.properties
pom.xml.*

#Gradle
.gradle
build

#Ant
build.xml
ant.properties
local.properties
proguard.cfg
proguard-project.txt

12 changes: 12 additions & 0 deletions AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="fr.dvilleneuve.android"
android:versionCode="1"
android:versionName="1.0">

<uses-sdk
android:minSdkVersion="10"
android:maxSdkVersion="18"
android:targetSdkVersion="18"/>

</manifest>
84 changes: 84 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>fr.dvilleneuve.android</groupId>
<artifactId>enhanced-edittext</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>apklib</packaging>
<name>EnhancedEditText</name>

<developers>
<developer>
<id>DayS</id>
<name>Damien Villeneuve</name>
<email>contact@dvilleneuve.fr</email>
<url>http://dvilleneuve.fr</url>
<roles>
<role>developer</role>
</roles>
</developer>
</developers>

<issueManagement>
<system>GitHub Issues</system>
<url>https://github.com/DayS/EnhancedEditText/issues</url>
</issueManagement>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.6</java.version>

<android.version>4.3_r1</android.version>
<android.platform>18</android.platform>
<iconify.version>1.0.1</iconify.version>

<!-- Plugins -->
<android-maven.version>3.6.1</android-maven.version>
</properties>

<dependencies>
<dependency>
<groupId>android</groupId>
<artifactId>android</artifactId>
<version>${android.version}</version>
<scope>provided</scope>
</dependency>

<!-- Iconify -->
<dependency>
<groupId>com.joanzapata.android</groupId>
<artifactId>android-iconify</artifactId>
<version>${iconify.version}</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>

<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>${android-maven.version}</version>
<configuration>
<sdk>
<platform>${android.platform}</platform>
</sdk>
<undeployBeforeDeploy>true</undeployBeforeDeploy>
</configuration>
<extensions>true</extensions>
</plugin>
</plugins>
</build>
</project>
15 changes: 15 additions & 0 deletions project.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
# "ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

android.library=true
# Project target.
target=android-18
11 changes: 11 additions & 0 deletions res/values/attrs.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>

<declare-styleable name="EnhancedEditText">
<attr name="prefixIcon" format="string"/>
<attr name="prefixText" format="reference|string" localization="suggested"/>
<attr name="suffixIcon" format="string"/>
<attr name="SuffixText" format="reference|string" localization="suggested"/>
</declare-styleable>

</resources>
95 changes: 95 additions & 0 deletions src/main/java/fr/dvilleneuve/android/EnhancedEditText.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
package fr.dvilleneuve.android;

import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.EditText;
import com.joanzapata.android.iconify.IconDrawable;
import com.joanzapata.android.iconify.Iconify;

public class EnhancedEditText extends EditText {

private String prefixIcon;
private String prefixText;
private String suffixIcon;
private String suffixText;
private TextDrawable prefixTextDrawable;
private IconDrawable prefixIconDrawable;
private TextDrawable suffixTextDrawable;
private IconDrawable suffixIconDrawable;

public EnhancedEditText(Context context) {
super(context);
init();
}

public EnhancedEditText(Context context, AttributeSet attrs) {
super(context, attrs);
initAttrs(context, attrs);
init();
}

public EnhancedEditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initAttrs(context, attrs);
init();
}

private void initAttrs(Context context, AttributeSet attrs) {
TypedArray attr = context.obtainStyledAttributes(attrs, R.styleable.EnhancedEditText);
prefixIcon = attr.getString(R.styleable.EnhancedEditText_prefixIcon);
prefixText = attr.getString(R.styleable.EnhancedEditText_prefixText);
suffixIcon = attr.getString(R.styleable.EnhancedEditText_suffixIcon);
suffixText = attr.getString(R.styleable.EnhancedEditText_SuffixText);
attr.recycle();
}

void init() {
setCompoundDrawablePadding(16);

if (prefixIcon != null) {
setPrefixIcon(Iconify.IconValue.valueOf(prefixIcon));
}
if (suffixIcon != null) {
setSuffixIcon(Iconify.IconValue.valueOf(suffixIcon));
}
setPrefixText(prefixText);
setSuffixText(suffixText);
}

public void setPrefixIcon(Iconify.IconValue iconValue) {
if (iconValue != null) {
prefixIconDrawable = new IconDrawable(getContext(), iconValue).sizePx((int) getTextSize()).color(Color.GRAY);
updateDrawables();
}
}

public void setPrefixText(String unitTextPrefix) {
if (unitTextPrefix != null) {
prefixTextDrawable = new TextDrawable(getContext(), unitTextPrefix).sizePx(getTextSize()).color(Color.GRAY).typeface(getTypeface());
updateDrawables();
}
}

public void setSuffixIcon(Iconify.IconValue iconValue) {
if (iconValue != null) {
suffixIconDrawable = new IconDrawable(getContext(), iconValue).sizePx((int) getTextSize()).color(Color.GRAY);
updateDrawables();
}
}

public void setSuffixText(String unitTextSuffix) {
if (unitTextSuffix != null) {
suffixTextDrawable = new TextDrawable(getContext(), unitTextSuffix).sizePx(getTextSize()).color(Color.GRAY).typeface(getTypeface());
updateDrawables();
}
}

private void updateDrawables() {
Drawable leftDrawable = prefixIconDrawable != null ? prefixIconDrawable : prefixTextDrawable;
setCompoundDrawablesWithIntrinsicBounds(leftDrawable, null, suffixTextDrawable, null);
}

}
Loading

0 comments on commit 8437870

Please sign in to comment.