diff --git a/Habitica/AndroidManifest.xml b/Habitica/AndroidManifest.xml
index 5aeda4e9a..d36a69485 100644
--- a/Habitica/AndroidManifest.xml
+++ b/Habitica/AndroidManifest.xml
@@ -65,6 +65,11 @@
android:label="@string/app_name"
android:screenOrientation="portrait">
+
+
diff --git a/Habitica/assets/migrations/Habitica/28.sql b/Habitica/assets/migrations/Habitica/28.sql
new file mode 100644
index 000000000..31235203d
--- /dev/null
+++ b/Habitica/assets/migrations/Habitica/28.sql
@@ -0,0 +1 @@
+ALTER TABLE Items ADD COLUMN 'special_id' INTEGER;
\ No newline at end of file
diff --git a/Habitica/build.gradle b/Habitica/build.gradle
index 31f6af158..4e4b3c61e 100644
--- a/Habitica/build.gradle
+++ b/Habitica/build.gradle
@@ -12,7 +12,7 @@ buildscript {
dependencies {
classpath 'io.fabric.tools:gradle:1.21.5'
classpath 'me.tatarka:gradle-retrolambda:3.2.5'
- classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.4.4'
+ classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.6.1'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
classpath 'com.jakewharton.hugo:hugo-plugin:1.2.1'
}
@@ -171,8 +171,6 @@ android {
debuggable true
// Disable fabric build ID generation for debug builds
ext.enableCrashlytics = false
- multiDexEnabled true
-
resValue "string", "content_provider", "com.habitrpg.android.habitica.debug.fileprovider"
resValue "string", "app_name", "Habitica Debug"
}
diff --git a/Habitica/res/layout/activity_skill_members.xml b/Habitica/res/layout/activity_skill_members.xml
new file mode 100644
index 000000000..ae8b57eba
--- /dev/null
+++ b/Habitica/res/layout/activity_skill_members.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Habitica/res/layout/skill_list_item.xml b/Habitica/res/layout/skill_list_item.xml
index d572528b8..48c43de4b 100644
--- a/Habitica/res/layout/skill_list_item.xml
+++ b/Habitica/res/layout/skill_list_item.xml
@@ -1,34 +1,35 @@
+ android:layout_height="wrap_content">
+
+ android:orientation="horizontal">
+ android:orientation="vertical">
+ android:textAppearance="?android:attr/textAppearanceLarge" />
+ android:background="@color/brand_100"
+ android:drawableLeft="@drawable/ic_header_magic"
+ android:drawableStart="@drawable/ic_header_magic"
+ android:paddingLeft="16dp"
+ android:paddingStart="16dp"
+ android:paddingRight="24dp"
+ android:paddingEnd="24dp"
+ android:textColor="@android:color/white" />
\ No newline at end of file
diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml
index 4a66ad065..234899388 100644
--- a/Habitica/res/values/strings.xml
+++ b/Habitica/res/values/strings.xml
@@ -133,6 +133,7 @@
%d MP
You used %1$s for %2$d mana.
+ You used %1$s.
new checklist item
Add
@@ -413,5 +414,6 @@ To start, which parts of your life do you want to improve?
Habitica Do Habit
Habitica Dailies
Habitica Add Task
+ use
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/HabitDatabase.java b/Habitica/src/main/java/com/habitrpg/android/habitica/HabitDatabase.java
index 83a45a18c..85b321c93 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/HabitDatabase.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/HabitDatabase.java
@@ -7,5 +7,5 @@ public class HabitDatabase {
public static final String NAME = "Habitica";
- public static final int VERSION = 27;
+ public static final int VERSION = 28;
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/components/AppComponent.java b/Habitica/src/main/java/com/habitrpg/android/habitica/components/AppComponent.java
index 14faffe08..e15232b84 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/components/AppComponent.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/components/AppComponent.java
@@ -17,6 +17,7 @@ import com.habitrpg.android.habitica.ui.activities.MaintenanceActivity;
import com.habitrpg.android.habitica.ui.activities.PartyInviteActivity;
import com.habitrpg.android.habitica.ui.activities.PrefsActivity;
import com.habitrpg.android.habitica.ui.activities.SetupActivity;
+import com.habitrpg.android.habitica.ui.activities.SkillMemberActivity;
import com.habitrpg.android.habitica.ui.activities.SkillTasksActivity;
import com.habitrpg.android.habitica.ui.activities.TaskFormActivity;
import com.habitrpg.android.habitica.ui.fragments.GemsPurchaseFragment;
@@ -90,6 +91,8 @@ public interface AppComponent {
void inject(SkillTasksActivity skillTasksActivity);
+ void inject(SkillMemberActivity skillMembersActivity);
+
void inject(TaskFormActivity taskFormActivity);
void inject(TasksFragment tasksFragment);
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/events/commands/SelectMemberCommand.java b/Habitica/src/main/java/com/habitrpg/android/habitica/events/commands/SelectMemberCommand.java
new file mode 100644
index 000000000..2d25e8488
--- /dev/null
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/events/commands/SelectMemberCommand.java
@@ -0,0 +1,9 @@
+package com.habitrpg.android.habitica.events.commands;
+
+public class SelectMemberCommand {
+ public String MemberId;
+
+ public SelectMemberCommand(String memberId){
+ MemberId = memberId;
+ }
+}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SkillMemberActivity.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SkillMemberActivity.java
new file mode 100644
index 000000000..8c37b3d59
--- /dev/null
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SkillMemberActivity.java
@@ -0,0 +1,83 @@
+package com.habitrpg.android.habitica.ui.activities;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+
+import com.habitrpg.android.habitica.APIHelper;
+import com.habitrpg.android.habitica.R;
+import com.habitrpg.android.habitica.components.AppComponent;
+import com.habitrpg.android.habitica.events.commands.SelectMemberCommand;
+import com.habitrpg.android.habitica.ui.adapter.social.PartyMemberRecyclerViewAdapter;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+
+import javax.inject.Inject;
+
+import butterknife.BindView;
+
+public class SkillMemberActivity extends BaseActivity {
+
+ private PartyMemberRecyclerViewAdapter viewAdapter;
+
+ @BindView(R.id.recyclerView)
+ RecyclerView recyclerView;
+
+ @Inject
+ public APIHelper apiHelper;
+
+ @Override
+ protected int getLayoutResId() {
+ return R.layout.activity_skill_members;
+ }
+
+ @Override
+ protected void injectActivity(AppComponent component) {
+ component.inject(this);
+ }
+
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ EventBus.getDefault().register(this);
+
+ loadMemberList();
+ }
+
+ private void loadMemberList() {
+
+ recyclerView.setLayoutManager(new LinearLayoutManager(this));
+ viewAdapter = new PartyMemberRecyclerViewAdapter();
+ viewAdapter.context = this;
+ recyclerView.setAdapter(viewAdapter);
+
+ apiHelper.apiService.getGroup("party")
+ .compose(this.apiHelper.configureApiCallObserver())
+ .subscribe(group -> {
+ if (group == null) {
+ return;
+ }
+
+ apiHelper.apiService.getGroupMembers(group.id, true)
+ .compose(apiHelper.configureApiCallObserver())
+ .subscribe(members -> {
+ viewAdapter.setMemberList(members, true);
+ },
+ throwable -> {
+ });
+ },
+ throwable -> {
+ });
+ }
+
+ @Subscribe
+ public void onEvent(SelectMemberCommand evt){
+ Intent resultIntent = new Intent();
+ resultIntent.putExtra("member_id", evt.MemberId);
+ setResult(Activity.RESULT_OK, resultIntent);
+ finish();
+ }
+}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/SkillsRecyclerViewAdapter.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/SkillsRecyclerViewAdapter.java
index 0113eb9ac..907a5b5b6 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/SkillsRecyclerViewAdapter.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/SkillsRecyclerViewAdapter.java
@@ -89,7 +89,15 @@ public class SkillsRecyclerViewAdapter extends RecyclerView.Adapter mana) {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/PartyMemberRecyclerViewAdapter.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/PartyMemberRecyclerViewAdapter.java
index c2dfff0d6..fbf80b6b1 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/PartyMemberRecyclerViewAdapter.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/PartyMemberRecyclerViewAdapter.java
@@ -3,14 +3,13 @@ package com.habitrpg.android.habitica.ui.adapter.social;
import com.habitrpg.android.habitica.R;
import com.habitrpg.android.habitica.databinding.ValueBarBinding;
import com.habitrpg.android.habitica.events.commands.OpenFullProfileCommand;
+import com.habitrpg.android.habitica.events.commands.SelectMemberCommand;
import com.habitrpg.android.habitica.ui.AvatarView;
import com.habitrpg.android.habitica.ui.AvatarWithBarsViewModel;
-import com.habitrpg.android.habitica.ui.activities.SetupActivity;
import com.habitrpg.android.habitica.ui.helpers.ViewHelper;
import com.magicmicky.habitrpgwrapper.lib.models.HabitRPGUser;
import android.content.Context;
-import android.content.Intent;
import android.content.res.Resources;
import android.databinding.DataBindingUtil;
import android.support.v4.content.ContextCompat;
@@ -32,9 +31,11 @@ public class PartyMemberRecyclerViewAdapter extends RecyclerView.Adapter memberList;
+ private boolean isMemberSelection;
- public void setMemberList(List memberList) {
+ public void setMemberList(List memberList, boolean isMemberSelection) {
this.memberList = memberList;
+ this.isMemberSelection = isMemberSelection;
this.notifyDataSetChanged();
}
@@ -129,9 +130,15 @@ public class PartyMemberRecyclerViewAdapter extends RecyclerView.Adapter {
- OpenFullProfileCommand cmd = new OpenFullProfileCommand(user.getId());
+ if (isMemberSelection) {
+ SelectMemberCommand cmd = new SelectMemberCommand(user.getId());
- EventBus.getDefault().post(cmd);
+ EventBus.getDefault().post(cmd);
+ } else {
+ OpenFullProfileCommand cmd = new OpenFullProfileCommand(user.getId());
+
+ EventBus.getDefault().post(cmd);
+ }
});
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/skills/SkillsFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/skills/SkillsFragment.java
index b55083df3..dcc223116 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/skills/SkillsFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/skills/SkillsFragment.java
@@ -6,12 +6,14 @@ import com.habitrpg.android.habitica.callbacks.SkillCallback;
import com.habitrpg.android.habitica.components.AppComponent;
import com.habitrpg.android.habitica.events.SkillUsedEvent;
import com.habitrpg.android.habitica.events.commands.UseSkillCommand;
+import com.habitrpg.android.habitica.ui.activities.SkillMemberActivity;
import com.habitrpg.android.habitica.ui.activities.SkillTasksActivity;
import com.habitrpg.android.habitica.ui.adapter.SkillsRecyclerViewAdapter;
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment;
import com.habitrpg.android.habitica.ui.helpers.UiUtils;
import com.magicmicky.habitrpgwrapper.lib.models.HabitRPGUser;
import com.magicmicky.habitrpgwrapper.lib.models.Skill;
+import com.magicmicky.habitrpgwrapper.lib.models.SpecialItems;
import com.magicmicky.habitrpgwrapper.lib.models.responses.SkillResponse;
import com.raizlabs.android.dbflow.sql.builder.Condition;
import com.raizlabs.android.dbflow.sql.language.Select;
@@ -37,6 +39,8 @@ import rx.Observable;
public class SkillsFragment extends BaseMainFragment {
private final int TASK_SELECTION_ACTIVITY = 10;
+ private final int MEMBER_SELECTION_ACTIVITY = 11;
+
@BindView(R.id.recyclerView)
RecyclerView mRecyclerView;
SkillsRecyclerViewAdapter adapter;
@@ -86,6 +90,42 @@ public class SkillsFragment extends BaseMainFragment {
.and(Condition.column("lvl").lessThanOrEq(user.getStats().getLvl()))
.queryList();
adapter.setSkillList(skills);
+
+
+ SpecialItems specialItems = this.user.getItems().getSpecial();
+ if (specialItems != null) {
+ Condition.In specialsWhere = Condition.column("key").in("");
+
+ if (specialItems.getSnowball() > 1) {
+ specialsWhere.and("snowball");
+ }
+
+ if (specialItems.getShinySeed() > 1) {
+ specialsWhere.and("shinySeed");
+ }
+
+ if (specialItems.getSeafoam() > 1) {
+ specialsWhere.and("seafoam");
+ }
+
+ if (specialItems.getSpookySparkles() > 1) {
+ specialsWhere.and("spookySparkles");
+ }
+
+ List specials = new Select()
+ .from(Skill.class)
+ .where(specialsWhere)
+ .queryList();
+
+ for (Skill item : specials) {
+ item.isSpecialItem = true;
+ item.target = "party";
+
+ skills.add(item);
+ }
+ }
+
+ adapter.setSkillList(skills);
}
@Override
@@ -98,7 +138,12 @@ public class SkillsFragment extends BaseMainFragment {
@Subscribe
public void onEvent(UseSkillCommand command) {
Skill skill = command.skill;
- if (skill.target.equals("task")) {
+
+ if (skill.isSpecialItem) {
+ selectedSkill = skill;
+ Intent intent = new Intent(activity, SkillMemberActivity.class);
+ startActivityForResult(intent, MEMBER_SELECTION_ACTIVITY);
+ } else if (skill.target.equals("task")) {
selectedSkill = skill;
Intent intent = new Intent(activity, SkillTasksActivity.class);
startActivityForResult(intent, TASK_SELECTION_ACTIVITY);
@@ -113,7 +158,12 @@ public class SkillsFragment extends BaseMainFragment {
Skill skill = event.usedSkill;
adapter.setMana(event.newMana);
StringBuilder message = new StringBuilder();
- message.append(activity.getString(R.string.used_skill, skill.text, skill.mana));
+ if (skill.isSpecialItem) {
+ message.append(activity.getString(R.string.used_skill_without_mana));
+ } else {
+ message.append(activity.getString(R.string.used_skill, skill.text, skill.mana));
+ }
+
if (event.xp != 0) {
message.append(" + ").append(round(event.xp, 2)).append(" XP");
}
@@ -140,6 +190,12 @@ public class SkillsFragment extends BaseMainFragment {
}
break;
}
+ case (MEMBER_SELECTION_ACTIVITY): {
+ if (resultCode == Activity.RESULT_OK) {
+ useSkill(selectedSkill, data.getStringExtra("member_id"));
+ }
+ break;
+ }
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyMemberListFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyMemberListFragment.java
index 6eaabc2ea..63a973b41 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyMemberListFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyMemberListFragment.java
@@ -67,7 +67,7 @@ public class PartyMemberListFragment extends BaseFragment {
public void setMemberList(List members) {
this.members = members;
- viewAdapter.setMemberList(members);
+ viewAdapter.setMemberList(members, false);
}
}
diff --git a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/Buffs.java b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/Buffs.java
index badedd3d1..489a70876 100644
--- a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/Buffs.java
+++ b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/Buffs.java
@@ -81,5 +81,8 @@ public class Buffs extends BasicStats {
super.merge(stats);
this.snowball = stats.snowball != null ? stats.snowball : this.snowball;
this.streaks = stats.streaks != null ? stats.streaks : this.streaks;
+ this.seafoam = stats.seafoam != null ? stats.seafoam : this.seafoam;
+ this.shinySeed = stats.shinySeed != null ? stats.shinySeed : this.shinySeed;
+ this.spookySparkles = stats.spookySparkles != null ? stats.spookySparkles : this.spookySparkles;
}
}
diff --git a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/Items.java b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/Items.java
index acf9bc44f..e9ae07230 100644
--- a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/Items.java
+++ b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/Items.java
@@ -43,6 +43,12 @@ public class Items extends BaseModel {
foreignColumnName = "user_id")})
private Gear gear;
+ @Column
+ @ForeignKey(references = {@ForeignKeyReference(columnName = "special_id",
+ columnType = String.class,
+ foreignColumnName = "user_id")})
+ private SpecialItems special;
+
public Items(String currentMount, String currentPet, int lastDrop_count, Date lastDrop_date) {
this.currentMount = currentMount;
this.currentPet = currentPet;
@@ -93,6 +99,14 @@ public class Items extends BaseModel {
this.gear = gear;
}
+ public SpecialItems getSpecial() {
+ return special;
+ }
+
+ public void setSpecial(SpecialItems specialItems) {
+ this.special = specialItems;
+ }
+
public String getUser_id() {
return user_id;
}
@@ -152,6 +166,8 @@ public class Items extends BaseModel {
@Override
public void save() {
gear.user_id = user_id;
+ special.user_id = user_id;
+
super.save();
}
}
diff --git a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/Skill.java b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/Skill.java
index fe115630d..a348195b7 100644
--- a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/Skill.java
+++ b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/Skill.java
@@ -7,7 +7,7 @@ import com.raizlabs.android.dbflow.annotation.Table;
import com.raizlabs.android.dbflow.structure.BaseModel;
-@Table(databaseName = HabitDatabase.NAME, allFields = true)
+@Table(databaseName = HabitDatabase.NAME)
public class Skill extends BaseModel {
@Column
@@ -20,5 +20,5 @@ public class Skill extends BaseModel {
@Column
public Integer mana, lvl;
-
+ public boolean isSpecialItem;
}
diff --git a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/SpecialItems.java b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/SpecialItems.java
new file mode 100644
index 000000000..8be17b7e9
--- /dev/null
+++ b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/SpecialItems.java
@@ -0,0 +1,61 @@
+package com.magicmicky.habitrpgwrapper.lib.models;
+
+
+import com.habitrpg.android.habitica.HabitDatabase;
+import com.raizlabs.android.dbflow.annotation.Column;
+import com.raizlabs.android.dbflow.annotation.NotNull;
+import com.raizlabs.android.dbflow.annotation.PrimaryKey;
+import com.raizlabs.android.dbflow.annotation.Table;
+import com.raizlabs.android.dbflow.structure.BaseModel;
+
+@Table(databaseName = HabitDatabase.NAME)
+public class SpecialItems extends BaseModel {
+ @Column
+ @PrimaryKey
+ @NotNull
+ String user_id;
+
+ @Column
+ @NotNull
+ int seafoam, shinySeed, snowball, spookySparkles;
+
+ public String getUser_id() {
+ return user_id;
+ }
+
+ public void setUser_id(String user_id) {
+ this.user_id = user_id;
+ }
+
+ public int getSeafoam() {
+ return seafoam;
+ }
+
+ public void setSeafoam(int seafoam) {
+ this.seafoam = seafoam;
+ }
+
+ public int getShinySeed() {
+ return shinySeed;
+ }
+
+ public void setShinySeed(int shinySeed) {
+ this.shinySeed = shinySeed;
+ }
+
+ public int getSnowball() {
+ return snowball;
+ }
+
+ public void setSnowball(int snowball) {
+ this.snowball = snowball;
+ }
+
+ public int getSpookySparkles() {
+ return spookySparkles;
+ }
+
+ public void setSpookySparkles(int spookySparkles) {
+ this.spookySparkles = spookySparkles;
+ }
+}
diff --git a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/utils/SkillDeserializer.java b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/utils/SkillDeserializer.java
index 6b0991465..a8c571949 100644
--- a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/utils/SkillDeserializer.java
+++ b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/utils/SkillDeserializer.java
@@ -28,9 +28,7 @@ public class SkillDeserializer
for (Map.Entry classEntry : object.entrySet()) {
String classname = classEntry.getKey();
JsonObject classObject = classEntry.getValue().getAsJsonObject();
- if (classname.equals("special")) {
- continue;
- }
+
for (Map.Entry skillEntry : classObject.entrySet()) {
JsonObject skillObject = skillEntry.getValue().getAsJsonObject();
Skill skill = new Skill();
@@ -41,7 +39,14 @@ public class SkillDeserializer
skill.target = skillObject.get("target").getAsString();
skill.habitClass = classname;
skill.mana = skillObject.get("mana").getAsInt();
- skill.lvl = skillObject.get("lvl").getAsInt();
+
+ JsonElement lvlElement = skillObject.get("lvl");
+
+ if(lvlElement != null)
+ {
+ skill.lvl = lvlElement.getAsInt();
+ }
+
skills.add(skill);
}
}
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 13372aef5..3baa851b2 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index e34758aec..ca07d7521 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,7 +1,6 @@
-#Mon Sep 12 12:48:06 CEST 2016
+#Thu Sep 29 20:11:45 CEST 2016
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
-org.gradle.jvmargs=-Xmx3072M
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-3.1-bin.zip
diff --git a/gradlew b/gradlew
index 9d82f7891..27309d923 100755
--- a/gradlew
+++ b/gradlew
@@ -6,12 +6,30 @@
##
##############################################################################
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
@@ -30,6 +48,7 @@ die ( ) {
cygwin=false
msys=false
darwin=false
+nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
@@ -40,26 +59,11 @@ case "`uname`" in
MINGW* )
msys=true
;;
+ NONSTOP* )
+ nonstop=true
+ ;;
esac
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
@@ -85,7 +89,7 @@ location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
diff --git a/gradlew.bat b/gradlew.bat
index aec99730b..f6d5974e7 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -8,14 +8,14 @@
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
@@ -46,7 +46,7 @@ echo location of your Java installation.
goto fail
:init
-@rem Get command-line arguments, handling Windowz variants
+@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args