diff --git a/README.md b/README.md index a29fc36..4451d43 100644 --- a/README.md +++ b/README.md @@ -1,64 +1,33 @@ # StyledDialogs for Android -This library makes styling and using dialogs _a piece of cake_. - ![Screenshot of the dialogs](graphics/screenshot-small.png) Features: - - Compatible with Holo style and **Android Design Guidelines** - - Change style for all dialogs only by changing a **few color resources** + - Compatible with **Material Design Guidelines** - Same look for **Android 2.2+** - - **Same API** as native Android DialogFragments - - `SimpleDialogFragment` class, which makes displaying simple dialogs a **one line of code** - - `ListDialogFragment`, `DatePickerDialogFragment` and `TimePickerDialogFragment` + - Built on top of standard **DialogFragment** + - Supports stacked buttons, neutral button, callbacks even after rotation + - Contains even more specialized dialogs: List, Progress, Time&Date Picker, Custom, ... ## How to include it in your project: -With Gradle: ```groovy -compile 'eu.inmite.android.lib:android-styled-dialogs:1.2.0' +dependencies { + compile 'com.avast:android-styled-dialogs:2.0.0' +} ``` - -With Maven: -```xml - - eu.inmite.android.lib - android-styled-dialogs - 1.2.0 - aar - -``` - -Manually: - - - clone the project - - add it as library project in your IDE - - include latest support library +(from [jcenter](https://bintray.com/avast/android/styled-dialogs/)) ## How to style all dialogs: -Add following into your application theme: -```xml -@style/DialogStyleLight.Custom -``` -or -```xml -@style/DialogStyleDark.Custom -``` -Define your dialog style, example for light theme: +It uses standard Material colors, for example like this: + ```xml - ``` @@ -66,14 +35,11 @@ Define your dialog style, example for light theme: Easy: -### Dialog with a simple message and Close button: +### Dialog with a simple message only: ```java SimpleDialogFragment.createBuilder(this, getSupportFragmentManager()).setMessage(R.string.message).show(); ``` -### Dialog with a title, message and Close button: -```java -SimpleDialogFragment.createBuilder(this, getSupportFragmentManager()).setTitle(R.string.title).setMessage(R.string.message).show(); -``` + ### Dialog with a title, message and two buttons: ```java SimpleDialogFragment.createBuilder(this, getSupportFragmentManager()).setTitle(R.string.title).setMessage(R.string.message).setPositiveButtonText(R.string.positive_button).setNegativeButtonText(R.string.negative_button).show(); diff --git a/build.gradle b/build.gradle index 15a299f..ea87842 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ buildscript { repositories { - mavenCentral() + jcenter() } dependencies { @@ -9,12 +9,14 @@ buildscript { } allprojects { - version = VERSION_NAME - group = GROUP - repositories { - mavenCentral() + jcenter() } } +ext { + VERSION_NAME = "2.0.1" + VERSION_CODE = 6 +} + apply plugin: 'android-reporting' \ No newline at end of file diff --git a/demo/build.gradle b/demo/build.gradle index dc643c6..73c130b 100644 --- a/demo/build.gradle +++ b/demo/build.gradle @@ -5,13 +5,13 @@ android { buildToolsVersion "20" defaultConfig { - minSdkVersion 7 + minSdkVersion 8 targetSdkVersion 21 versionName project.VERSION_NAME - versionCode Integer.parseInt(project.VERSION_CODE) + versionCode project.VERSION_CODE } } dependencies { - compile project(':library') + compile project(":library") } \ No newline at end of file diff --git a/demo/src/main/AndroidManifest.xml b/demo/src/main/AndroidManifest.xml index f8b6c4d..c2282bd 100644 --- a/demo/src/main/AndroidManifest.xml +++ b/demo/src/main/AndroidManifest.xml @@ -1,19 +1,14 @@ + package="com.avast.dialogs"> - + android:theme="@style/AppTheme" + android:allowBackup="true"> + android:name=".DemoActivity"> diff --git a/demo/src/main/java/com/avast/dialogs/DemoActivity.java b/demo/src/main/java/com/avast/dialogs/DemoActivity.java new file mode 100644 index 0000000..4f1ff1c --- /dev/null +++ b/demo/src/main/java/com/avast/dialogs/DemoActivity.java @@ -0,0 +1,221 @@ +/* + * Copyright 2013 Inmite s.r.o. (www.inmite.eu). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.avast.dialogs; + +import java.text.DateFormat; +import java.util.Date; + +import android.os.Bundle; +import android.support.v7.app.ActionBarActivity; +import android.view.View; +import android.widget.Toast; + +import com.avast.android.dialogs.fragment.*; +import com.avast.android.dialogs.iface.IDateDialogListener; +import com.avast.android.dialogs.iface.IListDialogListener; +import com.avast.android.dialogs.iface.ISimpleDialogCancelListener; +import com.avast.android.dialogs.iface.ISimpleDialogListener; + +public class DemoActivity extends ActionBarActivity implements + ISimpleDialogListener, + IDateDialogListener, + ISimpleDialogCancelListener, + IListDialogListener { + + private static final int REQUEST_PROGRESS = 1; + + DemoActivity c = this; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.main); + findViewById(R.id.message_dialog).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + SimpleDialogFragment.createBuilder(c, getSupportFragmentManager()) + .setMessage("Love. Can know all the math in the \'verse but take a boat in the air that you don\'t " + + "love? She\'ll shake you off just as sure as a turn in the worlds. Love keeps her in the air when " + + "she oughtta fall down...tell you she\'s hurtin\' \'fore she keens...makes her a home.").show(); + } + }); + findViewById(R.id.message_title_dialog).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + SimpleDialogFragment.createBuilder(c, getSupportFragmentManager()) + .setTitle("More Firefly quotes:").setMessage + ("Wash: \"Psychic, though? That sounds like something out of science fiction.\"\n\nZoe: \"We live" + + " " + + "in a space ship, dear.\"\nWash: \"Here lies my beloved Zoe, " + + ("my autumn flower ... somewhat less attractive now that she's all corpsified and gross" + + ".\"\n\nRiver Tam: \"Also? I can kill you with my brain.\"\n\nKayle: \"Going on a year now, nothins twixed my neathers not run on batteries.\" \n" + + "Mal: \"I can't know that.\" \n" + + "Jayne: \"I can stand to hear a little more.\"\n\nWash: \"I've been under fire before. " + + "Well ... I've been in a fire. Actually, I was fired. I can handle myself.\"")) + .setNegativeButtonText("Close") + .show(); + } + }); + findViewById(R.id.message_title_buttons_dialog) + .setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + SimpleDialogFragment.createBuilder(c, getSupportFragmentManager()) + .setTitle("Do you like this quote?") + .setMessage("Jayne: \"Shiny. Let's be bad guys.\"") + .setPositiveButtonText("Love") + .setNegativeButtonText("Hate").setNeutralButtonText("WTF?").setRequestCode(42) + .show(); + } + }); + findViewById(R.id.long_buttons).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + SimpleDialogFragment.createBuilder(c, getSupportFragmentManager()).setMessage("How will you decide?") + .setPositiveButtonText("Time for some thrillin' heroics!").setNegativeButtonText("Misbehave") + .setNeutralButtonText("Keep flying").show(); + } + }); + findViewById(R.id.progress_dialog).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + ProgressDialogFragment.createBuilder(c, getSupportFragmentManager()) + .setMessage("Mal: I\'m just waiting to see if I pass out. Long story.") + .setRequestCode(REQUEST_PROGRESS) + .show(); + } + }); + findViewById(R.id.list_dialog).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + ListDialogFragment + .createBuilder(c, getSupportFragmentManager()) + .setTitle("Your favorite character:") + .setItems(new String[]{"Jayne", "Malcolm", "Kaylee", + "Wash", "Zoe", "River"}) + .show(); + + } + }); + findViewById(R.id.custom_dialog).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + JayneHatDialogFragment.show(c); + } + }); + findViewById(R.id.time_picker).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + TimePickerDialogFragment + .createBuilder(DemoActivity.this, getSupportFragmentManager()) + .setDate(new Date()) + .set24hour(true) + .setPositiveButtonText(android.R.string.ok) + .setNegativeButtonText(android.R.string.cancel) + .setRequestCode(13) + .show(); + } + }); + findViewById(R.id.date_picker).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + DatePickerDialogFragment + .createBuilder(DemoActivity.this, getSupportFragmentManager()) + .setDate(new Date()) + .set24hour(true) + .setPositiveButtonText(android.R.string.ok) + .setNegativeButtonText(android.R.string.cancel) + .setRequestCode(12) + .show(); + } + }); + } + + // IListDialogListener + + @Override + public void onListItemSelected(String value, int number) { + Toast.makeText(c, "Selected: " + value, Toast.LENGTH_SHORT).show(); + } + + @Override + public void onCancelled() { + Toast.makeText(c, "Nothing selected", Toast.LENGTH_SHORT).show(); + } + + // ISimpleDialogCancelListener + + @Override + public void onCancelled(int requestCode) { + if (requestCode == 42) { + Toast.makeText(c, "Dialog cancelled", Toast.LENGTH_SHORT).show(); + } else if (requestCode == REQUEST_PROGRESS) { + Toast.makeText(c, "Progress dialog cancelled", Toast.LENGTH_SHORT).show(); + } + } + + // ISimpleDialogListener + + @Override + public void onPositiveButtonClicked(int requestCode) { + if (requestCode == 42) { + Toast.makeText(c, "Positive button clicked", Toast.LENGTH_SHORT).show(); + } + } + + @Override + public void onNegativeButtonClicked(int requestCode) { + if (requestCode == 42) { + Toast.makeText(c, "Negative button clicked", Toast.LENGTH_SHORT).show(); + } + } + + @Override + public void onNeutralButtonClicked(int requestCode) { + if (requestCode == 42) { + Toast.makeText(c, "Neutral button clicked", Toast.LENGTH_SHORT).show(); + } + } + + // IDateDialogListener + + @Override + public void onNegativeButtonClicked(int resultCode, Date date) { + String text = ""; + if (resultCode == 12) { + text = "Date "; + } else if (resultCode == 13) { + text = "Time "; + } + + DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.DEFAULT); + Toast.makeText(this, text + "Cancelled " + dateFormat.format(date), Toast.LENGTH_SHORT).show(); + } + + @Override + public void onPositiveButtonClicked(int resultCode, Date date) { + String text = ""; + if (resultCode == 12) { + text = "Date "; + } else if (resultCode == 13) { + text = "Time "; + } + + DateFormat dateFormat = DateFormat.getDateTimeInstance(); + Toast.makeText(this, text + "Success! " + dateFormat.format(date), Toast.LENGTH_SHORT).show(); + } +} diff --git a/demo/src/main/java/eu/inmite/demo/dialogs/JayneHatDialogFragment.java b/demo/src/main/java/com/avast/dialogs/JayneHatDialogFragment.java similarity index 80% rename from demo/src/main/java/eu/inmite/demo/dialogs/JayneHatDialogFragment.java rename to demo/src/main/java/com/avast/dialogs/JayneHatDialogFragment.java index f6140a5..ffdf4b9 100644 --- a/demo/src/main/java/eu/inmite/demo/dialogs/JayneHatDialogFragment.java +++ b/demo/src/main/java/com/avast/dialogs/JayneHatDialogFragment.java @@ -13,18 +13,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package eu.inmite.demo.dialogs; +package com.avast.dialogs; import android.support.v4.app.FragmentActivity; import android.view.LayoutInflater; import android.view.View; -import eu.inmite.android.lib.dialogs.BaseDialogFragment; -import eu.inmite.android.lib.dialogs.ISimpleDialogListener; -import eu.inmite.android.lib.dialogs.SimpleDialogFragment; +import com.avast.android.dialogs.core.BaseDialogFragment; +import com.avast.android.dialogs.fragment.SimpleDialogFragment; +import com.avast.android.dialogs.iface.ISimpleDialogListener; /** - * Sample implementation of eu.inmite.android.lib.dialogs.BaseDialogFragment - custom view by extending {@link SimpleDialogFragment}. + * Sample implementation of custom dialog by extending {@link SimpleDialogFragment}. * * @author David Vávra (david@inmite.eu) */ @@ -39,7 +39,7 @@ public static void show(FragmentActivity activity) { @Override public BaseDialogFragment.Builder build(BaseDialogFragment.Builder builder) { builder.setTitle("Jayne's hat"); - builder.setView(LayoutInflater.from(getActivity()).inflate(R.layout.item_jayne_hat, null)); + builder.setView(LayoutInflater.from(getActivity()).inflate(R.layout.view_jayne_hat, null)); builder.setPositiveButton("I want one", new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/demo/src/main/java/eu/inmite/demo/dialogs/MyActivity.java b/demo/src/main/java/eu/inmite/demo/dialogs/MyActivity.java deleted file mode 100644 index a9531e6..0000000 --- a/demo/src/main/java/eu/inmite/demo/dialogs/MyActivity.java +++ /dev/null @@ -1,269 +0,0 @@ -/* - * Copyright 2013 Inmite s.r.o. (www.inmite.eu). - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package eu.inmite.demo.dialogs; - -import android.content.Intent; -import android.os.Bundle; -import android.support.v4.app.FragmentActivity; -import android.view.View; -import android.widget.Toast; - -import java.text.DateFormat; -import java.util.Date; - -import eu.inmite.android.lib.dialogs.DatePickerDialogFragment; -import eu.inmite.android.lib.dialogs.IDateDialogListener; -import eu.inmite.android.lib.dialogs.IListDialogListener; -import eu.inmite.android.lib.dialogs.ISimpleDialogCancelListener; -import eu.inmite.android.lib.dialogs.ISimpleDialogListener; -import eu.inmite.android.lib.dialogs.ListDialogFragment; -import eu.inmite.android.lib.dialogs.ProgressDialogFragment; -import eu.inmite.android.lib.dialogs.SimpleDialogFragment; -import eu.inmite.android.lib.dialogs.TimePickerDialogFragment; - -public class MyActivity extends FragmentActivity implements - ISimpleDialogListener, - IDateDialogListener, - ISimpleDialogCancelListener, - IListDialogListener { - - public static final int THEME_DEFAULT_DARK = 0; - - public static final int THEME_DEFAULT_LIGHT = 1; - - public static final int THEME_CUSTOM_DARK = 2; - - public static final int THEME_CUSTOM_LIGHT = 3; - - public static final String EXTRA_THEME = "theme"; - - private static final int REQUEST_PROGRESS = 1; - - MyActivity c = this; - - @Override - public void onCreate(Bundle savedInstanceState) { - setThemeOnCreate(); - super.onCreate(savedInstanceState); - setContentView(R.layout.main); - findViewById(R.id.message_dialog).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - SimpleDialogFragment.createBuilder(c, getSupportFragmentManager()) - .setMessage(R.string.message_1).show(); - } - }); - findViewById(R.id.message_title_dialog).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - SimpleDialogFragment.createBuilder(c, getSupportFragmentManager()) - .setTitle(R.string.title).setMessage(R.string.message_2).show(); - } - }); - findViewById(R.id.message_title_buttons_dialog) - .setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - SimpleDialogFragment.createBuilder(c, getSupportFragmentManager()) - .setTitle(R.string.title) - .setMessage(R.string.message_3) - .setPositiveButtonText(R.string.positive_button) - .setNegativeButtonText(R.string.negative_button).setRequestCode(42) - .setTag("custom-tag") - .show(); - } - }); - findViewById(R.id.progress_dialog).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - ProgressDialogFragment.createBuilder(c, getSupportFragmentManager()) - .setMessage(R.string.message_4) - .setRequestCode(REQUEST_PROGRESS) - .setTitle(R.string.app_name) - .show(); - } - }); - findViewById(R.id.list_dialog).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - ListDialogFragment - .createBuilder(c, getSupportFragmentManager()) - .setTitle("Your favorite character:") - .setItems(new String[]{"Jayne", "Malcolm", "Kaylee", - "Wash", "Zoe", "River"}) - .show(); - - } - }); - findViewById(R.id.custom_dialog).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - JayneHatDialogFragment.show(c); - } - }); - findViewById(R.id.default_dark_theme).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - setCurrentTheme(THEME_DEFAULT_DARK); - } - }); - findViewById(R.id.default_light_theme).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - setCurrentTheme(THEME_DEFAULT_LIGHT); - } - }); - findViewById(R.id.custom_dark_theme).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - setCurrentTheme(THEME_CUSTOM_DARK); - } - }); - findViewById(R.id.custom_light_theme).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - setCurrentTheme(THEME_CUSTOM_LIGHT); - } - }); - findViewById(R.id.time_picker).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - TimePickerDialogFragment - .createBuilder(MyActivity.this, getSupportFragmentManager()) - .setDate(new Date()) - .set24hour(true) - .setPositiveButtonText(android.R.string.ok) - .setNegativeButtonText(android.R.string.cancel) - .setRequestCode(13) - .show(); - } - }); - findViewById(R.id.date_picker).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - DatePickerDialogFragment - .createBuilder(MyActivity.this, getSupportFragmentManager()) - .setDate(new Date()) - .set24hour(true) - .setPositiveButtonText(android.R.string.ok) - .setNegativeButtonText(android.R.string.cancel) - .setRequestCode(12) - .show(); - } - }); - } - - // IListDialogListener - - @Override - public void onListItemSelected(String value, int number) { - Toast.makeText(c, "Selected: " + value, Toast.LENGTH_SHORT).show(); - } - - @Override - public void onCancelled() { - Toast.makeText(c, "Nothing selected", Toast.LENGTH_SHORT).show(); - } - - // ISimpleDialogCancelListener - - @Override - public void onCancelled(int requestCode) { - if (requestCode == 42) { - Toast.makeText(c, "Dialog cancelled", Toast.LENGTH_SHORT).show(); - } else if (requestCode == REQUEST_PROGRESS) { - Toast.makeText(c, "Progress dialog cancelled", Toast.LENGTH_SHORT).show(); - } - } - - // ISimpleDialogListener - - @Override - public void onPositiveButtonClicked(int requestCode) { - if (requestCode == 42) { - Toast.makeText(c, "Positive button clicked", Toast.LENGTH_SHORT).show(); - } - } - - @Override - public void onNegativeButtonClicked(int requestCode) { - if (requestCode == 42) { - Toast.makeText(c, "Negative button clicked", Toast.LENGTH_SHORT).show(); - } - } - - @Override - public void onNeutralButtonClicked(int requestCode) { - if (requestCode == 42) { - Toast.makeText(c, "Neutral button clicked", Toast.LENGTH_SHORT).show(); - } - } - - // IDateDialogListener - - @Override - public void onNegativeButtonClicked(int resultCode, Date date) { - String text=""; - if (resultCode==12) { - text="Date "; - } else if (resultCode==13) { - text="Time "; - } - - DateFormat dateFormat= DateFormat.getDateInstance(DateFormat.DEFAULT); - Toast.makeText(this,text+"Cancelled "+ dateFormat.format(date),Toast.LENGTH_SHORT).show(); - } - - @Override - public void onPositiveButtonClicked(int resultCode, Date date) { - String text=""; - if (resultCode==12) { - text="Date "; - } else if (resultCode==13) { - text="Time "; - } - - DateFormat dateFormat= DateFormat.getDateTimeInstance(); - Toast.makeText(this,text+ "Success! "+ dateFormat.format(date),Toast.LENGTH_SHORT).show(); - } - - private void setCurrentTheme(int theme) { - Intent i = new Intent(c, MyActivity.class); - i.putExtra(EXTRA_THEME, theme); - startActivity(i); - finish(); - overridePendingTransition(0, 0); - } - - private void setThemeOnCreate() { - int theme = getIntent().getIntExtra(EXTRA_THEME, THEME_CUSTOM_DARK); - switch (theme) { - case THEME_DEFAULT_DARK: - setTheme(R.style.DefaultDarkTheme); - break; - case THEME_DEFAULT_LIGHT: - setTheme(R.style.DefaultLightTheme); - break; - case THEME_CUSTOM_DARK: - setTheme(R.style.CustomDarkTheme); - break; - case THEME_CUSTOM_LIGHT: - setTheme(R.style.CustomLightTheme); - break; - } - } -} diff --git a/demo/src/main/res/drawable-hdpi/ic_launcher.png b/demo/src/main/res/drawable-hdpi/ic_launcher.png old mode 100644 new mode 100755 index 96a442e..091c6af Binary files a/demo/src/main/res/drawable-hdpi/ic_launcher.png and b/demo/src/main/res/drawable-hdpi/ic_launcher.png differ diff --git a/demo/src/main/res/drawable-ldpi/ic_launcher.png b/demo/src/main/res/drawable-ldpi/ic_launcher.png deleted file mode 100644 index 9923872..0000000 Binary files a/demo/src/main/res/drawable-ldpi/ic_launcher.png and /dev/null differ diff --git a/demo/src/main/res/drawable-mdpi/ic_launcher.png b/demo/src/main/res/drawable-mdpi/ic_launcher.png old mode 100644 new mode 100755 index 359047d..9491280 Binary files a/demo/src/main/res/drawable-mdpi/ic_launcher.png and b/demo/src/main/res/drawable-mdpi/ic_launcher.png differ diff --git a/demo/src/main/res/drawable-xhdpi/ic_launcher.png b/demo/src/main/res/drawable-xhdpi/ic_launcher.png old mode 100644 new mode 100755 index 71c6d76..8b6882c Binary files a/demo/src/main/res/drawable-xhdpi/ic_launcher.png and b/demo/src/main/res/drawable-xhdpi/ic_launcher.png differ diff --git a/demo/src/main/res/drawable-xhdpi/jayne_icon.png b/demo/src/main/res/drawable-xhdpi/jayne_icon.png deleted file mode 100644 index dd5bf1e..0000000 Binary files a/demo/src/main/res/drawable-xhdpi/jayne_icon.png and /dev/null differ diff --git a/demo/src/main/res/drawable-xxhdpi/ic_launcher.png b/demo/src/main/res/drawable-xxhdpi/ic_launcher.png new file mode 100755 index 0000000..e141f4d Binary files /dev/null and b/demo/src/main/res/drawable-xxhdpi/ic_launcher.png differ diff --git a/demo/src/main/res/drawable-xxxhdpi/ic_launcher.png b/demo/src/main/res/drawable-xxxhdpi/ic_launcher.png new file mode 100755 index 0000000..c466224 Binary files /dev/null and b/demo/src/main/res/drawable-xxxhdpi/ic_launcher.png differ diff --git a/demo/src/main/res/layout/item_list.xml b/demo/src/main/res/layout/item_list.xml deleted file mode 100644 index 83ded4a..0000000 --- a/demo/src/main/res/layout/item_list.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/demo/src/main/res/layout/main.xml b/demo/src/main/res/layout/main.xml index e81d0d5..dbda732 100644 --- a/demo/src/main/res/layout/main.xml +++ b/demo/src/main/res/layout/main.xml @@ -9,59 +9,31 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> - - -