diff --git a/Habitica/AndroidManifest.xml b/Habitica/AndroidManifest.xml
index 6b89c9a30..d063b72e0 100644
--- a/Habitica/AndroidManifest.xml
+++ b/Habitica/AndroidManifest.xml
@@ -2,32 +2,32 @@
+ android:versionName="0.0.1">
+
-
-
+ android:theme="@style/AppTheme">
+ android:label="@string/app_name"
+ android:windowSoftInputMode="stateHidden|adjustResize">
@@ -36,7 +36,7 @@
+ android:label="@string/PS_param_title">
@@ -44,7 +44,7 @@
+ android:windowSoftInputMode="adjustResize">
@@ -53,7 +53,7 @@
+ android:label="Habitica Simple Widget">
@@ -72,15 +72,10 @@
- android:theme="@style/CustomTheme">
-
-
-
+
diff --git a/Habitica/Habitica.iml b/Habitica/Habitica.iml
index 863b3d596..029faa35e 100644
--- a/Habitica/Habitica.iml
+++ b/Habitica/Habitica.iml
@@ -81,9 +81,11 @@
+
+
@@ -106,50 +108,52 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Habitica/assets/paperboy/changelog.json b/Habitica/assets/paperboy/changelog.json
new file mode 100644
index 000000000..947399e15
--- /dev/null
+++ b/Habitica/assets/paperboy/changelog.json
@@ -0,0 +1,31 @@
+[
+ {
+ "name": "Verison 0.0.2",
+ "items": [
+ {
+ "type": "F",
+ "title": "Ability to add / edit / delete / check Checklists!"
+ },
+ {
+ "type": "B",
+ "title": "Fixed crash while the device is offline"
+ },
+ {
+ "type": "B",
+ "title": "Fixed loading user data, where the tags property was an array instead of an object"
+ },
+ {
+ "type": "I",
+ "title": "Added About and Changelog Views"
+ },
+ {
+ "type": "I",
+ "title": "Animate the value changes in the Bars (HP, MP, XP)"
+ },
+ {
+ "type": "N",
+ "title": "Removed the Changelog Dialog"
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/Habitica/build.gradle b/Habitica/build.gradle
index 64476716e..6896836b7 100644
--- a/Habitica/build.gradle
+++ b/Habitica/build.gradle
@@ -26,6 +26,10 @@ repositories {
maven {
url "http://dl.bintray.com/florent37/maven"
}
+
+ maven {
+ url "https://jitpack.io"
+ }
}
dependencies {
@@ -60,7 +64,16 @@ dependencies {
compile 'com.rengwuxian.materialedittext:library:2.1.4'
// Instabug / In-App-Feedback
- compile 'com.instabug.library:instabugsupport:1+'
+ compile 'com.instabug.library:instabugsupport:+'
+
+ // Changelog Fragment, minSDK 17
+ //compile 'com.github.porokoro.paperboy:paperboy:1.0.0'
+ compile 'com.github.negue:paperboy:0d4e14bbb5'
+
+ // About View for all dependent Libraries, where are using
+ compile('com.mikepenz:aboutlibraries:5.0.5@aar') {
+ transitive = true
+ }
}
android {
diff --git a/Habitica/res/layout/activity_about.xml b/Habitica/res/layout/activity_about.xml
new file mode 100644
index 000000000..11d4c28cc
--- /dev/null
+++ b/Habitica/res/layout/activity_about.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Habitica/res/menu/main.xml b/Habitica/res/menu/main.xml
index 5936847d6..cba015c1c 100644
--- a/Habitica/res/menu/main.xml
+++ b/Habitica/res/menu/main.xml
@@ -1,23 +1,29 @@
\ No newline at end of file
diff --git a/Habitica/src/com/habitrpg/android/habitica/AboutActivity.java b/Habitica/src/com/habitrpg/android/habitica/AboutActivity.java
new file mode 100644
index 000000000..ecf9198c6
--- /dev/null
+++ b/Habitica/src/com/habitrpg/android/habitica/AboutActivity.java
@@ -0,0 +1,144 @@
+package com.habitrpg.android.habitica;
+
+import android.os.Bundle;
+import android.support.design.widget.TabLayout;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentStatePagerAdapter;
+import android.support.v4.view.ViewPager;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.AppCompatActivity;
+import android.view.MenuItem;
+
+import com.github.porokoro.paperboy.PaperboyFragment;
+import com.github.porokoro.paperboy.Themes;
+import com.github.porokoro.paperboy.ViewTypes;
+import com.mikepenz.aboutlibraries.Libs;
+import com.mikepenz.aboutlibraries.LibsBuilder;
+
+import butterknife.ButterKnife;
+import butterknife.InjectView;
+
+public class AboutActivity extends AppCompatActivity {
+
+ @InjectView(R.id.pager)
+ ViewPager pager;
+
+ @InjectView(R.id.tab_layout)
+ TabLayout tabLayout;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_about);
+
+ ButterKnife.inject(this);
+
+ ActionBar actionBar = getSupportActionBar();
+
+ if (actionBar != null) {
+ actionBar.setTitle(R.string.about_title);
+ actionBar.setDisplayHomeAsUpEnabled(true);
+ actionBar.setDisplayShowHomeEnabled(false);
+ actionBar.setDisplayShowTitleEnabled(true);
+ actionBar.setDisplayUseLogoEnabled(false);
+ actionBar.setHomeButtonEnabled(false);
+ }
+
+ tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
+
+ final PagerAdapter adapter = new PagerAdapter(getSupportFragmentManager(), 2);
+ pager.setAdapter(adapter);
+ pager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
+
+ tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
+ @Override
+ public void onTabSelected(TabLayout.Tab tab) {
+ pager.setCurrentItem(tab.getPosition());
+ }
+
+ @Override
+ public void onTabUnselected(TabLayout.Tab tab) {
+
+ }
+
+ @Override
+ public void onTabReselected(TabLayout.Tab tab) {
+
+ }
+ });
+
+ tabLayout.setTabsFromPagerAdapter(adapter);
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ // Handle action bar item clicks here. The action bar will
+ // automatically handle clicks on the Home/Up button, so long
+ // as you specify a parent activity in AndroidManifest.xml.
+ int id = item.getItemId();
+
+ //noinspection SimplifiableIfStatement
+ if (id == android.R.id.home) {
+ finish();
+ return true;
+ }
+
+ return super.onOptionsItemSelected(item);
+ }
+
+ private class PagerAdapter extends FragmentStatePagerAdapter {
+ int mNumOfTabs;
+
+ public PagerAdapter(FragmentManager fm, int NumOfTabs) {
+ super(fm);
+ this.mNumOfTabs = NumOfTabs;
+ }
+
+ @Override
+ public Fragment getItem(int position) {
+
+ switch (position) {
+ case 0:
+ Fragment tab1 = new LibsBuilder()
+ //Pass the fields of your application to the lib so it can find all external lib information
+ .withFields(R.string.class.getFields())
+ //provide a style (optional) (LIGHT, DARK, LIGHT_DARK_TOOLBAR)
+ .withActivityStyle(Libs.ActivityStyle.LIGHT_DARK_TOOLBAR)
+ .withAboutAppName(getString(R.string.app_name))
+ .withAboutDescription("Used Libraries
")
+ .withAboutIconShown(true)
+ .withAboutVersionShown(true)
+ .withAboutVersionShownCode(true)
+ .withAboutVersionShownName(true)
+ .withAnimations(true)
+ .fragment();
+
+ return tab1;
+ case 1:
+ PaperboyFragment tab2 = new PaperboyFragment.Builder(AboutActivity.this)
+ .setTheme(Themes.DARK)
+ .setViewType(ViewTypes.HEADER)
+ .setFile("paperboy/changelog.json")
+ .build();
+
+ return tab2;
+ default:
+ return null;
+ }
+ }
+
+ @Override
+ public CharSequence getPageTitle(int position) {
+ if(position == 0)
+ return getString(R.string.about_title);
+
+ return getString(R.string.about_changelog);
+ }
+
+ @Override
+ public int getCount() {
+ return mNumOfTabs;
+ }
+ }
+}
diff --git a/Habitica/src/com/habitrpg/android/habitica/MainActivityNew.java b/Habitica/src/com/habitrpg/android/habitica/MainActivityNew.java
index 55b6b5e59..87dc16858 100644
--- a/Habitica/src/com/habitrpg/android/habitica/MainActivityNew.java
+++ b/Habitica/src/com/habitrpg/android/habitica/MainActivityNew.java
@@ -1,5 +1,6 @@
package com.habitrpg.android.habitica;
+import android.content.Intent;
import android.databinding.DataBindingUtil;
import android.graphics.Color;
import android.os.Bundle;
@@ -47,6 +48,8 @@ import butterknife.ButterKnife;
import butterknife.InjectView;
public class MainActivityNew extends InstabugAppCompatActivity {
+ static final int ABOUT = 12;
+
//region View Elements
@InjectView(R.id.materialViewPager)
MaterialViewPager materialViewPager;
@@ -61,9 +64,6 @@ public class MainActivityNew extends InstabugAppCompatActivity {
List TaskList = new ArrayList();
-
- Random r = new Random();
-
// just to test the view
public static HabitRPGUser User = null;
@@ -138,7 +138,7 @@ public class MainActivityNew extends InstabugAppCompatActivity {
new DividerDrawerItem(),
new SecondaryDrawerItem().withName("News"),
new SecondaryDrawerItem().withName("Settings"),
- new SecondaryDrawerItem().withName("About")
+ new SecondaryDrawerItem().withName("About").withIdentifier(ABOUT)
)
.withHeader(sidebarHeaderView)
@@ -149,6 +149,13 @@ public class MainActivityNew extends InstabugAppCompatActivity {
public boolean onItemClick(AdapterView> parent, View view, int position, long id, IDrawerItem drawerItem) {
// do something with the clicked item :D
+ switch (drawerItem.getIdentifier()) {
+ case ABOUT:
+ startActivity(new Intent(MainActivityNew.this, AboutActivity.class));
+
+ return false;
+ }
+
return true;
}
})
diff --git a/Habitica/src/com/habitrpg/android/habitica/prefs/PrefsActivity.java b/Habitica/src/com/habitrpg/android/habitica/prefs/PrefsActivity.java
index c235bf700..5887bb1b8 100644
--- a/Habitica/src/com/habitrpg/android/habitica/prefs/PrefsActivity.java
+++ b/Habitica/src/com/habitrpg/android/habitica/prefs/PrefsActivity.java
@@ -4,7 +4,6 @@ import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.List;
-import com.habitrpg.android.habitica.ChangeLogDialog;
import com.habitrpg.android.habitica.HostConfig;
import com.habitrpg.android.habitica.R;
@@ -53,8 +52,8 @@ public class PrefsActivity extends PreferenceActivity {
addPreferencesFromResource(R.xml.app_prefs_cat2);
this.findPreference(this.getString(R.string.SP_last_seen_version)).setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
- ChangeLogDialog _ChangelogDialog = new ChangeLogDialog(PrefsActivity.this);
- _ChangelogDialog.show();
+ //ChangeLogDialog _ChangelogDialog = new ChangeLogDialog(PrefsActivity.this);
+ //_ChangelogDialog.show( getSupportFragmentManager());
return false;
}
});
@@ -86,8 +85,8 @@ public class PrefsActivity extends PreferenceActivity {
public void onHeaderClick(Header header, int position) {
super.onHeaderClick(header, position);
if (header.id == R.id.show_changelog) {
- ChangeLogDialog _ChangelogDialog = new ChangeLogDialog(PrefsActivity.this);
- _ChangelogDialog.show();
+ //ChangeLogDialog _ChangelogDialog = new ChangeLogDialog(PrefsActivity.this);
+ //_ChangelogDialog.show();
}
}