diff --git a/.idea/.name b/.idea/.name new file mode 100755 index 0000000..a3764fb --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +vpHerderAndroid \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100755 index 0000000..217af47 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml new file mode 100755 index 0000000..3572571 --- /dev/null +++ b/.idea/copyright/profiles_settings.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100755 index 0000000..e206d70 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/.idea/libraries/libs.xml b/.idea/libraries/libs.xml new file mode 100755 index 0000000..3978671 --- /dev/null +++ b/.idea/libraries/libs.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100755 index 0000000..933711d --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,23 @@ + + + + + + + + + + Android API 19 Platform + + + + + + + + + diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100755 index 0000000..d8feff0 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/.idea/scopes/scope_settings.xml b/.idea/scopes/scope_settings.xml new file mode 100755 index 0000000..922003b --- /dev/null +++ b/.idea/scopes/scope_settings.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100755 index 0000000..275077f --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100755 index 0000000..b3eedfa --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,344 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + localhost + 5050 + + + + + + + + + 1396781015055 + 1396781015055 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/source/.classpath b/source/.classpath old mode 100644 new mode 100755 diff --git a/source/.project b/source/.project old mode 100644 new mode 100755 diff --git a/source/.settings/org.eclipse.jdt.core.prefs b/source/.settings/org.eclipse.jdt.core.prefs old mode 100644 new mode 100755 diff --git a/source/AndroidManifest.xml b/source/AndroidManifest.xml old mode 100644 new mode 100755 diff --git a/source/bin/AndroidManifest.xml b/source/bin/AndroidManifest.xml old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/BuildConfig.class b/source/bin/classes/me/caesar2011/vpherder/BuildConfig.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/MainActivity$SectionFragment.class b/source/bin/classes/me/caesar2011/vpherder/MainActivity$SectionFragment.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/MainActivity$SectionsPagerAdapter.class b/source/bin/classes/me/caesar2011/vpherder/MainActivity$SectionsPagerAdapter.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/MainActivity.class b/source/bin/classes/me/caesar2011/vpherder/MainActivity.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/R$attr.class b/source/bin/classes/me/caesar2011/vpherder/R$attr.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/R$color.class b/source/bin/classes/me/caesar2011/vpherder/R$color.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/R$dimen.class b/source/bin/classes/me/caesar2011/vpherder/R$dimen.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/R$drawable.class b/source/bin/classes/me/caesar2011/vpherder/R$drawable.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/R$id.class b/source/bin/classes/me/caesar2011/vpherder/R$id.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/R$layout.class b/source/bin/classes/me/caesar2011/vpherder/R$layout.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/R$string.class b/source/bin/classes/me/caesar2011/vpherder/R$string.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/R$style.class b/source/bin/classes/me/caesar2011/vpherder/R$style.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/R.class b/source/bin/classes/me/caesar2011/vpherder/R.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter$AnnounceType.class b/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter$AnnounceType.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter$ViewHolder.class b/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter$ViewHolder.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter$ViewHolderALTERATION.class b/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter$ViewHolderALTERATION.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter$ViewHolderREMARK.class b/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter$ViewHolderREMARK.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter.class b/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSCreate$DownloadFilesTask.class b/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSCreate$DownloadFilesTask.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSCreate.class b/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSCreate.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncement.class b/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncement.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncementAlteration.class b/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncementAlteration.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncementRemark.class b/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncementRemark.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonChange.class b/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonChange.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonObject.class b/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonObject.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/views/PullToRefreshListView$HeaderViewHolder.class b/source/bin/classes/me/caesar2011/vpherder/views/PullToRefreshListView$HeaderViewHolder.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/views/PullToRefreshListView$RefreshState.class b/source/bin/classes/me/caesar2011/vpherder/views/PullToRefreshListView$RefreshState.class old mode 100644 new mode 100755 diff --git a/source/bin/classes/me/caesar2011/vpherder/views/PullToRefreshListView.class b/source/bin/classes/me/caesar2011/vpherder/views/PullToRefreshListView.class old mode 100644 new mode 100755 diff --git a/source/bin/jarlist.cache b/source/bin/jarlist.cache old mode 100644 new mode 100755 diff --git a/source/gen/me/caesar2011/vpherder/BuildConfig.java b/source/gen/me/caesar2011/vpherder/BuildConfig.java old mode 100644 new mode 100755 index b223a62..a2184a7 --- a/source/gen/me/caesar2011/vpherder/BuildConfig.java +++ b/source/gen/me/caesar2011/vpherder/BuildConfig.java @@ -1,6 +1,8 @@ -/** Automatically generated file. DO NOT MODIFY */ +/*___Generated_by_IDEA___*/ + package me.caesar2011.vpherder; +/* This stub is only used by the IDE. It is NOT the BuildConfig class actually packed into the APK */ public final class BuildConfig { - public final static boolean DEBUG = true; + public final static boolean DEBUG = Boolean.parseBoolean(null); } \ No newline at end of file diff --git a/source/gen/me/caesar2011/vpherder/Manifest.java b/source/gen/me/caesar2011/vpherder/Manifest.java new file mode 100755 index 0000000..013c669 --- /dev/null +++ b/source/gen/me/caesar2011/vpherder/Manifest.java @@ -0,0 +1,7 @@ +/*___Generated_by_IDEA___*/ + +package me.caesar2011.vpherder; + +/* This stub is only used by the IDE. It is NOT the Manifest class actually packed into the APK */ +public final class Manifest { +} \ No newline at end of file diff --git a/source/gen/me/caesar2011/vpherder/R.java b/source/gen/me/caesar2011/vpherder/R.java old mode 100644 new mode 100755 diff --git a/source/ic_launcher-web.png b/source/ic_launcher-web.png old mode 100644 new mode 100755 diff --git a/source/libs/.classpath b/source/libs/.classpath new file mode 100755 index 0000000..7bc01d9 --- /dev/null +++ b/source/libs/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/source/libs/.project b/source/libs/.project new file mode 100755 index 0000000..d85c35e --- /dev/null +++ b/source/libs/.project @@ -0,0 +1,33 @@ + + + vpHerder + + + + + + 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 + + diff --git a/source/libs/.settings/org.eclipse.jdt.core.prefs b/source/libs/.settings/org.eclipse.jdt.core.prefs new file mode 100755 index 0000000..b080d2d --- /dev/null +++ b/source/libs/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/source/libs/AndroidManifest.xml b/source/libs/AndroidManifest.xml new file mode 100755 index 0000000..84404c7 --- /dev/null +++ b/source/libs/AndroidManifest.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + diff --git a/source/libs/android-support-v4.jar b/source/libs/android-support-v4.jar old mode 100644 new mode 100755 diff --git a/source/libs/bin/AndroidManifest.xml b/source/libs/bin/AndroidManifest.xml new file mode 100755 index 0000000..84404c7 --- /dev/null +++ b/source/libs/bin/AndroidManifest.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/BuildConfig.class b/source/libs/bin/classes/me/caesar2011/vpherder/BuildConfig.class new file mode 100755 index 0000000..38b3d87 Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/BuildConfig.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/MainActivity$SectionFragment.class b/source/libs/bin/classes/me/caesar2011/vpherder/MainActivity$SectionFragment.class new file mode 100755 index 0000000..2a85b09 Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/MainActivity$SectionFragment.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/MainActivity$SectionsPagerAdapter.class b/source/libs/bin/classes/me/caesar2011/vpherder/MainActivity$SectionsPagerAdapter.class new file mode 100755 index 0000000..d652266 Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/MainActivity$SectionsPagerAdapter.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/MainActivity.class b/source/libs/bin/classes/me/caesar2011/vpherder/MainActivity.class new file mode 100755 index 0000000..03f8ac5 Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/MainActivity.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/R$attr.class b/source/libs/bin/classes/me/caesar2011/vpherder/R$attr.class new file mode 100755 index 0000000..b2adfa9 Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/R$attr.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/R$color.class b/source/libs/bin/classes/me/caesar2011/vpherder/R$color.class new file mode 100755 index 0000000..9cbbd21 Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/R$color.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/R$dimen.class b/source/libs/bin/classes/me/caesar2011/vpherder/R$dimen.class new file mode 100755 index 0000000..4968d6e Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/R$dimen.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/R$drawable.class b/source/libs/bin/classes/me/caesar2011/vpherder/R$drawable.class new file mode 100755 index 0000000..11cd409 Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/R$drawable.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/R$id.class b/source/libs/bin/classes/me/caesar2011/vpherder/R$id.class new file mode 100755 index 0000000..7582d8b Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/R$id.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/R$layout.class b/source/libs/bin/classes/me/caesar2011/vpherder/R$layout.class new file mode 100755 index 0000000..235c711 Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/R$layout.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/R$string.class b/source/libs/bin/classes/me/caesar2011/vpherder/R$string.class new file mode 100755 index 0000000..e42de36 Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/R$string.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/R$style.class b/source/libs/bin/classes/me/caesar2011/vpherder/R$style.class new file mode 100755 index 0000000..1fa8510 Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/R$style.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/R.class b/source/libs/bin/classes/me/caesar2011/vpherder/R.class new file mode 100755 index 0000000..a3e93de Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/R.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter$AnnounceType.class b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter$AnnounceType.class new file mode 100755 index 0000000..d39b40c Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter$AnnounceType.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter$ViewHolder.class b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter$ViewHolder.class new file mode 100755 index 0000000..9ff2f80 Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter$ViewHolder.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter$ViewHolderALTERATION.class b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter$ViewHolderALTERATION.class new file mode 100755 index 0000000..d457fb5 Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter$ViewHolderALTERATION.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter$ViewHolderREMARK.class b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter$ViewHolderREMARK.class new file mode 100755 index 0000000..f7343f5 Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter$ViewHolderREMARK.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter.class b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter.class new file mode 100755 index 0000000..12aa9f0 Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSCreate$DownloadFilesTask.class b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSCreate$DownloadFilesTask.class new file mode 100755 index 0000000..5f89c75 Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSCreate$DownloadFilesTask.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSCreate.class b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSCreate.class new file mode 100755 index 0000000..d107fd2 Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSCreate.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncement.class b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncement.class new file mode 100755 index 0000000..af92f9d Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncement.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncementAlteration.class b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncementAlteration.class new file mode 100755 index 0000000..60e1553 Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncementAlteration.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncementRemark.class b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncementRemark.class new file mode 100755 index 0000000..7a6c00d Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncementRemark.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonChange.class b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonChange.class new file mode 100755 index 0000000..beca991 Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonChange.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonObject.class b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonObject.class new file mode 100755 index 0000000..d2f0698 Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSjsonObject.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/views/PullToRefreshListView$HeaderViewHolder.class b/source/libs/bin/classes/me/caesar2011/vpherder/views/PullToRefreshListView$HeaderViewHolder.class new file mode 100755 index 0000000..0268da3 Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/views/PullToRefreshListView$HeaderViewHolder.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/views/PullToRefreshListView$RefreshState.class b/source/libs/bin/classes/me/caesar2011/vpherder/views/PullToRefreshListView$RefreshState.class new file mode 100755 index 0000000..cba516e Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/views/PullToRefreshListView$RefreshState.class differ diff --git a/source/libs/bin/classes/me/caesar2011/vpherder/views/PullToRefreshListView.class b/source/libs/bin/classes/me/caesar2011/vpherder/views/PullToRefreshListView.class new file mode 100755 index 0000000..b5eb1bc Binary files /dev/null and b/source/libs/bin/classes/me/caesar2011/vpherder/views/PullToRefreshListView.class differ diff --git a/source/libs/bin/jarlist.cache b/source/libs/bin/jarlist.cache new file mode 100755 index 0000000..0565465 --- /dev/null +++ b/source/libs/bin/jarlist.cache @@ -0,0 +1,3 @@ +# cache for current jar dependency. DO NOT EDIT. +# format is +# Encoding is UTF-8 diff --git a/source/libs/commons-io-2.4.jar b/source/libs/commons-io-2.4.jar old mode 100644 new mode 100755 diff --git a/source/libs/gen/me/caesar2011/vpherder/BuildConfig.java b/source/libs/gen/me/caesar2011/vpherder/BuildConfig.java new file mode 100755 index 0000000..a2184a7 --- /dev/null +++ b/source/libs/gen/me/caesar2011/vpherder/BuildConfig.java @@ -0,0 +1,8 @@ +/*___Generated_by_IDEA___*/ + +package me.caesar2011.vpherder; + +/* This stub is only used by the IDE. It is NOT the BuildConfig class actually packed into the APK */ +public final class BuildConfig { + public final static boolean DEBUG = Boolean.parseBoolean(null); +} \ No newline at end of file diff --git a/source/libs/gen/me/caesar2011/vpherder/Manifest.java b/source/libs/gen/me/caesar2011/vpherder/Manifest.java new file mode 100755 index 0000000..013c669 --- /dev/null +++ b/source/libs/gen/me/caesar2011/vpherder/Manifest.java @@ -0,0 +1,7 @@ +/*___Generated_by_IDEA___*/ + +package me.caesar2011.vpherder; + +/* This stub is only used by the IDE. It is NOT the Manifest class actually packed into the APK */ +public final class Manifest { +} \ No newline at end of file diff --git a/source/libs/gen/me/caesar2011/vpherder/R.java b/source/libs/gen/me/caesar2011/vpherder/R.java new file mode 100755 index 0000000..bf25772 --- /dev/null +++ b/source/libs/gen/me/caesar2011/vpherder/R.java @@ -0,0 +1,103 @@ +/* AUTO-GENERATED FILE. DO NOT MODIFY. + * + * This class was automatically generated by the + * aapt tool from the resource data it found. It + * should not be modified by hand. + */ + +package me.caesar2011.vpherder; + +public final class R { + public static final class attr { + } + public static final class color { + public static final int block=0x7f040002; + public static final int cancelled=0x7f040004; + public static final int fragment_background=0x7f040003; + public static final int subject=0x7f040000; + public static final int teacher=0x7f040001; + } + public static final class dimen { + /** Default screen margins, per the Android Design guidelines. + + Customize dimensions originally defined in res/values/dimens.xml (such as + screen margins) for sw720dp devices (e.g. 10" tablets) in landscape here. + + */ + public static final int activity_horizontal_margin=0x7f050000; + public static final int activity_vertical_margin=0x7f050001; + } + public static final class drawable { + public static final int ic_launcher=0x7f020000; + } + public static final class id { + public static final int box_subject=0x7f080008; + public static final int cancelbar=0x7f08000f; + public static final int changes=0x7f080007; + public static final int listview=0x7f080003; + public static final int main=0x7f080005; + public static final int pager=0x7f080000; + public static final int pager_title_strip=0x7f080001; + public static final int remark=0x7f08000e; + public static final int section_label=0x7f080002; + public static final int subject=0x7f080009; + public static final int subject_subinfo=0x7f08000a; + public static final int teacher=0x7f080006; + public static final int text=0x7f080004; + public static final int textview_from=0x7f08000b; + public static final int textview_to=0x7f08000d; + public static final int to_arrow=0x7f08000c; + } + public static final class layout { + public static final int activity_main=0x7f030000; + public static final int fragment_main_dummy=0x7f030001; + public static final int fragment_teacher_substitution=0x7f030002; + public static final int pull_to_refresh_header=0x7f030003; + public static final int teacher_substitution_change=0x7f030004; + public static final int teacher_substitution_row_alteration=0x7f030005; + public static final int teacher_substitution_row_remark=0x7f030006; + } + public static final class string { + public static final int action_settings=0x7f060007; + public static final int app_name=0x7f060004; + public static final int pull_to_refresh_aborting_label=0x7f060003; + public static final int pull_to_refresh_pull_label=0x7f060000; + public static final int pull_to_refresh_refreshing_label=0x7f060002; + public static final int pull_to_refresh_release_label=0x7f060001; + public static final int title_section1=0x7f060005; + public static final int title_section2=0x7f060006; + public static final int to_arrow=0x7f060008; + } + public static final class style { + /** + Base application theme, dependent on API level. This theme is replaced + by AppBaseTheme from res/values-vXX/styles.xml on newer devices. + + + Theme customizations available in newer API levels can go in + res/values-vXX/styles.xml, while customizations related to + backward-compatibility can go here. + + + Base application theme for API 11+. This theme completely replaces + AppBaseTheme from res/values/styles.xml on API 11+ devices. + + API 11 theme customizations can go here. + + Base application theme for API 14+. This theme completely replaces + AppBaseTheme from BOTH res/values/styles.xml and + res/values-v11/styles.xml on API 14+ devices. + + API 14 theme customizations can go here. + */ + public static final int AppBaseTheme=0x7f070000; + /** Application theme. + All customizations that are NOT specific to a particular API-level can go here. + */ + public static final int AppTheme=0x7f070005; + public static final int TextSize_Large=0x7f070002; + public static final int TextSize_Medium=0x7f070003; + public static final int TextSize_Small=0x7f070004; + public static final int TextSize_VeryLarge=0x7f070001; + } +} diff --git a/source/libs/ic_launcher-web.png b/source/libs/ic_launcher-web.png new file mode 100755 index 0000000..e8519c6 Binary files /dev/null and b/source/libs/ic_launcher-web.png differ diff --git a/source/libs/libs/android-support-v4.jar b/source/libs/libs/android-support-v4.jar new file mode 100755 index 0000000..9056828 Binary files /dev/null and b/source/libs/libs/android-support-v4.jar differ diff --git a/source/libs/libs/commons-io-2.4.jar b/source/libs/libs/commons-io-2.4.jar new file mode 100755 index 0000000..90035a4 Binary files /dev/null and b/source/libs/libs/commons-io-2.4.jar differ diff --git a/source/libs/proguard-project.txt b/source/libs/proguard-project.txt new file mode 100755 index 0000000..f2fe155 --- /dev/null +++ b/source/libs/proguard-project.txt @@ -0,0 +1,20 @@ +# To enable ProGuard in your project, edit project.properties +# to define the proguard.config property as described in that file. +# +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in ${sdk.dir}/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the ProGuard +# include property in project.properties. +# +# 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/source/libs/project.properties b/source/libs/project.properties new file mode 100755 index 0000000..4ab1256 --- /dev/null +++ b/source/libs/project.properties @@ -0,0 +1,14 @@ +# 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 + +# Project target. +target=android-19 diff --git a/source/libs/raw/images/pull_arrow.xcf b/source/libs/raw/images/pull_arrow.xcf new file mode 100755 index 0000000..e7345d8 Binary files /dev/null and b/source/libs/raw/images/pull_arrow.xcf differ diff --git a/source/libs/res/drawable-hdpi/ic_launcher.png b/source/libs/res/drawable-hdpi/ic_launcher.png new file mode 100755 index 0000000..bffed76 Binary files /dev/null and b/source/libs/res/drawable-hdpi/ic_launcher.png differ diff --git a/source/libs/res/drawable-mdpi/ic_launcher.png b/source/libs/res/drawable-mdpi/ic_launcher.png new file mode 100755 index 0000000..08eeec7 Binary files /dev/null and b/source/libs/res/drawable-mdpi/ic_launcher.png differ diff --git a/source/libs/res/drawable-xhdpi/ic_launcher.png b/source/libs/res/drawable-xhdpi/ic_launcher.png new file mode 100755 index 0000000..b147441 Binary files /dev/null and b/source/libs/res/drawable-xhdpi/ic_launcher.png differ diff --git a/source/libs/res/drawable-xxhdpi/ic_launcher.png b/source/libs/res/drawable-xxhdpi/ic_launcher.png new file mode 100755 index 0000000..19df53e Binary files /dev/null and b/source/libs/res/drawable-xxhdpi/ic_launcher.png differ diff --git a/source/libs/res/layout/activity_main.xml b/source/libs/res/layout/activity_main.xml new file mode 100755 index 0000000..65125b6 --- /dev/null +++ b/source/libs/res/layout/activity_main.xml @@ -0,0 +1,23 @@ + + + + + + + diff --git a/source/libs/res/layout/fragment_main_dummy.xml b/source/libs/res/layout/fragment_main_dummy.xml new file mode 100755 index 0000000..668926b --- /dev/null +++ b/source/libs/res/layout/fragment_main_dummy.xml @@ -0,0 +1,17 @@ + + + + + diff --git a/source/libs/res/layout/fragment_teacher_substitution.xml b/source/libs/res/layout/fragment_teacher_substitution.xml new file mode 100755 index 0000000..2db47be --- /dev/null +++ b/source/libs/res/layout/fragment_teacher_substitution.xml @@ -0,0 +1,7 @@ + + diff --git a/source/libs/res/layout/pull_to_refresh_header.xml b/source/libs/res/layout/pull_to_refresh_header.xml new file mode 100755 index 0000000..e6eee66 --- /dev/null +++ b/source/libs/res/layout/pull_to_refresh_header.xml @@ -0,0 +1,31 @@ + + + + + + \ No newline at end of file diff --git a/source/libs/res/layout/teacher_substitution_change.xml b/source/libs/res/layout/teacher_substitution_change.xml new file mode 100755 index 0000000..902a282 --- /dev/null +++ b/source/libs/res/layout/teacher_substitution_change.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/source/libs/res/layout/teacher_substitution_row_alteration.xml b/source/libs/res/layout/teacher_substitution_row_alteration.xml new file mode 100755 index 0000000..20e69ff --- /dev/null +++ b/source/libs/res/layout/teacher_substitution_row_alteration.xml @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/libs/res/layout/teacher_substitution_row_remark.xml b/source/libs/res/layout/teacher_substitution_row_remark.xml new file mode 100755 index 0000000..36d1263 --- /dev/null +++ b/source/libs/res/layout/teacher_substitution_row_remark.xml @@ -0,0 +1,11 @@ + + + + \ No newline at end of file diff --git a/source/libs/res/values-sw600dp/dimens.xml b/source/libs/res/values-sw600dp/dimens.xml new file mode 100755 index 0000000..44f01db --- /dev/null +++ b/source/libs/res/values-sw600dp/dimens.xml @@ -0,0 +1,8 @@ + + + + + diff --git a/source/libs/res/values-sw720dp-land/dimens.xml b/source/libs/res/values-sw720dp-land/dimens.xml new file mode 100755 index 0000000..61e3fa8 --- /dev/null +++ b/source/libs/res/values-sw720dp-land/dimens.xml @@ -0,0 +1,9 @@ + + + + 128dp + + diff --git a/source/libs/res/values-v11/styles.xml b/source/libs/res/values-v11/styles.xml new file mode 100755 index 0000000..3c02242 --- /dev/null +++ b/source/libs/res/values-v11/styles.xml @@ -0,0 +1,11 @@ + + + + + + diff --git a/source/libs/res/values-v14/styles.xml b/source/libs/res/values-v14/styles.xml new file mode 100755 index 0000000..a91fd03 --- /dev/null +++ b/source/libs/res/values-v14/styles.xml @@ -0,0 +1,12 @@ + + + + + + diff --git a/source/libs/res/values/colors.xml b/source/libs/res/values/colors.xml new file mode 100755 index 0000000..f0bf918 --- /dev/null +++ b/source/libs/res/values/colors.xml @@ -0,0 +1,8 @@ + + + #d34937 + #000 + #888 + #fff + #f00 + diff --git a/source/libs/res/values/dimens.xml b/source/libs/res/values/dimens.xml new file mode 100755 index 0000000..55c1e59 --- /dev/null +++ b/source/libs/res/values/dimens.xml @@ -0,0 +1,7 @@ + + + + 16dp + 16dp + + diff --git a/source/libs/res/values/pull_to_refresh_strings.xml b/source/libs/res/values/pull_to_refresh_strings.xml new file mode 100755 index 0000000..783afb9 --- /dev/null +++ b/source/libs/res/values/pull_to_refresh_strings.xml @@ -0,0 +1,7 @@ + + + Ziehen zum Aktualisieren… + Loslassen zum Aktualisieren… + Aktualisieren… + Aktualisieren abbrechen… + diff --git a/source/libs/res/values/strings.xml b/source/libs/res/values/strings.xml new file mode 100755 index 0000000..b4a4815 --- /dev/null +++ b/source/libs/res/values/strings.xml @@ -0,0 +1,9 @@ + + + vpHerder + Heute + Einstellungen + Menü + + + diff --git a/source/libs/res/values/styles.xml b/source/libs/res/values/styles.xml new file mode 100755 index 0000000..4af71c4 --- /dev/null +++ b/source/libs/res/values/styles.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + diff --git a/source/libs/src/me/caesar2011/vpherder/MainActivity.java b/source/libs/src/me/caesar2011/vpherder/MainActivity.java new file mode 100755 index 0000000..f2fbc6a --- /dev/null +++ b/source/libs/src/me/caesar2011/vpherder/MainActivity.java @@ -0,0 +1,125 @@ +package me.caesar2011.vpherder; + +import java.util.Locale; + +import me.caesar2011.vpherder.teachersubstitution.TSCreate; + +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentActivity; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentPagerAdapter; +import android.support.v4.view.ViewPager; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +public class MainActivity extends FragmentActivity { + + /** + * The {@link android.support.v4.view.PagerAdapter} that will provide + * fragments for each of the sections. We use a + * {@link android.support.v4.app.FragmentPagerAdapter} derivative, which + * will keep every loaded fragment in memory. If this becomes too memory + * intensive, it may be best to switch to a + * {@link android.support.v4.app.FragmentStatePagerAdapter}. + */ + SectionsPagerAdapter mSectionsPagerAdapter; + + /** + * The {@link ViewPager} that will host the section contents. + */ + ViewPager mViewPager; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + // TSCreate the adapter that will return a fragment for each of the three + // primary sections of the app. + mSectionsPagerAdapter = new SectionsPagerAdapter( + getSupportFragmentManager()); + + // Set up the ViewPager with the sections adapter. + mViewPager = (ViewPager) findViewById(R.id.pager); + mViewPager.setAdapter(mSectionsPagerAdapter); + + } + + /** + * A {@link FragmentPagerAdapter} that returns a fragment corresponding to + * one of the sections/tabs/pages. + */ + public class SectionsPagerAdapter extends FragmentPagerAdapter { + + public SectionsPagerAdapter(FragmentManager fm) { + super(fm); + } + + @Override + public Fragment getItem(int position) { + // getItem is called to instantiate the fragment for the given page. + // Return a SectionFragment (defined as a static inner class + // below) with the page number as its lone argument. + Fragment fragment = new SectionFragment(); + Bundle args = new Bundle(); + args.putInt(SectionFragment.ARG_SECTION_NUMBER, position + 1); + fragment.setArguments(args); + return fragment; + } + + @Override + public int getCount() { + // Show 2 total pages. + return 2; + } + + @Override + public CharSequence getPageTitle(int position) { + Locale l = Locale.getDefault(); + switch (position) { + case 0: + return getString(R.string.title_section1).toUpperCase(l); // teacher substitution today + case 1: + return getString(R.string.title_section2).toUpperCase(l); //settings + } + return null; + } + } + + /** + * A dummy fragment representing a section of the app, but that simply + * displays dummy text. + */ + public static class SectionFragment extends Fragment { + /** + * The fragment argument representing the section number for this + * fragment. + */ + public static final String ARG_SECTION_NUMBER = "section_number"; + + public SectionFragment() { + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + int page = getArguments().getInt(ARG_SECTION_NUMBER); + if (page == 1) { + return (new TSCreate(getActivity(), inflater, container)).Draw(); + } + + // TODO delete this code + View rootView = inflater.inflate(R.layout.fragment_main_dummy, + container, false); + TextView dummyTextView = (TextView) rootView + .findViewById(R.id.section_label); + dummyTextView.setText(Integer.toString(getArguments().getInt( + ARG_SECTION_NUMBER))); + return rootView; + } + } + +} diff --git a/source/libs/src/me/caesar2011/vpherder/teachersubstitution/TSAdapter.java b/source/libs/src/me/caesar2011/vpherder/teachersubstitution/TSAdapter.java new file mode 100755 index 0000000..9d0cabb --- /dev/null +++ b/source/libs/src/me/caesar2011/vpherder/teachersubstitution/TSAdapter.java @@ -0,0 +1,110 @@ +/** + * + */ +package me.caesar2011.vpherder.teachersubstitution; + +import java.util.ArrayList; + +import me.caesar2011.vpherder.R; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.RelativeLayout; +import android.widget.TextView; + +/** + * @author BastiLapTop + * + */ +public class TSAdapter extends ArrayAdapter { + + private ArrayList mData = new ArrayList(); + private final LayoutInflater mInflater; + + public TSAdapter(Context context, int textViewResourceId, + ArrayList objects) { + super(context, textViewResourceId, objects); + mData = objects; + mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + } + + @Override + public int getCount() { + return mData.size(); + } + + @Override + public TSjsonAnnouncement getItem(int position) { + return mData.get(position); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public int getItemViewType(int position) { + // TODO Optimize + if (mData.get(position) instanceof TSjsonAnnouncementRemark) { + return AnnounceType.REMARK; + } else { + return AnnounceType.ALTERATION; + } + } + + @Override + public int getViewTypeCount() { + return AnnounceType.count; + } + + public View getView(int position, View convertView, ViewGroup parent) { + ViewHolder holder = null; + int type = getItemViewType(position); + if (convertView == null || convertView.getTag() == null) { + switch (type) { + case AnnounceType.REMARK: + convertView = mInflater.inflate(R.layout.teacher_substitution_row_remark, null); + break; + case AnnounceType.ALTERATION: + convertView = mInflater.inflate(R.layout.teacher_substitution_row_alteration, null); + break; + } + holder = mData.get(position).createHolder(convertView); + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + // (Re-)fill view with new data + mData.get(position).refillView(holder); + return convertView; + } + + + // SUB CLASSES + + static class AnnounceType { + public static final int REMARK = 0; + public static final int ALTERATION = 1; + public static final int count = 2; + } + + public static class ViewHolder {} + + public static class ViewHolderREMARK extends ViewHolder { + public TextView text; + } + + public static class ViewHolderALTERATION extends ViewHolder { + public TextView teacher; + public TextView subject; + public TextView subject_subinfo; + public TextView changes_from; + public TextView changes_to; + public TextView remark; + public View cancelbar; + public RelativeLayout changes; + } +} diff --git a/source/libs/src/me/caesar2011/vpherder/teachersubstitution/TSCreate.java b/source/libs/src/me/caesar2011/vpherder/teachersubstitution/TSCreate.java new file mode 100755 index 0000000..4995878 --- /dev/null +++ b/source/libs/src/me/caesar2011/vpherder/teachersubstitution/TSCreate.java @@ -0,0 +1,128 @@ +/** + * + */ +package me.caesar2011.vpherder.teachersubstitution; + +import java.io.IOException; +import java.io.InputStream; +import java.io.StringWriter; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLConnection; +import java.util.ArrayList; + +import me.caesar2011.vpherder.R; +import me.caesar2011.vpherder.views.PullToRefreshListView; +import me.caesar2011.vpherder.views.PullToRefreshListView.OnRefreshListener; + +import org.apache.commons.io.IOUtils; +import org.json.JSONException; + +import android.app.Activity; +import android.os.AsyncTask; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +/** + * Class to organize the drawings of the teacher substition. + * + * @author BastiLapTop + * + */ +public class TSCreate { + + private final Activity activity; + private final LayoutInflater inflater; + private final ViewGroup container; + private static TSjsonObject JsonObject; + private boolean downloadStarted; + private TSAdapter adapter; + private PullToRefreshListView listview; + + /** + * Constructor + */ + public TSCreate(Activity activity, LayoutInflater inflater, ViewGroup container) { + this.activity = activity; + this.inflater = inflater; + this.container = container; + this.downloadStarted = false; + + if(JsonObject == null){ + StartDownload(); + } + } + + public View Draw() { + View rootView = inflater.inflate(R.layout.fragment_teacher_substitution, + container, false); + + listview = (PullToRefreshListView) rootView.findViewById(R.id.listview); + listview.setOnRefreshListener(new OnRefreshListener() { + + @Override + public void onRefresh() { + StartDownload(); + } + + }); + System.out.println(JsonObject); + adapter = new TSAdapter(activity, + R.layout.teacher_substitution_row_remark, (JsonObject!=null)?JsonObject.announcements:(new ArrayList())); + listview.setAdapter(adapter); + return rootView; + } + + public void StartDownload() { + if (!downloadStarted) { + downloadStarted = true; + try { + URL url = new URL("https://vpherder.canis.uberspace.de/example.json"); + DownloadFilesTask downloadSubstitutions = new DownloadFilesTask(); + downloadSubstitutions.execute(url); + } catch (MalformedURLException e) { + downloadStarted = false; + } + } + } + + public void FinishDownload() { + downloadStarted = false; + adapter.clear(); + adapter.addAll(JsonObject.announcements); + adapter.notifyDataSetChanged(); + listview.onRefreshComplete(); + } + + private class DownloadFilesTask extends AsyncTask { + + protected String doInBackground(URL... urls) { + String file = ""; + URL url = urls[0]; + URLConnection connection; + try { + connection = url.openConnection(); + InputStream inputStream = connection.getInputStream(); + + StringWriter writer = new StringWriter(); + IOUtils.copy(inputStream, writer, "UTF-8"); + file = writer.toString(); + } catch (IOException e) { + } + return file; + } + + protected void onProgressUpdate(Integer... progress) { + //setProgressPercent(progress[0]); + } + + protected void onPostExecute(String result) { + try { + JsonObject = new TSjsonObject(result); + } catch (JSONException e) { + } + FinishDownload(); + } + } +} diff --git a/source/libs/src/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncement.java b/source/libs/src/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncement.java new file mode 100755 index 0000000..4ab1953 --- /dev/null +++ b/source/libs/src/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncement.java @@ -0,0 +1,31 @@ +package me.caesar2011.vpherder.teachersubstitution; + +import me.caesar2011.vpherder.teachersubstitution.TSAdapter.ViewHolder; + +import org.json.JSONException; +import org.json.JSONObject; + +import android.view.View; + +public class TSjsonAnnouncement { + + public final String type; + + /** + * @param jsonObject + * @throws JSONException + */ + public TSjsonAnnouncement(JSONObject jsonObject) throws JSONException { + // TODO Auto-generated constructor stub + this.type = jsonObject.getString("type"); + } + + public void refillView(ViewHolder holder) { + + } + + public ViewHolder createHolder(View convertView) { + return null; + } + +} diff --git a/source/libs/src/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncementAlteration.java b/source/libs/src/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncementAlteration.java new file mode 100755 index 0000000..50a0806 --- /dev/null +++ b/source/libs/src/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncementAlteration.java @@ -0,0 +1,120 @@ +/** + * + */ +package me.caesar2011.vpherder.teachersubstitution; + +import java.util.ArrayList; +import java.util.Iterator; + +import me.caesar2011.vpherder.R; +import me.caesar2011.vpherder.teachersubstitution.TSAdapter.ViewHolder; +import me.caesar2011.vpherder.teachersubstitution.TSAdapter.ViewHolderALTERATION; + +import org.json.JSONException; +import org.json.JSONObject; + +import android.view.View; +import android.widget.RelativeLayout; +import android.widget.TextView; + +/** + * @author BastiLapTop + * + */ +public class TSjsonAnnouncementAlteration extends TSjsonAnnouncement { + + public final int time; + public final String form; + public final String teacher; + public final String subject; + public final boolean cancelled; + public final ArrayList changes; + public final String remark; + + /** + * @param jsonObject + * @throws JSONException + */ + public TSjsonAnnouncementAlteration(JSONObject jsonObject) + throws JSONException { + super(jsonObject); + this.time = jsonObject.getInt("time"); + this.form = jsonObject.getString("form"); + this.teacher = jsonObject.getString("teacher"); + this.subject = jsonObject.getString("class"); + this.cancelled = jsonObject.getBoolean("cancelled"); + + this.changes = new ArrayList(); + JSONObject jObject = jsonObject.getJSONObject("changes"); + Iterator i = jObject.keys(); + + while(i.hasNext()){ + String key = (String)i.next(); + if(jObject.get(key) instanceof JSONObject){ + jObject.getJSONObject(key); + TSjsonChange jChanges = new TSjsonChange(key, + jObject.getJSONObject(key).getString("old"), + jObject.getJSONObject(key).getString("new")); + this.changes.add(jChanges); + } + } + this.remark = jsonObject.optString("remark"); + } + + @Override + public void refillView(ViewHolder holder) { + ViewHolderALTERATION holdAlteration = (ViewHolderALTERATION) holder; + holdAlteration.teacher.setText(teacher); + holdAlteration.subject.setText(subject); + holdAlteration.subject_subinfo.setText(time + " - " + form); + + String sFrom = ""; + String sTo = ""; + Iterator i = changes.iterator(); + while (i.hasNext()) { + TSjsonChange jChange = i.next(); + if (!sFrom.equals("")) { + sFrom += "\n"; + sTo += "\n"; + } + sFrom += jChange.oldValue; + sTo += jChange.newValue; + } + holdAlteration.changes_from.setText(sFrom); + holdAlteration.changes_to.setText(sTo); + + if (remark.equals("false")) { + holdAlteration.remark.setVisibility(View.GONE); + } else { + holdAlteration.remark.setVisibility(View.VISIBLE); + holdAlteration.remark.setText(remark); + } + + if (sFrom.equals("")) { + holdAlteration.changes.setVisibility(View.GONE); + } else { + holdAlteration.changes.setVisibility(View.VISIBLE); + } + + if (cancelled) { + holdAlteration.cancelbar.setVisibility(View.VISIBLE); + } else { + holdAlteration.cancelbar.setVisibility(View.GONE); + } + } + + @Override + public ViewHolder createHolder(View convertView) { + ViewHolderALTERATION holder = new ViewHolderALTERATION(); + holder.teacher = (TextView)convertView.findViewById(R.id.teacher); + holder.subject = (TextView)convertView.findViewById(R.id.subject); + holder.subject_subinfo = (TextView)convertView.findViewById(R.id.subject_subinfo); + holder.changes_from = (TextView)convertView.findViewById(R.id.textview_from); + holder.changes_to = (TextView)convertView.findViewById(R.id.textview_to); + holder.remark = (TextView)convertView.findViewById(R.id.remark); + holder.cancelbar = (View)convertView.findViewById(R.id.cancelbar); + holder.changes = (RelativeLayout)convertView.findViewById(R.id.changes); + return holder; + } + +} diff --git a/source/libs/src/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncementRemark.java b/source/libs/src/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncementRemark.java new file mode 100755 index 0000000..d4f64fa --- /dev/null +++ b/source/libs/src/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncementRemark.java @@ -0,0 +1,46 @@ +/** + * + */ +package me.caesar2011.vpherder.teachersubstitution; + +import me.caesar2011.vpherder.R; +import me.caesar2011.vpherder.teachersubstitution.TSAdapter.ViewHolder; +import me.caesar2011.vpherder.teachersubstitution.TSAdapter.ViewHolderREMARK; + +import org.json.JSONException; +import org.json.JSONObject; + +import android.view.View; +import android.widget.TextView; + +/** + * @author BastiLapTop + * + */ +public class TSjsonAnnouncementRemark extends TSjsonAnnouncement { + + public final String text; + + /** + * @param jsonObject + * @throws JSONException + */ + public TSjsonAnnouncementRemark(JSONObject jsonObject) throws JSONException { + super(jsonObject); + this.text = jsonObject.optString("text"); + } + + @Override + public void refillView(ViewHolder holder) { + ViewHolderREMARK holdRemark = (ViewHolderREMARK) holder; + holdRemark.text.setText(text); + } + + @Override + public ViewHolder createHolder(View convertView) { + ViewHolderREMARK holder = new ViewHolderREMARK(); + holder.text = (TextView)convertView.findViewById(R.id.text); + return holder; + } + +} diff --git a/source/libs/src/me/caesar2011/vpherder/teachersubstitution/TSjsonChange.java b/source/libs/src/me/caesar2011/vpherder/teachersubstitution/TSjsonChange.java new file mode 100755 index 0000000..859cbbf --- /dev/null +++ b/source/libs/src/me/caesar2011/vpherder/teachersubstitution/TSjsonChange.java @@ -0,0 +1,27 @@ +/** + * + */ +package me.caesar2011.vpherder.teachersubstitution; + + +/** + * @author BastiLapTop + * + */ +public class TSjsonChange { + + public final String name; + public final String oldValue; + public final String newValue; + + /** + * + */ + public TSjsonChange(String name, String oldValue, String newValue) { + // TODO Auto-generated constructor stub + this.name = name; + this.oldValue = oldValue; + this.newValue = newValue; + } + +} diff --git a/source/libs/src/me/caesar2011/vpherder/teachersubstitution/TSjsonObject.java b/source/libs/src/me/caesar2011/vpherder/teachersubstitution/TSjsonObject.java new file mode 100755 index 0000000..e1c0b0d --- /dev/null +++ b/source/libs/src/me/caesar2011/vpherder/teachersubstitution/TSjsonObject.java @@ -0,0 +1,77 @@ +/** + * + */ +package me.caesar2011.vpherder.teachersubstitution; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.Locale; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +/** + * The hole json object witch handles version, date, creation/modified time, etc. ... + * And it holds a list of all announcements. + * + * @author BastiLapTop + * + */ +public class TSjsonObject { + + public final String version; + public final Date date; + public final Date created; + public final Date modified; + public final ArrayList announcements; + + + /** + * @param jsonObject + * @throws JSONException + */ + public TSjsonObject(JSONObject jsonObject) throws JSONException { + // TODO Auto-generated constructor stub + this.version = jsonObject.getString("version"); + + try { + this.date = new SimpleDateFormat("yyyy-MM-dd", Locale.GERMANY).parse(jsonObject.getString("date")); + } catch (ParseException e) { + throw new JSONException("Date could not be converted. ParseExeption."); + } + + try { + this.created = new Date(Long.parseLong(jsonObject.getString("created")) * 1000); + } catch (NumberFormatException e) { + throw new JSONException("Created could not be converted. NumberFormatException."); + } + + try { + this.modified = new Date(Long.parseLong(jsonObject.getString("modified")) * 1000); + } catch (NumberFormatException e) { + throw new JSONException("Modified could not be converted. NumberFormatException."); + } + + JSONArray jArray = jsonObject.getJSONArray("announcements"); + JSONObject jObject = null; + this.announcements = new ArrayList(); + for (int i = 0; i < jArray.length(); i++) { + jObject = jArray.getJSONObject(i); + if (jObject.getString("type").equals("alteration")) { + this.announcements.add(new TSjsonAnnouncementAlteration(jObject)); + } else { + this.announcements.add(new TSjsonAnnouncementRemark(jObject)); + } + } + } + + public TSjsonObject(String jsonString) throws JSONException { + this(new JSONObject(jsonString)); + } + + + +} diff --git a/source/libs/src/me/caesar2011/vpherder/views/PullToRefreshListView.java b/source/libs/src/me/caesar2011/vpherder/views/PullToRefreshListView.java new file mode 100755 index 0000000..731142f --- /dev/null +++ b/source/libs/src/me/caesar2011/vpherder/views/PullToRefreshListView.java @@ -0,0 +1,187 @@ +package me.caesar2011.vpherder.views; + +import me.caesar2011.vpherder.R; +import android.content.Context; +import android.util.AttributeSet; +import android.util.DisplayMetrics; +import android.view.LayoutInflater; +import android.view.MotionEvent; +import android.view.View; +import android.widget.AbsListView; +import android.widget.AbsListView.OnScrollListener; +import android.widget.ListView; +import android.widget.TextView; + +public class PullToRefreshListView extends ListView implements OnScrollListener { + + private float mStartX; + private float mStartY; + private int mRefreshState; + private LayoutInflater mInflater; + private View mHeaderView; + private HeaderViewHolder mHeaderViewHolder; + private int mLastTopVisiblePos; + private OnRefreshListener mOnRefreshListener; + + private static final int PULL_DOWN_LIMIT = (int) Math.round(0.75 * DisplayMetrics.DENSITY_DEFAULT); + + public PullToRefreshListView(Context context) { + super(context); + init(context); + } + + public PullToRefreshListView(Context context, AttributeSet attrs) { + super(context, attrs); + init(context); + } + + public PullToRefreshListView(Context context, AttributeSet attrs, + int defStyle) { + super(context, attrs, defStyle); + init(context); + } + + public void init(Context context) { + super.setOnScrollListener(this); + + mInflater = (LayoutInflater) context.getSystemService( + Context.LAYOUT_INFLATER_SERVICE); + mHeaderView = mInflater.inflate(R.layout.pull_to_refresh_header, null); + mHeaderViewHolder = new HeaderViewHolder(mHeaderView); + addHeaderView(mHeaderView); + System.out.println("k"+mHeaderView); + + mRefreshState = RefreshState.PULL_TO_REFRESH; + } + + @Override + public void onScroll(AbsListView arg0, int arg1, int arg2, int arg3) { + // TODO Auto-generated method stub + + } + + @Override + public void onScrollStateChanged(AbsListView arg0, int arg1) { + // TODO Auto-generated method stub + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + boolean isHandled = false; + + if (event.getAction() == MotionEvent.ACTION_DOWN || mLastTopVisiblePos == 1) { + int refreshBoxHeight = (int) ((mRefreshState == RefreshState.REFRESHING)?PULL_DOWN_LIMIT:1); + mStartX = event.getRawX(); + mStartY = event.getRawY()-refreshBoxHeight; + mHeaderViewHolder.setVisibility(View.VISIBLE); + mHeaderView.setLayoutParams(new LayoutParams(mHeaderView.getLayoutParams().width, refreshBoxHeight)); + } + if (event.getRawY()-mStartY > Math.abs(event.getRawX()-mStartX) && getFirstVisiblePosition() == 0) { + int stretch = (int) Math.max(0, event.getRawY()-mStartY); + mHeaderView.setLayoutParams(new LayoutParams(mHeaderView.getLayoutParams().width, stretch)); + if (mRefreshState == RefreshState.PULL_TO_REFRESH && stretch > PULL_DOWN_LIMIT) { + mRefreshState = RefreshState.RELEASE_TO_REFRESH; + mHeaderViewHolder.setRefreshingState(mRefreshState); + } else if (mRefreshState == RefreshState.RELEASE_TO_REFRESH && stretch <= PULL_DOWN_LIMIT) { + mRefreshState = RefreshState.PULL_TO_REFRESH; + mHeaderViewHolder.setRefreshingState(mRefreshState); + } else if (mRefreshState == RefreshState.ABORTING && stretch > PULL_DOWN_LIMIT) { + mRefreshState = RefreshState.RELEASE_TO_REFRESH; + mHeaderViewHolder.setRefreshingState(mRefreshState); + } else if (mRefreshState == RefreshState.REFRESHING && stretch <= PULL_DOWN_LIMIT/2) { + mRefreshState = RefreshState.ABORTING; + mHeaderViewHolder.setRefreshingState(mRefreshState); + } + isHandled = true; + } + + if (event.getAction() == MotionEvent.ACTION_UP) { + isHandled = false; + switch (mRefreshState) { + case RefreshState.PULL_TO_REFRESH: + mHeaderViewHolder.setVisibility(View.GONE); + mHeaderView.setLayoutParams(new LayoutParams(mHeaderView.getLayoutParams().width, 0)); + break; + case RefreshState.RELEASE_TO_REFRESH: + Refresh(); + break; + case RefreshState.REFRESHING: + mHeaderView.setLayoutParams(new LayoutParams(mHeaderView.getLayoutParams().width, PULL_DOWN_LIMIT)); + break; + case RefreshState.ABORTING: + mHeaderViewHolder.setVisibility(View.GONE); + mRefreshState = RefreshState.PULL_TO_REFRESH; + mHeaderViewHolder.setRefreshingState(mRefreshState); + mHeaderView.setLayoutParams(new LayoutParams(mHeaderView.getLayoutParams().width, 0)); + break; + } + } + mLastTopVisiblePos = getFirstVisiblePosition(); + return isHandled?true:super.onTouchEvent(event); + } + + private class HeaderViewHolder { + public final View mParent; + public final TextView mText; + + public HeaderViewHolder(View HeaderView) { + mParent = HeaderView; + mText = (TextView) HeaderView.findViewById(R.id.text); + } + + public void setVisibility(int visibility) { + mParent.setVisibility(visibility); + mText.setVisibility(visibility); + } + + public void setRefreshingState(int refreshState) { + switch (refreshState){ + case RefreshState.PULL_TO_REFRESH: + mText.setText(R.string.pull_to_refresh_pull_label); + break; + case RefreshState.RELEASE_TO_REFRESH: + mText.setText(R.string.pull_to_refresh_release_label); + break; + case RefreshState.REFRESHING: + mText.setText(R.string.pull_to_refresh_refreshing_label); + break; + case RefreshState.ABORTING: + mText.setText(R.string.pull_to_refresh_aborting_label); + break; + } + } + } + + private static class RefreshState { + public static final int PULL_TO_REFRESH = 1; + public static final int RELEASE_TO_REFRESH = 2; + public static final int REFRESHING = 3; + public static final int ABORTING = 4; + } + + public void Refresh() { + mHeaderViewHolder.setVisibility(View.VISIBLE); + mRefreshState = RefreshState.REFRESHING; + mHeaderViewHolder.setRefreshingState(mRefreshState); + mHeaderView.setLayoutParams(new LayoutParams(mHeaderView.getLayoutParams().width, PULL_DOWN_LIMIT)); + System.out.print("onRefresh"); + if (mOnRefreshListener != null) { + mOnRefreshListener.onRefresh(); + } + } + + public void setOnRefreshListener(OnRefreshListener onRefreshListener) { + mOnRefreshListener = onRefreshListener; + } + + public void onRefreshComplete() { + mHeaderViewHolder.setVisibility(View.GONE); + mRefreshState = RefreshState.PULL_TO_REFRESH; + mHeaderViewHolder.setRefreshingState(mRefreshState); + mHeaderView.setLayoutParams(new LayoutParams(mHeaderView.getLayoutParams().width, 0)); + } + + public interface OnRefreshListener { + public void onRefresh(); + } +} diff --git a/source/libs/vpHerderAndroid.iml b/source/libs/vpHerderAndroid.iml new file mode 100755 index 0000000..32f50c7 --- /dev/null +++ b/source/libs/vpHerderAndroid.iml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/source/proguard-project.txt b/source/proguard-project.txt old mode 100644 new mode 100755 diff --git a/source/project.properties b/source/project.properties old mode 100644 new mode 100755 diff --git a/source/raw/images/pull_arrow.xcf b/source/raw/images/pull_arrow.xcf old mode 100644 new mode 100755 diff --git a/source/res/drawable-hdpi/ic_launcher.png b/source/res/drawable-hdpi/ic_launcher.png old mode 100644 new mode 100755 diff --git a/source/res/drawable-mdpi/ic_launcher.png b/source/res/drawable-mdpi/ic_launcher.png old mode 100644 new mode 100755 diff --git a/source/res/drawable-xhdpi/ic_launcher.png b/source/res/drawable-xhdpi/ic_launcher.png old mode 100644 new mode 100755 diff --git a/source/res/drawable-xxhdpi/ic_launcher.png b/source/res/drawable-xxhdpi/ic_launcher.png old mode 100644 new mode 100755 diff --git a/source/res/layout/activity_main.xml b/source/res/layout/activity_main.xml old mode 100644 new mode 100755 diff --git a/source/res/layout/fragment_main_dummy.xml b/source/res/layout/fragment_main_dummy.xml old mode 100644 new mode 100755 diff --git a/source/res/layout/fragment_teacher_substitution.xml b/source/res/layout/fragment_teacher_substitution.xml old mode 100644 new mode 100755 diff --git a/source/res/layout/pull_to_refresh_header.xml b/source/res/layout/pull_to_refresh_header.xml old mode 100644 new mode 100755 diff --git a/source/res/layout/teacher_substitution_change.xml b/source/res/layout/teacher_substitution_change.xml old mode 100644 new mode 100755 diff --git a/source/res/layout/teacher_substitution_row_alteration.xml b/source/res/layout/teacher_substitution_row_alteration.xml old mode 100644 new mode 100755 diff --git a/source/res/layout/teacher_substitution_row_remark.xml b/source/res/layout/teacher_substitution_row_remark.xml old mode 100644 new mode 100755 diff --git a/source/res/values-sw600dp/dimens.xml b/source/res/values-sw600dp/dimens.xml old mode 100644 new mode 100755 diff --git a/source/res/values-sw720dp-land/dimens.xml b/source/res/values-sw720dp-land/dimens.xml old mode 100644 new mode 100755 diff --git a/source/res/values-v11/styles.xml b/source/res/values-v11/styles.xml old mode 100644 new mode 100755 diff --git a/source/res/values-v14/styles.xml b/source/res/values-v14/styles.xml old mode 100644 new mode 100755 diff --git a/source/res/values/colors.xml b/source/res/values/colors.xml old mode 100644 new mode 100755 diff --git a/source/res/values/dimens.xml b/source/res/values/dimens.xml old mode 100644 new mode 100755 diff --git a/source/res/values/pull_to_refresh_strings.xml b/source/res/values/pull_to_refresh_strings.xml old mode 100644 new mode 100755 diff --git a/source/res/values/strings.xml b/source/res/values/strings.xml old mode 100644 new mode 100755 diff --git a/source/res/values/styles.xml b/source/res/values/styles.xml old mode 100644 new mode 100755 diff --git a/source/src/me/caesar2011/vpherder/MainActivity.java b/source/src/me/caesar2011/vpherder/MainActivity.java old mode 100644 new mode 100755 diff --git a/source/src/me/caesar2011/vpherder/teachersubstitution/TSAdapter.java b/source/src/me/caesar2011/vpherder/teachersubstitution/TSAdapter.java old mode 100644 new mode 100755 diff --git a/source/src/me/caesar2011/vpherder/teachersubstitution/TSCreate.java b/source/src/me/caesar2011/vpherder/teachersubstitution/TSCreate.java old mode 100644 new mode 100755 diff --git a/source/src/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncement.java b/source/src/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncement.java old mode 100644 new mode 100755 diff --git a/source/src/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncementAlteration.java b/source/src/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncementAlteration.java old mode 100644 new mode 100755 diff --git a/source/src/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncementRemark.java b/source/src/me/caesar2011/vpherder/teachersubstitution/TSjsonAnnouncementRemark.java old mode 100644 new mode 100755 diff --git a/source/src/me/caesar2011/vpherder/teachersubstitution/TSjsonChange.java b/source/src/me/caesar2011/vpherder/teachersubstitution/TSjsonChange.java old mode 100644 new mode 100755 diff --git a/source/src/me/caesar2011/vpherder/teachersubstitution/TSjsonObject.java b/source/src/me/caesar2011/vpherder/teachersubstitution/TSjsonObject.java old mode 100644 new mode 100755 diff --git a/source/src/me/caesar2011/vpherder/views/PullToRefreshListView.java b/source/src/me/caesar2011/vpherder/views/PullToRefreshListView.java old mode 100644 new mode 100755 diff --git a/source/vpHerderAndroid.iml b/source/vpHerderAndroid.iml new file mode 100755 index 0000000..32f50c7 --- /dev/null +++ b/source/vpHerderAndroid.iml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + +