diff --git a/Habitica/AndroidManifest.xml b/Habitica/AndroidManifest.xml
index e0eda724b..9b09f8eac 100644
--- a/Habitica/AndroidManifest.xml
+++ b/Habitica/AndroidManifest.xml
@@ -127,14 +127,25 @@
android:value=".ui.activities.MainActivity" />
+
+
+
+ android:orientation="vertical"
+ app:layout_collapseMode="parallax">
+ android:maxLines="2"
+ android:textColor="@color/textColorDark" />
+ android:maxLines="3"
+ android:textColor="@color/textColorDark" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:layout_marginBottom="10dp"
+ android:layout_gravity="right"
+ android:layout_marginTop="10dp"
+ android:orientation="horizontal">
+ android:gravity="center"
+ android:id="@+id/gem_prize_layout">
-
-
+ tools:text="15"
+ android:textColor="@color/textColorDark" />
+
+
+
+
+
+
+
diff --git a/Habitica/res/layout/activity_challenge_overview.xml b/Habitica/res/layout/activity_challenge_overview.xml
new file mode 100644
index 000000000..57214e51a
--- /dev/null
+++ b/Habitica/res/layout/activity_challenge_overview.xml
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Habitica/res/values/styles.habitica.xml b/Habitica/res/values/styles.habitica.xml
index e7fa2faae..a5f386cd6 100644
--- a/Habitica/res/values/styles.habitica.xml
+++ b/Habitica/res/values/styles.habitica.xml
@@ -49,4 +49,11 @@
+
+
\ No newline at end of file
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 5396a0f51..237f70ead 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
@@ -8,6 +8,7 @@ import com.habitrpg.android.habitica.modules.AppModule;
import com.habitrpg.android.habitica.receivers.LocalNotificationActionReceiver;
import com.habitrpg.android.habitica.ui.activities.AboutActivity;
import com.habitrpg.android.habitica.ui.activities.ChallengeDetailActivity;
+import com.habitrpg.android.habitica.ui.activities.ChallengeOverviewActivity;
import com.habitrpg.android.habitica.ui.activities.ClassSelectionActivity;
import com.habitrpg.android.habitica.ui.activities.FullProfileActivity;
import com.habitrpg.android.habitica.ui.activities.GroupFormActivity;
@@ -199,4 +200,6 @@ public interface AppComponent {
void inject(ChallengeTaskRecyclerViewFragment challengeTaskRecyclerViewFragment);
void inject(ChallengeDetailActivity challengeDetailActivity);
+
+ void inject(ChallengeOverviewActivity challengeOverviewActivity);
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ChallengeDetailActivity.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ChallengeDetailActivity.java
index e35ec1cbb..e9803c675 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ChallengeDetailActivity.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ChallengeDetailActivity.java
@@ -86,14 +86,13 @@ public class ChallengeDetailActivity extends BaseActivity {
@BindView(R.id.challenge_description)
TextView challengeDescription;
-
- @BindView(R.id.memberCountTextView)
+ @BindView(R.id.challenge_member_count)
TextView memberCountTextView;
@BindView(R.id.gem_prize_layout)
LinearLayout gem_prize_layout;
- @BindView(R.id.gemPrizeTextView)
+ @BindView(R.id.gem_amount)
TextView gemPrizeTextView;
private Challenge challenge;
@@ -125,4 +124,15 @@ public class ChallengeDetailActivity extends BaseActivity {
}
}
+
+ @Override
+ public boolean onSupportNavigateUp() {
+ finish();
+ return true;
+ }
+
+ @Override
+ public void onBackPressed() {
+ finish();
+ }
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ChallengeOverviewActivity.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ChallengeOverviewActivity.java
new file mode 100644
index 000000000..4f52f6033
--- /dev/null
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ChallengeOverviewActivity.java
@@ -0,0 +1,79 @@
+package com.habitrpg.android.habitica.ui.activities;
+
+import android.os.Bundle;
+import android.support.design.widget.TabLayout;
+import android.support.v4.app.FragmentTransaction;
+import android.support.v7.widget.Toolbar;
+import android.view.View;
+
+import com.habitrpg.android.habitica.APIHelper;
+import com.habitrpg.android.habitica.HabiticaApplication;
+import com.habitrpg.android.habitica.R;
+import com.habitrpg.android.habitica.components.AppComponent;
+import com.habitrpg.android.habitica.ui.AvatarWithBarsViewModel;
+import com.habitrpg.android.habitica.ui.fragments.social.challenges.ChallengesOverviewFragment;
+
+import javax.inject.Inject;
+
+import butterknife.BindView;
+
+public class ChallengeOverviewActivity extends BaseActivity {
+
+ @BindView(R.id.detail_tabs)
+ TabLayout detail_tabs;
+
+ @BindView(R.id.toolbar)
+ Toolbar toolbar;
+
+ @BindView(R.id.avatar_with_bars)
+ View avatar_with_bars;
+
+ @Inject
+ public APIHelper apiHelper;
+
+
+ @Override
+ protected int getLayoutResId() {
+ return R.layout.activity_challenge_overview;
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ setupToolbar(toolbar);
+
+ getSupportActionBar().setTitle(R.string.challenges);
+
+ ChallengesOverviewFragment fragment = new ChallengesOverviewFragment();
+ fragment.setTabLayout(detail_tabs);
+ fragment.setUser(HabiticaApplication.User);
+
+ AvatarWithBarsViewModel avatarInHeader = new AvatarWithBarsViewModel(this, avatar_with_bars);
+ avatarInHeader.updateData(HabiticaApplication.User);
+
+ if (getSupportFragmentManager().getFragments() == null) {
+ getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, fragment).commitAllowingStateLoss();
+ } else {
+ FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
+ transaction.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out, android.R.anim.fade_in, android.R.anim.fade_out);
+ transaction.replace(R.id.fragment_container, fragment).addToBackStack(null).commitAllowingStateLoss();
+ }
+ }
+
+ @Override
+ protected void injectActivity(AppComponent component) {
+ component.inject(this);
+ }
+
+ @Override
+ public boolean onSupportNavigateUp() {
+ finish();
+ return true;
+ }
+
+ @Override
+ public void onBackPressed() {
+ finish();
+ }
+}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/BaseMainFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/BaseMainFragment.java
index a5ad319db..ab4abc2f3 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/BaseMainFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/BaseMainFragment.java
@@ -1,12 +1,5 @@
package com.habitrpg.android.habitica.ui.fragments;
-import com.habitrpg.android.habitica.APIHelper;
-import com.habitrpg.android.habitica.helpers.SoundManager;
-import com.habitrpg.android.habitica.ui.activities.MainActivity;
-import com.magicmicky.habitrpgwrapper.lib.models.HabitRPGUser;
-import com.raizlabs.android.dbflow.sql.builder.Condition;
-import com.raizlabs.android.dbflow.sql.language.Select;
-
import android.content.Context;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
@@ -15,6 +8,13 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
+import com.habitrpg.android.habitica.APIHelper;
+import com.habitrpg.android.habitica.helpers.SoundManager;
+import com.habitrpg.android.habitica.ui.activities.MainActivity;
+import com.magicmicky.habitrpgwrapper.lib.models.HabitRPGUser;
+import com.raizlabs.android.dbflow.sql.builder.Condition;
+import com.raizlabs.android.dbflow.sql.language.Select;
+
import javax.inject.Inject;
public abstract class BaseMainFragment extends BaseFragment {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengesOverviewFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengesOverviewFragment.java
index 40cef9447..a2e7c6645 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengesOverviewFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengesOverviewFragment.java
@@ -15,6 +15,7 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import com.habitrpg.android.habitica.APIHelper;
+import com.habitrpg.android.habitica.HabiticaApplication;
import com.habitrpg.android.habitica.R;
import com.habitrpg.android.habitica.components.AppComponent;
import com.habitrpg.android.habitica.events.commands.OpenFullProfileCommand;
@@ -111,15 +112,14 @@ public class ChallengesOverviewFragment extends BaseMainFragment {
@Subscribe
public void onEvent(ShowChallengeTasksCommand cmd){
- View dialogLayout = activity.getLayoutInflater().inflate(R.layout.dialog_challenge_detail, null);
+ View dialogLayout = HabiticaApplication.currentActivity.getLayoutInflater().inflate(R.layout.dialog_challenge_detail, null);
Challenge challenge = new Select().from(Challenge.class).where(Condition.column("id").is(cmd.challengeId)).querySingle();
ChallegeDetailDialogHolder challegeDetailDialogHolder = new ChallegeDetailDialogHolder(dialogLayout, activity);
- AlertDialog.Builder builder = new AlertDialog.Builder(activity)
- .setView(dialogLayout)
- ;
+ AlertDialog.Builder builder = new AlertDialog.Builder(HabiticaApplication.currentActivity)
+ .setView(dialogLayout);
challegeDetailDialogHolder.bind(builder.show(), apiHelper, user, challenge);
}
@@ -201,10 +201,11 @@ public class ChallengesOverviewFragment extends BaseMainFragment {
Bundle bundle = new Bundle();
bundle.putString(ChallengeDetailActivity.CHALLENGE_ID, challenge.id);
- Intent intent = new Intent(activity, ChallengeDetailActivity.class);
+ Intent intent = new Intent(HabiticaApplication.currentActivity, ChallengeDetailActivity.class);
intent.putExtras(bundle);
- intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
+ //intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
+ this.dialog.dismiss();
}
@OnClick(R.id.challenge_join_btn)
@@ -216,7 +217,7 @@ public class ChallengesOverviewFragment extends BaseMainFragment {
challenge.async().save();
userChallengesFragment.addItem(challenge);
- dialog.hide();
+ this.dialog.dismiss();
}, throwable -> {
});
}
@@ -246,6 +247,8 @@ public class ChallengesOverviewFragment extends BaseMainFragment {
}
}
+
+
@Override
public String customTitle() {
return getString(R.string.challenges);
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/menu/MainDrawerBuilder.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/menu/MainDrawerBuilder.java
index 5982114c4..67eab91bf 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/menu/MainDrawerBuilder.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/menu/MainDrawerBuilder.java
@@ -2,6 +2,7 @@ package com.habitrpg.android.habitica.ui.menu;
import com.habitrpg.android.habitica.R;
import com.habitrpg.android.habitica.ui.activities.AboutActivity;
+import com.habitrpg.android.habitica.ui.activities.ChallengeOverviewActivity;
import com.habitrpg.android.habitica.ui.activities.GemPurchaseActivity;
import com.habitrpg.android.habitica.ui.activities.MainActivity;
import com.habitrpg.android.habitica.ui.activities.PrefsActivity;
@@ -133,7 +134,7 @@ public class MainDrawerBuilder {
break;
}
case SIDEBAR_CHALLENGES: {
- fragment = new ChallengesOverviewFragment();
+ newActivityClass = ChallengeOverviewActivity.class;
break;
}
case SIDEBAR_SHOPS: {