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 @@ + xmlns:app="http://schemas.android.com/apk/res-auto"> + + \ 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(); } }