diff --git a/Habitica/res/layout/fragment_group_info.xml b/Habitica/res/layout/fragment_group_info.xml
index 136822d1a..81661d154 100644
--- a/Habitica/res/layout/fragment_group_info.xml
+++ b/Habitica/res/layout/fragment_group_info.xml
@@ -6,6 +6,7 @@
+
@@ -26,6 +27,10 @@
name="hideParticipantCard"
type="Boolean" />
+
+
@@ -41,11 +46,54 @@
android:layout_height="wrap_content"
android:orientation="vertical">
+
+
+
+
+
+
+
+
+
+
+
+
+
Continue
Scan QR Code
Enter Recipients User ID
+ You were invited to join a party!
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/GroupInformationFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/GroupInformationFragment.java
index 7b1141cf8..0b015a096 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/GroupInformationFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/GroupInformationFragment.java
@@ -6,8 +6,6 @@ import com.habitrpg.android.habitica.components.AppComponent;
import com.habitrpg.android.habitica.databinding.FragmentGroupInfoBinding;
import com.habitrpg.android.habitica.databinding.ValueBarBinding;
import com.habitrpg.android.habitica.helpers.QrCodeManager;
-import com.habitrpg.android.habitica.prefs.scanner.IntentIntegrator;
-import com.habitrpg.android.habitica.ui.AvatarView;
import com.habitrpg.android.habitica.ui.adapter.social.QuestCollectRecyclerViewAdapter;
import com.habitrpg.android.habitica.ui.fragments.BaseFragment;
import com.magicmicky.habitrpgwrapper.lib.models.Group;
@@ -16,35 +14,18 @@ import com.magicmicky.habitrpgwrapper.lib.models.inventory.QuestContent;
import android.app.AlertDialog;
import android.content.Context;
-import android.content.Intent;
-import android.content.SharedPreferences;
import android.databinding.DataBindingUtil;
-import android.graphics.Bitmap;
import android.os.Bundle;
-import android.os.Environment;
import android.support.annotation.Nullable;
import android.support.v4.content.ContextCompat;
-import android.support.v7.preference.PreferenceManager;
import android.support.v7.widget.CardView;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
-import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
-import android.widget.Toast;
-
-import net.glxn.qrgen.android.QRCode;
-import net.glxn.qrgen.core.image.ImageType;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
import javax.inject.Inject;
@@ -67,9 +48,11 @@ public class GroupInformationFragment extends BaseFragment {
RecyclerView collectionStats;
@BindView(R.id.qrLayout)
+ @Nullable
LinearLayout qrLayout;
@BindView(R.id.qrWrapper)
+ @Nullable
CardView qrWrapper;
private View view;
@@ -123,10 +106,10 @@ public class GroupInformationFragment extends BaseFragment {
if (this.group == null) {
QrCodeManager qrCodeManager = new QrCodeManager(this.getContext());
qrCodeManager.setUpView(qrLayout);
- }
- if (user != null && user.getParty().getId() != null) {
- ((ViewGroup) qrWrapper.getParent()).removeView(qrWrapper);
+ if (user.getInvitations().getParty() != null && user.getInvitations().getParty().getId() != null) {
+ viewBinding.setInvitation(user.getInvitations().getParty());
+ }
}
return view;
@@ -331,4 +314,23 @@ public class GroupInformationFragment extends BaseFragment {
});
builder.show();
}
+
+ @OnClick(R.id.btnPartyInviteAccept)
+ public void onPartyInviteAccepted() {
+ apiHelper.apiService.joinGroup(user.getInvitations().getParty().getId())
+ .compose(apiHelper.configureApiCallObserver())
+ .subscribe(group -> {
+ setGroup(group);
+ viewBinding.setInvitation(null);
+ }, throwable -> {});
+ }
+
+ @OnClick(R.id.btnPartyInviteReject)
+ public void onPartyInviteRejected() {
+ apiHelper.apiService.rejectGroupInvite(user.getInvitations().getParty().getId())
+ .compose(apiHelper.configureApiCallObserver())
+ .subscribe(aVoid -> {
+ viewBinding.setInvitation(null);
+ }, throwable -> {});
+ }
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyFragment.java
index 791d22814..1812f43a8 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyFragment.java
@@ -49,6 +49,7 @@ public class PartyFragment extends BaseMainFragment {
@Inject
ContentCache contentCache;
+ private FragmentPagerAdapter viewPagerAdapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
@@ -100,6 +101,8 @@ public class PartyFragment extends BaseMainFragment {
this.tutorialStepIdentifier = "party";
this.tutorialText = getString(R.string.tutorial_party);
+ updateGroupUI();
+
return v;
}
@@ -109,6 +112,15 @@ public class PartyFragment extends BaseMainFragment {
}
private void updateGroupUI() {
+ viewPagerAdapter.notifyDataSetChanged();
+
+ if (group == null) {
+ tabLayout.setVisibility(View.GONE);
+ return;
+ } else {
+ tabLayout.setVisibility(View.VISIBLE);
+ }
+
if (partyMemberListFragment != null) {
partyMemberListFragment.setMemberList(group.members);
}
@@ -130,6 +142,7 @@ public class PartyFragment extends BaseMainFragment {
}
});
}
+
}
@Override
@@ -260,7 +273,7 @@ public class PartyFragment extends BaseMainFragment {
return;
}
- this.viewPager.setAdapter(new FragmentPagerAdapter(fragmentManager) {
+ viewPagerAdapter = new FragmentPagerAdapter(fragmentManager) {
@Override
public Fragment getItem(int position) {
@@ -298,7 +311,11 @@ public class PartyFragment extends BaseMainFragment {
@Override
public int getCount() {
- return 3;
+ if (group == null) {
+ return 1;
+ } else {
+ return 3;
+ }
}
@Override
@@ -313,7 +330,8 @@ public class PartyFragment extends BaseMainFragment {
}
return "";
}
- });
+ };
+ this.viewPager.setAdapter(viewPagerAdapter);
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
diff --git a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/api/ApiService.java b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/api/ApiService.java
index cac2d2383..e64f105e4 100644
--- a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/api/ApiService.java
+++ b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/api/ApiService.java
@@ -256,4 +256,5 @@ public interface ApiService {
@POST("debug/add-ten-gems")
Observable debugAddTenGems();
+
}