Skip to content

Commit

Permalink
Update TextItem to show icon on left side
Browse files Browse the repository at this point in the history
  • Loading branch information
michal_szwarc committed Mar 24, 2015
1 parent 4e56b47 commit 443fa5b
Show file tree
Hide file tree
Showing 5 changed files with 95 additions and 15 deletions.
29 changes: 29 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,35 @@ Easiest way to save/load settings
* SimpleStorageInterface - in memory
* or write own interface to save data (sqlite, content provider or to file)

Interface:

```java

public abstract class StorageInterface {
public StorageInterface() {}

public abstract void save(String key, Boolean value);
public abstract boolean load(String key, Boolean defaultValue);

public abstract void save(String key, String value);
public abstract String load(String key, String defaultValue);

public abstract void save(String key, Integer value);
public abstract Integer load(String key, Integer defaultValue);

public abstract void save(String key, Float value);
public abstract Float load(String key, Float defaultValue);

public abstract void save(String key, Long value);
public abstract Long load(String key, Long defaultValue);

public abstract Map<String, ?> getAll();
}

```

Extend and write own methods.

# Screens
![Default](/screens/theme_default2.png)
![Rec](/screens/theme_red2.png)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package com.kenumir.materialsettings.items;

import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import com.kenumir.materialsettings.MaterialSettingsItem;
Expand All @@ -15,11 +17,12 @@ public class TextItem extends MaterialSettingsItem {
public static interface OnClickListener {
public void onClick(TextItem item);
}


private String title, subtitle;
private OnClickListener onclick;
private TextView titleView, subtitleView;
private ImageView image;
private Drawable icon;
private int iconRes = 0;

public TextItem(Context ctx, String name) {
super(ctx, name);
Expand All @@ -32,11 +35,19 @@ public int getViewResource() {

@Override
public void setupView(View v) {
titleView = (TextView) v.findViewById(R.id.material_dialog_item_title);
subtitleView = (TextView) v.findViewById(R.id.material_dialog_item_subtitle);
titleView = (TextView) v.findViewById(R.id.material_settings_text_title);
subtitleView = (TextView) v.findViewById(R.id.material_settings_text_subtitle);
image = (ImageView) v.findViewById(R.id.material_settings_text_icon);

updateTitle(title);
updateSubTitle(subtitle);
if (iconRes > 0) {
updateIcon(iconRes);
} else if (icon != null) {
updateIcon(icon);
} else {
image.setVisibility(View.GONE);
}

v.setOnClickListener(new View.OnClickListener() {
@Override
Expand All @@ -47,6 +58,16 @@ public void onClick(View v) {
});
}

public TextItem setIcon(int icon) {
iconRes = icon;
return this;
}

public TextItem setIcon(Drawable icon) {
this.icon = icon;
return this;
}

@Override
public void save() {
// NOP
Expand All @@ -66,6 +87,20 @@ public TextItem updateSubTitle(String newSubTitle) {
return this;
}

public TextItem updateIcon(int icon) {
this.iconRes = icon;
this.image.setImageResource(icon);
this.image.setVisibility(View.VISIBLE);
return this;
}

public TextItem updateIcon(Drawable icon) {
this.icon = icon;
this.image.setImageDrawable(icon);
this.image.setVisibility(View.VISIBLE);
return this;
}

public String getTitle() {
return title;
}
Expand Down
28 changes: 20 additions & 8 deletions library/src/main/res/layout/item_text.xml
Original file line number Diff line number Diff line change
@@ -1,15 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
style="?attr/msItem"
android:orientation="vertical">
style="?attr/msItem">

<ImageView
android:id="@+id/material_settings_text_icon"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:scaleType="centerInside"
android:src="@drawable/abc_btn_radio_to_on_mtrl_000"
android:layout_marginRight="24dp"
android:layout_centerVertical="true"
android:visibility="gone"/>

<TextView
android:id="@+id/material_dialog_item_title"
style="?attr/msTextStyle"/>
android:id="@+id/material_settings_text_title"
style="?attr/msTextStyle"
android:layout_toRightOf="@+id/material_settings_text_icon"/>

<TextView
android:id="@+id/material_dialog_item_subtitle"
style="?attr/msSubTextStyle"/>
android:id="@+id/material_settings_text_subtitle"
style="?attr/msSubTextStyle"
android:layout_toRightOf="@+id/material_settings_text_icon"
android:layout_below="@+id/material_settings_text_title"/>

</LinearLayout>
</RelativeLayout>
6 changes: 3 additions & 3 deletions sampleapp/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ android {
applicationId "com.wt.sampleapp"
minSdkVersion 9
targetSdkVersion 21
versionCode 2
versionName "1.2"
versionCode 3
versionName "1.2.1"
}
buildTypes {
release {
minifyEnabled false
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,10 @@ public void onClick(TextItem v) {
}));
addItem(new DividerItem(this));
addItem(new TextItem(this, "key5").setTitle("Simple text item 3 - no subtitle"));
addItem(new DividerItem(this));
addItem(new TextItem(this, "key5a").setTitle("Simple text item with icon - no subtitle").setIcon(R.drawable.ic_check_circle_grey600_24dp));
addItem(new DividerItem(this));
addItem(new TextItem(this, "key5b").setTitle("Simple text item with icon - no subtitle").setSubtitle("Subtitle of item with icon").setIcon(R.drawable.ic_check_circle_grey600_24dp));
addItem(new HeaderItem(this).setTitle("Same usage with dialogs"));
addItem(new TextItem(this, "key6").setTitle("Simple message dialog").setSubtitle("Clck to show message and change subtext").setOnclick(new TextItem.OnClickListener() {
@Override
Expand Down

0 comments on commit 443fa5b

Please sign in to comment.