diff --git a/wheel-demo/.classpath b/wheel-demo/.classpath
deleted file mode 100644
index 00b0209..0000000
--- a/wheel-demo/.classpath
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/wheel-demo/.gitignore b/wheel-demo/.gitignore
new file mode 100644
index 0000000..17c1fe6
--- /dev/null
+++ b/wheel-demo/.gitignore
@@ -0,0 +1,105 @@
+# Created by https://www.gitignore.io/api/android,intellij,gradle
+
+.DS_Store
+
+### Android ###
+# Built application files
+*.apk
+*.ap_
+
+# Files for the Dalvik VM
+*.dex
+
+# Java class files
+*.class
+
+# Generated files
+bin/
+gen/
+
+# Gradle files
+.gradle/
+build/
+
+# Local configuration file (sdk path, etc)
+local.properties
+
+# Proguard folder generated by Eclipse
+proguard/
+
+# Log Files
+*.log
+
+# Android Studio Navigation editor temp files
+.navigation/
+
+# Android Studio captures folder
+captures/
+
+### Android Patch ###
+gen-external-apklibs
+
+
+### Intellij ###
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
+
+*.iml
+
+## Directory-based project format:
+.idea/
+# if you remove the above rule, at least ignore the following:
+
+# User-specific stuff:
+.idea/workspace.xml
+# .idea/tasks.xml
+# .idea/dictionaries
+# .idea/shelf
+
+# Sensitive or high-churn files:
+# .idea/dataSources.ids
+# .idea/dataSources.xml
+# .idea/sqlDataSources.xml
+# .idea/dynamic.xml
+# .idea/uiDesigner.xml
+
+# Gradle:
+# .idea/gradle.xml
+.idea/libraries
+
+# Mongo Explorer plugin:
+# .idea/mongoSettings.xml
+
+## File-based project format:
+*.ipr
+*.iws
+
+## Plugin-specific files:
+
+# IntelliJ
+/out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+
+
+### Gradle ###
+.gradle
+build/
+
+# Ignore Gradle GUI config
+gradle-app.setting
+
+# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
+!gradle-wrapper.jar
+
+# Cache of project
+.gradletasknamecache
diff --git a/wheel-demo/.project b/wheel-demo/.project
deleted file mode 100644
index 6906965..0000000
--- a/wheel-demo/.project
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
- wheel-demo
-
-
-
-
-
- com.android.ide.eclipse.adt.ResourceManagerBuilder
-
-
-
-
- com.android.ide.eclipse.adt.PreCompilerBuilder
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- com.android.ide.eclipse.adt.ApkBuilder
-
-
-
-
-
- com.android.ide.eclipse.adt.AndroidNature
- org.eclipse.jdt.core.javanature
-
-
-
- wheel_src
- 2
- _android_wheel_6bdbb5b/src
-
-
-
diff --git a/wheel-demo/app/.gitignore b/wheel-demo/app/.gitignore
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ b/wheel-demo/app/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/wheel-demo/app/build.gradle b/wheel-demo/app/build.gradle
new file mode 100644
index 0000000..a8c2b53
--- /dev/null
+++ b/wheel-demo/app/build.gradle
@@ -0,0 +1,26 @@
+apply plugin: 'com.android.application'
+
+android {
+ compileSdkVersion 23
+ buildToolsVersion "23.0.1"
+
+ defaultConfig {
+ applicationId "kankan.wheel.demo.extended"
+ minSdkVersion 5
+ targetSdkVersion 23
+ versionCode 1
+ versionName "1.0"
+ }
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+}
+
+dependencies {
+ compile project(':wheel-release')
+ compile fileTree(dir: 'libs', include: ['*.jar'])
+ testCompile 'junit:junit:4.12'
+}
diff --git a/wheel-demo/app/proguard-rules.pro b/wheel-demo/app/proguard-rules.pro
new file mode 100644
index 0000000..0b3ef79
--- /dev/null
+++ b/wheel-demo/app/proguard-rules.pro
@@ -0,0 +1,17 @@
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in /Users/penaa/.android/sdk/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the proguardFiles
+# directive in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/wheel-demo/app/src/androidTest/java/kankan/wheel/demo/extended/ApplicationTest.java b/wheel-demo/app/src/androidTest/java/kankan/wheel/demo/extended/ApplicationTest.java
new file mode 100644
index 0000000..6920669
--- /dev/null
+++ b/wheel-demo/app/src/androidTest/java/kankan/wheel/demo/extended/ApplicationTest.java
@@ -0,0 +1,13 @@
+package kankan.wheel.demo.extended;
+
+import android.app.Application;
+import android.test.ApplicationTestCase;
+
+/**
+ * Testing Fundamentals
+ */
+public class ApplicationTest extends ApplicationTestCase {
+ public ApplicationTest() {
+ super(Application.class);
+ }
+}
\ No newline at end of file
diff --git a/wheel-demo/AndroidManifest.xml b/wheel-demo/app/src/main/AndroidManifest.xml
similarity index 77%
rename from wheel-demo/AndroidManifest.xml
rename to wheel-demo/app/src/main/AndroidManifest.xml
index 3eda0ea..6f1b7ce 100644
--- a/wheel-demo/AndroidManifest.xml
+++ b/wheel-demo/app/src/main/AndroidManifest.xml
@@ -1,25 +1,24 @@
-
-
-
-
-
+ package="kankan.wheel.demo.extended">
+
+
-
-
+
+
-
-
-
+
+
+
-
+
@@ -32,24 +31,24 @@
-
-
+
+
-
+
-
-
+
+
-
+
@@ -62,8 +61,6 @@
-
-
-
\ No newline at end of file
+
diff --git a/wheel-demo/src/kankan/wheel/demo/extended/CitiesActivity.java b/wheel-demo/app/src/main/java/kankan/wheel/demo/extended/CitiesActivity.java
similarity index 95%
rename from wheel-demo/src/kankan/wheel/demo/extended/CitiesActivity.java
rename to wheel-demo/app/src/main/java/kankan/wheel/demo/extended/CitiesActivity.java
index 250f721..2389639 100644
--- a/wheel-demo/src/kankan/wheel/demo/extended/CitiesActivity.java
+++ b/wheel-demo/app/src/main/java/kankan/wheel/demo/extended/CitiesActivity.java
@@ -1,114 +1,113 @@
-package kankan.wheel.demo.extended;
-
-import kankan.wheel.demo.extended.R;
-import kankan.wheel.widget.OnWheelChangedListener;
-import kankan.wheel.widget.OnWheelScrollListener;
-import kankan.wheel.widget.WheelView;
-import kankan.wheel.widget.adapters.AbstractWheelTextAdapter;
-import kankan.wheel.widget.adapters.ArrayWheelAdapter;
-
-import android.app.Activity;
-import android.content.Context;
-import android.os.Bundle;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-
-public class CitiesActivity extends Activity {
- // Scrolling flag
- private boolean scrolling = false;
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- setContentView(R.layout.cities_layout);
-
- final WheelView country = (WheelView) findViewById(R.id.country);
- country.setVisibleItems(3);
- country.setViewAdapter(new CountryAdapter(this));
-
- final String cities[][] = new String[][] {
- new String[] {"New York", "Washington", "Chicago", "Atlanta", "Orlando"},
- new String[] {"Ottawa", "Vancouver", "Toronto", "Windsor", "Montreal"},
- new String[] {"Kiev", "Dnipro", "Lviv", "Kharkiv"},
- new String[] {"Paris", "Bordeaux"},
- };
-
- final WheelView city = (WheelView) findViewById(R.id.city);
- city.setVisibleItems(5);
-
- country.addChangingListener(new OnWheelChangedListener() {
- @Override
- public void onChanged(WheelView wheel, int oldValue, int newValue) {
- if (!scrolling) {
- updateCities(city, cities, newValue);
- }
- }
- });
-
- country.addScrollingListener( new OnWheelScrollListener() {
- @Override
- public void onScrollingStarted(WheelView wheel) {
- scrolling = true;
- }
- @Override
- public void onScrollingFinished(WheelView wheel) {
- scrolling = false;
- updateCities(city, cities, country.getCurrentItem());
- }
- });
-
- country.setCurrentItem(1);
- }
-
- /**
- * Updates the city wheel
- */
- private void updateCities(WheelView city, String cities[][], int index) {
- ArrayWheelAdapter adapter =
- new ArrayWheelAdapter(this, cities[index]);
- adapter.setTextSize(18);
- city.setViewAdapter(adapter);
- city.setCurrentItem(cities[index].length / 2);
- }
-
- /**
- * Adapter for countries
- */
- private class CountryAdapter extends AbstractWheelTextAdapter {
- // Countries names
- private String countries[] =
- new String[] {"USA", "Canada", "Ukraine", "France"};
- // Countries flags
- private int flags[] =
- new int[] {R.drawable.usa, R.drawable.canada, R.drawable.ukraine, R.drawable.france};
-
- /**
- * Constructor
- */
- protected CountryAdapter(Context context) {
- super(context, R.layout.country_layout, NO_RESOURCE);
-
- setItemTextResource(R.id.country_name);
- }
-
- @Override
- public View getItem(int index, View cachedView, ViewGroup parent) {
- View view = super.getItem(index, cachedView, parent);
- ImageView img = (ImageView) view.findViewById(R.id.flag);
- img.setImageResource(flags[index]);
- return view;
- }
-
- @Override
- public int getItemsCount() {
- return countries.length;
- }
-
- @Override
- protected CharSequence getItemText(int index) {
- return countries[index];
- }
- }
-}
+package kankan.wheel.demo.extended;
+
+import android.app.Activity;
+import android.content.Context;
+import android.os.Bundle;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+
+import kankan.wheel.widget.OnWheelChangedListener;
+import kankan.wheel.widget.OnWheelScrollListener;
+import kankan.wheel.widget.WheelView;
+import kankan.wheel.widget.adapters.AbstractWheelTextAdapter;
+import kankan.wheel.widget.adapters.ArrayWheelAdapter;
+
+public class CitiesActivity extends Activity {
+ // Scrolling flag
+ private boolean scrolling = false;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ setContentView(R.layout.cities_layout);
+
+ final WheelView country = (WheelView) findViewById(R.id.country);
+ country.setVisibleItems(3);
+ country.setViewAdapter(new CountryAdapter(this));
+
+ final String cities[][] = new String[][] {
+ new String[] {"New York", "Washington", "Chicago", "Atlanta", "Orlando"},
+ new String[] {"Ottawa", "Vancouver", "Toronto", "Windsor", "Montreal"},
+ new String[] {"Kiev", "Dnipro", "Lviv", "Kharkiv"},
+ new String[] {"Paris", "Bordeaux"},
+ };
+
+ final WheelView city = (WheelView) findViewById(R.id.city);
+ city.setVisibleItems(5);
+
+ country.addChangingListener(new OnWheelChangedListener() {
+ @Override
+ public void onChanged(WheelView wheel, int oldValue, int newValue) {
+ if (!scrolling) {
+ updateCities(city, cities, newValue);
+ }
+ }
+ });
+
+ country.addScrollingListener( new OnWheelScrollListener() {
+ @Override
+ public void onScrollingStarted(WheelView wheel) {
+ scrolling = true;
+ }
+ @Override
+ public void onScrollingFinished(WheelView wheel) {
+ scrolling = false;
+ updateCities(city, cities, country.getCurrentItem());
+ }
+ });
+
+ country.setCurrentItem(1);
+ }
+
+ /**
+ * Updates the city wheel
+ */
+ private void updateCities(WheelView city, String cities[][], int index) {
+ ArrayWheelAdapter adapter =
+ new ArrayWheelAdapter(this, cities[index]);
+ adapter.setTextSize(18);
+ city.setViewAdapter(adapter);
+ city.setCurrentItem(cities[index].length / 2);
+ }
+
+ /**
+ * Adapter for countries
+ */
+ private class CountryAdapter extends AbstractWheelTextAdapter {
+ // Countries names
+ private String countries[] =
+ new String[] {"USA", "Canada", "Ukraine", "France"};
+ // Countries flags
+ private int flags[] =
+ new int[] {R.drawable.usa, R.drawable.canada, R.drawable.ukraine, R.drawable.france};
+
+ /**
+ * Constructor
+ */
+ protected CountryAdapter(Context context) {
+ super(context, R.layout.country_layout, NO_RESOURCE);
+
+ setItemTextResource(R.id.country_name);
+ }
+
+ @Override
+ public View getItem(int index, View cachedView, ViewGroup parent) {
+ View view = super.getItem(index, cachedView, parent);
+ ImageView img = (ImageView) view.findViewById(R.id.flag);
+ img.setImageResource(flags[index]);
+ return view;
+ }
+
+ @Override
+ public int getItemsCount() {
+ return countries.length;
+ }
+
+ @Override
+ protected CharSequence getItemText(int index) {
+ return countries[index];
+ }
+ }
+}
diff --git a/wheel-demo/src/kankan/wheel/demo/extended/DateActivity.java b/wheel-demo/app/src/main/java/kankan/wheel/demo/extended/DateActivity.java
similarity index 100%
rename from wheel-demo/src/kankan/wheel/demo/extended/DateActivity.java
rename to wheel-demo/app/src/main/java/kankan/wheel/demo/extended/DateActivity.java
diff --git a/wheel-demo/src/kankan/wheel/demo/extended/HoloWheelActivity.java b/wheel-demo/app/src/main/java/kankan/wheel/demo/extended/HoloWheelActivity.java
similarity index 100%
rename from wheel-demo/src/kankan/wheel/demo/extended/HoloWheelActivity.java
rename to wheel-demo/app/src/main/java/kankan/wheel/demo/extended/HoloWheelActivity.java
diff --git a/wheel-demo/src/kankan/wheel/demo/extended/PasswActivity.java b/wheel-demo/app/src/main/java/kankan/wheel/demo/extended/PasswActivity.java
similarity index 96%
rename from wheel-demo/src/kankan/wheel/demo/extended/PasswActivity.java
rename to wheel-demo/app/src/main/java/kankan/wheel/demo/extended/PasswActivity.java
index 75e4dc2..6ddd0c8 100644
--- a/wheel-demo/src/kankan/wheel/demo/extended/PasswActivity.java
+++ b/wheel-demo/app/src/main/java/kankan/wheel/demo/extended/PasswActivity.java
@@ -1,134 +1,134 @@
-package kankan.wheel.demo.extended;
-
-import kankan.wheel.demo.extended.R;
-import kankan.wheel.widget.OnWheelChangedListener;
-import kankan.wheel.widget.OnWheelScrollListener;
-import kankan.wheel.widget.WheelView;
-import kankan.wheel.widget.adapters.NumericWheelAdapter;
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.animation.AnticipateOvershootInterpolator;
-import android.widget.Button;
-import android.widget.TextView;
-
-public class PasswActivity extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- setContentView(R.layout.passw_layout);
- initWheel(R.id.passw_1);
- initWheel(R.id.passw_2);
- initWheel(R.id.passw_3);
- initWheel(R.id.passw_4);
-
- Button mix = (Button)findViewById(R.id.btn_mix);
- mix.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- mixWheel(R.id.passw_1);
- mixWheel(R.id.passw_2);
- mixWheel(R.id.passw_3);
- mixWheel(R.id.passw_4);
- }
- });
-
- updateStatus();
- }
-
- // Wheel scrolled flag
- private boolean wheelScrolled = false;
-
- // Wheel scrolled listener
- OnWheelScrollListener scrolledListener = new OnWheelScrollListener() {
- @Override
- public void onScrollingStarted(WheelView wheel) {
- wheelScrolled = true;
- }
- @Override
- public void onScrollingFinished(WheelView wheel) {
- wheelScrolled = false;
- updateStatus();
- }
- };
-
- // Wheel changed listener
- private OnWheelChangedListener changedListener = new OnWheelChangedListener() {
- @Override
- public void onChanged(WheelView wheel, int oldValue, int newValue) {
- if (!wheelScrolled) {
- updateStatus();
- }
- }
- };
-
- /**
- * Updates entered PIN status
- */
- private void updateStatus() {
- TextView text = (TextView) findViewById(R.id.pwd_status);
- if (testPin(2, 4, 6, 1)) {
- text.setText("Congratulation!");
- } else {
- text.setText("Invalid PIN");
- }
- }
-
- /**
- * Initializes wheel
- * @param id the wheel widget Id
- */
- private void initWheel(int id) {
- WheelView wheel = getWheel(id);
- wheel.setViewAdapter(new NumericWheelAdapter(this, 0, 9));
- wheel.setCurrentItem((int)(Math.random() * 10));
-
- wheel.addChangingListener(changedListener);
- wheel.addScrollingListener(scrolledListener);
- wheel.setCyclic(true);
- wheel.setInterpolator(new AnticipateOvershootInterpolator());
- }
-
- /**
- * Returns wheel by Id
- * @param id the wheel Id
- * @return the wheel with passed Id
- */
- private WheelView getWheel(int id) {
- return (WheelView) findViewById(id);
- }
-
- /**
- * Tests entered PIN
- * @param v1
- * @param v2
- * @param v3
- * @param v4
- * @return true
- */
- private boolean testPin(int v1, int v2, int v3, int v4) {
- return testWheelValue(R.id.passw_1, v1) && testWheelValue(R.id.passw_2, v2) &&
- testWheelValue(R.id.passw_3, v3) && testWheelValue(R.id.passw_4, v4);
- }
-
- /**
- * Tests wheel value
- * @param id the wheel Id
- * @param value the value to test
- * @return true if wheel value is equal to passed value
- */
- private boolean testWheelValue(int id, int value) {
- return getWheel(id).getCurrentItem() == value;
- }
-
- /**
- * Mixes wheel
- * @param id the wheel id
- */
- private void mixWheel(int id) {
- WheelView wheel = getWheel(id);
- wheel.scroll(-25 + (int)(Math.random() * 50), 2000);
- }
-}
+package kankan.wheel.demo.extended;
+
+import kankan.wheel.demo.extended.R;
+import kankan.wheel.widget.OnWheelChangedListener;
+import kankan.wheel.widget.OnWheelScrollListener;
+import kankan.wheel.widget.WheelView;
+import kankan.wheel.widget.adapters.NumericWheelAdapter;
+import android.app.Activity;
+import android.os.Bundle;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.animation.AnticipateOvershootInterpolator;
+import android.widget.Button;
+import android.widget.TextView;
+
+public class PasswActivity extends Activity {
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ setContentView(R.layout.passw_layout);
+ initWheel(R.id.passw_1);
+ initWheel(R.id.passw_2);
+ initWheel(R.id.passw_3);
+ initWheel(R.id.passw_4);
+
+ Button mix = (Button)findViewById(R.id.btn_mix);
+ mix.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ mixWheel(R.id.passw_1);
+ mixWheel(R.id.passw_2);
+ mixWheel(R.id.passw_3);
+ mixWheel(R.id.passw_4);
+ }
+ });
+
+ updateStatus();
+ }
+
+ // Wheel scrolled flag
+ private boolean wheelScrolled = false;
+
+ // Wheel scrolled listener
+ OnWheelScrollListener scrolledListener = new OnWheelScrollListener() {
+ @Override
+ public void onScrollingStarted(WheelView wheel) {
+ wheelScrolled = true;
+ }
+ @Override
+ public void onScrollingFinished(WheelView wheel) {
+ wheelScrolled = false;
+ updateStatus();
+ }
+ };
+
+ // Wheel changed listener
+ private OnWheelChangedListener changedListener = new OnWheelChangedListener() {
+ @Override
+ public void onChanged(WheelView wheel, int oldValue, int newValue) {
+ if (!wheelScrolled) {
+ updateStatus();
+ }
+ }
+ };
+
+ /**
+ * Updates entered PIN status
+ */
+ private void updateStatus() {
+ TextView text = (TextView) findViewById(R.id.pwd_status);
+ if (testPin(2, 4, 6, 1)) {
+ text.setText("Congratulation!");
+ } else {
+ text.setText("Invalid PIN");
+ }
+ }
+
+ /**
+ * Initializes wheel
+ * @param id the wheel widget Id
+ */
+ private void initWheel(int id) {
+ WheelView wheel = getWheel(id);
+ wheel.setViewAdapter(new NumericWheelAdapter(this, 0, 9));
+ wheel.setCurrentItem((int)(Math.random() * 10));
+
+ wheel.addChangingListener(changedListener);
+ wheel.addScrollingListener(scrolledListener);
+ wheel.setCyclic(true);
+ wheel.setInterpolator(new AnticipateOvershootInterpolator());
+ }
+
+ /**
+ * Returns wheel by Id
+ * @param id the wheel Id
+ * @return the wheel with passed Id
+ */
+ private WheelView getWheel(int id) {
+ return (WheelView) findViewById(id);
+ }
+
+ /**
+ * Tests entered PIN
+ * @param v1
+ * @param v2
+ * @param v3
+ * @param v4
+ * @return true
+ */
+ private boolean testPin(int v1, int v2, int v3, int v4) {
+ return testWheelValue(R.id.passw_1, v1) && testWheelValue(R.id.passw_2, v2) &&
+ testWheelValue(R.id.passw_3, v3) && testWheelValue(R.id.passw_4, v4);
+ }
+
+ /**
+ * Tests wheel value
+ * @param id the wheel Id
+ * @param value the value to test
+ * @return true if wheel value is equal to passed value
+ */
+ private boolean testWheelValue(int id, int value) {
+ return getWheel(id).getCurrentItem() == value;
+ }
+
+ /**
+ * Mixes wheel
+ * @param id the wheel id
+ */
+ private void mixWheel(int id) {
+ WheelView wheel = getWheel(id);
+ wheel.scroll(-25 + (int)(Math.random() * 50), 2000);
+ }
+}
diff --git a/wheel-demo/src/kankan/wheel/demo/extended/SlotMachineActivity.java b/wheel-demo/app/src/main/java/kankan/wheel/demo/extended/SlotMachineActivity.java
similarity index 100%
rename from wheel-demo/src/kankan/wheel/demo/extended/SlotMachineActivity.java
rename to wheel-demo/app/src/main/java/kankan/wheel/demo/extended/SlotMachineActivity.java
diff --git a/wheel-demo/src/kankan/wheel/demo/extended/SpeedActivity.java b/wheel-demo/app/src/main/java/kankan/wheel/demo/extended/SpeedActivity.java
similarity index 100%
rename from wheel-demo/src/kankan/wheel/demo/extended/SpeedActivity.java
rename to wheel-demo/app/src/main/java/kankan/wheel/demo/extended/SpeedActivity.java
diff --git a/wheel-demo/src/kankan/wheel/demo/extended/Time2Activity.java b/wheel-demo/app/src/main/java/kankan/wheel/demo/extended/Time2Activity.java
similarity index 100%
rename from wheel-demo/src/kankan/wheel/demo/extended/Time2Activity.java
rename to wheel-demo/app/src/main/java/kankan/wheel/demo/extended/Time2Activity.java
diff --git a/wheel-demo/src/kankan/wheel/demo/extended/TimeActivity.java b/wheel-demo/app/src/main/java/kankan/wheel/demo/extended/TimeActivity.java
similarity index 96%
rename from wheel-demo/src/kankan/wheel/demo/extended/TimeActivity.java
rename to wheel-demo/app/src/main/java/kankan/wheel/demo/extended/TimeActivity.java
index 27753fb..397e12a 100644
--- a/wheel-demo/src/kankan/wheel/demo/extended/TimeActivity.java
+++ b/wheel-demo/app/src/main/java/kankan/wheel/demo/extended/TimeActivity.java
@@ -1,119 +1,119 @@
-package kankan.wheel.demo.extended;
-
-import java.util.Calendar;
-
-import kankan.wheel.demo.extended.R;
-import kankan.wheel.widget.OnWheelChangedListener;
-import kankan.wheel.widget.OnWheelClickedListener;
-import kankan.wheel.widget.OnWheelScrollListener;
-import kankan.wheel.widget.WheelView;
-import kankan.wheel.widget.adapters.NumericWheelAdapter;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.widget.TimePicker;
-
-public class TimeActivity extends Activity {
- // Time changed flag
- private boolean timeChanged = false;
-
- // Time scrolled flag
- private boolean timeScrolled = false;
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- setContentView(R.layout.time_layout);
-
- final WheelView hours = (WheelView) findViewById(R.id.hour);
- hours.setViewAdapter(new NumericWheelAdapter(this, 0, 23));
-
- final WheelView mins = (WheelView) findViewById(R.id.mins);
- mins.setViewAdapter(new NumericWheelAdapter(this, 0, 59, "%02d"));
- mins.setCyclic(true);
-
- final TimePicker picker = (TimePicker) findViewById(R.id.time);
- picker.setIs24HourView(true);
-
- // set current time
- Calendar c = Calendar.getInstance();
- int curHours = c.get(Calendar.HOUR_OF_DAY);
- int curMinutes = c.get(Calendar.MINUTE);
-
- hours.setCurrentItem(curHours);
- mins.setCurrentItem(curMinutes);
-
- picker.setCurrentHour(curHours);
- picker.setCurrentMinute(curMinutes);
-
- // add listeners
- addChangingListener(mins, "min");
- addChangingListener(hours, "hour");
-
- OnWheelChangedListener wheelListener = new OnWheelChangedListener() {
- @Override
- public void onChanged(WheelView wheel, int oldValue, int newValue) {
- if (!timeScrolled) {
- timeChanged = true;
- picker.setCurrentHour(hours.getCurrentItem());
- picker.setCurrentMinute(mins.getCurrentItem());
- timeChanged = false;
- }
- }
- };
- hours.addChangingListener(wheelListener);
- mins.addChangingListener(wheelListener);
-
- OnWheelClickedListener click = new OnWheelClickedListener() {
- @Override
- public void onItemClicked(WheelView wheel, int itemIndex) {
- wheel.setCurrentItem(itemIndex, true);
- }
- };
- hours.addClickingListener(click);
- mins.addClickingListener(click);
-
- OnWheelScrollListener scrollListener = new OnWheelScrollListener() {
- @Override
- public void onScrollingStarted(WheelView wheel) {
- timeScrolled = true;
- }
- @Override
- public void onScrollingFinished(WheelView wheel) {
- timeScrolled = false;
- timeChanged = true;
- picker.setCurrentHour(hours.getCurrentItem());
- picker.setCurrentMinute(mins.getCurrentItem());
- timeChanged = false;
- }
- };
-
- hours.addScrollingListener(scrollListener);
- mins.addScrollingListener(scrollListener);
-
- picker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
- @Override
- public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
- if (!timeChanged) {
- hours.setCurrentItem(hourOfDay, true);
- mins.setCurrentItem(minute, true);
- }
- }
- });
- }
-
- /**
- * Adds changing listener for wheel that updates the wheel label
- * @param wheel the wheel
- * @param label the wheel label
- */
- private void addChangingListener(final WheelView wheel, final String label) {
- wheel.addChangingListener(new OnWheelChangedListener() {
- @Override
- public void onChanged(WheelView wheel, int oldValue, int newValue) {
- //wheel.setLabel(newValue != 1 ? label + "s" : label);
- }
- });
- }
-}
+package kankan.wheel.demo.extended;
+
+import java.util.Calendar;
+
+import kankan.wheel.demo.extended.R;
+import kankan.wheel.widget.OnWheelChangedListener;
+import kankan.wheel.widget.OnWheelClickedListener;
+import kankan.wheel.widget.OnWheelScrollListener;
+import kankan.wheel.widget.WheelView;
+import kankan.wheel.widget.adapters.NumericWheelAdapter;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.widget.TimePicker;
+
+public class TimeActivity extends Activity {
+ // Time changed flag
+ private boolean timeChanged = false;
+
+ // Time scrolled flag
+ private boolean timeScrolled = false;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ setContentView(R.layout.time_layout);
+
+ final WheelView hours = (WheelView) findViewById(R.id.hour);
+ hours.setViewAdapter(new NumericWheelAdapter(this, 0, 23));
+
+ final WheelView mins = (WheelView) findViewById(R.id.mins);
+ mins.setViewAdapter(new NumericWheelAdapter(this, 0, 59, "%02d"));
+ mins.setCyclic(true);
+
+ final TimePicker picker = (TimePicker) findViewById(R.id.time);
+ picker.setIs24HourView(true);
+
+ // set current time
+ Calendar c = Calendar.getInstance();
+ int curHours = c.get(Calendar.HOUR_OF_DAY);
+ int curMinutes = c.get(Calendar.MINUTE);
+
+ hours.setCurrentItem(curHours);
+ mins.setCurrentItem(curMinutes);
+
+ picker.setCurrentHour(curHours);
+ picker.setCurrentMinute(curMinutes);
+
+ // add listeners
+ addChangingListener(mins, "min");
+ addChangingListener(hours, "hour");
+
+ OnWheelChangedListener wheelListener = new OnWheelChangedListener() {
+ @Override
+ public void onChanged(WheelView wheel, int oldValue, int newValue) {
+ if (!timeScrolled) {
+ timeChanged = true;
+ picker.setCurrentHour(hours.getCurrentItem());
+ picker.setCurrentMinute(mins.getCurrentItem());
+ timeChanged = false;
+ }
+ }
+ };
+ hours.addChangingListener(wheelListener);
+ mins.addChangingListener(wheelListener);
+
+ OnWheelClickedListener click = new OnWheelClickedListener() {
+ @Override
+ public void onItemClicked(WheelView wheel, int itemIndex) {
+ wheel.setCurrentItem(itemIndex, true);
+ }
+ };
+ hours.addClickingListener(click);
+ mins.addClickingListener(click);
+
+ OnWheelScrollListener scrollListener = new OnWheelScrollListener() {
+ @Override
+ public void onScrollingStarted(WheelView wheel) {
+ timeScrolled = true;
+ }
+ @Override
+ public void onScrollingFinished(WheelView wheel) {
+ timeScrolled = false;
+ timeChanged = true;
+ picker.setCurrentHour(hours.getCurrentItem());
+ picker.setCurrentMinute(mins.getCurrentItem());
+ timeChanged = false;
+ }
+ };
+
+ hours.addScrollingListener(scrollListener);
+ mins.addScrollingListener(scrollListener);
+
+ picker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
+ @Override
+ public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
+ if (!timeChanged) {
+ hours.setCurrentItem(hourOfDay, true);
+ mins.setCurrentItem(minute, true);
+ }
+ }
+ });
+ }
+
+ /**
+ * Adds changing listener for wheel that updates the wheel label
+ * @param wheel the wheel
+ * @param label the wheel label
+ */
+ private void addChangingListener(final WheelView wheel, final String label) {
+ wheel.addChangingListener(new OnWheelChangedListener() {
+ @Override
+ public void onChanged(WheelView wheel, int oldValue, int newValue) {
+ //wheel.setLabel(newValue != 1 ? label + "s" : label);
+ }
+ });
+ }
+}
diff --git a/wheel-demo/src/kankan/wheel/demo/extended/WheelDemo.java b/wheel-demo/app/src/main/java/kankan/wheel/demo/extended/WheelDemo.java
similarity index 96%
rename from wheel-demo/src/kankan/wheel/demo/extended/WheelDemo.java
rename to wheel-demo/app/src/main/java/kankan/wheel/demo/extended/WheelDemo.java
index 822e4ee..85ccb3f 100644
--- a/wheel-demo/src/kankan/wheel/demo/extended/WheelDemo.java
+++ b/wheel-demo/app/src/main/java/kankan/wheel/demo/extended/WheelDemo.java
@@ -1,128 +1,128 @@
-package kankan.wheel.demo.extended;
-
-import java.text.Collator;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import android.app.ListActivity;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.ListView;
-import android.widget.SimpleAdapter;
-
-public class WheelDemo extends ListActivity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- Intent intent = getIntent();
- String path = intent.getStringExtra("com.example.android.apis.Path");
-
- if (path == null) {
- path = "";
- }
-
- setListAdapter(new SimpleAdapter(this, getData(path),
- android.R.layout.simple_list_item_1, new String[] { "title" },
- new int[] { android.R.id.text1 }));
- }
-
- protected List getData(String prefix) {
- List