fix reset of Fragment Position / remove ChallengeOverviewActivity

This commit is contained in:
Negue 2017-01-04 21:38:44 +01:00
parent c4de096a00
commit d5361424d1
5 changed files with 9 additions and 101 deletions

View file

@ -126,16 +126,6 @@
android:name="android.support.PARENT_ACTIVITY"
android:value=".ui.activities.MainActivity" />
</activity>
<activity
android:name=".ui.activities.ChallengeOverviewActivity"
android:parentActivityName=".ui.activities.MainActivity"
android:screenOrientation="portrait"
android:launchMode="singleTask"
tools:ignore="UnusedAttribute">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".ui.activities.MainActivity" />
</activity>
<activity
android:name=".ui.activities.ChallengeDetailActivity"
android:parentActivityName=".ui.activities.MainActivity"
@ -144,7 +134,7 @@
tools:ignore="UnusedAttribute">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".ui.activities.ChallengeOverviewActivity" />
android:value=".ui.activities.MainActivity" />
</activity>
<activity android:name="com.facebook.FacebookActivity"
android:configChanges=

View file

@ -8,7 +8,6 @@ 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;
@ -200,6 +199,4 @@ public interface AppComponent {
void inject(ChallengeTaskRecyclerViewFragment challengeTaskRecyclerViewFragment);
void inject(ChallengeDetailActivity challengeDetailActivity);
void inject(ChallengeOverviewActivity challengeOverviewActivity);
}

View file

@ -1,82 +0,0 @@
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;
private ChallengesOverviewFragment overviewFragment;
@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);
overviewFragment = new ChallengesOverviewFragment();
overviewFragment.setTabLayout(detail_tabs);
overviewFragment.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, overviewFragment).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, overviewFragment).addToBackStack(null).commitAllowingStateLoss();
}
}
@Override
protected void injectActivity(AppComponent component) {
component.inject(this);
}
@Override
public boolean onSupportNavigateUp() {
finish();
return true;
}
@Override
public void onBackPressed() {
if(!overviewFragment.onHandleBackPressed()){
finish();
}
}
}

View file

@ -276,7 +276,7 @@ public class MainActivity extends BaseActivity implements Action1<Throwable>, Ha
avatarInHeader = new AvatarWithBarsViewModel(this, avatar_with_bars);
accountHeader = MainDrawerBuilder.CreateDefaultAccountHeader(this).build();
drawer = MainDrawerBuilder.CreateDefaultBuilderSettings(this, toolbar, accountHeader)
drawer = MainDrawerBuilder.CreateDefaultBuilderSettings(this, sharedPreferences, toolbar, accountHeader)
.build();
drawer.setSelectionAtPosition(1, false);
sideAvatarView = new AvatarView(this, true, false, false);
@ -327,7 +327,7 @@ public class MainActivity extends BaseActivity implements Action1<Throwable>, Ha
//Recreate the fragment as a result.
if (activeFragment != null && activeFragment.tabLayout == null) {
activeFragment = null;
drawer.setSelectionAtPosition(1);
drawer.setSelectionAtPosition(this.sharedPreferences.getInt("lastActivePosition", 1));
}
}

View file

@ -2,7 +2,6 @@ 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;
@ -29,6 +28,7 @@ import com.mikepenz.materialdrawer.model.ProfileDrawerItem;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.support.v7.widget.Toolbar;
import static com.habitrpg.android.habitica.ui.activities.MainActivity.GEM_PURCHASE_REQUEST;
@ -66,7 +66,7 @@ public class MainDrawerBuilder {
}
public static DrawerBuilder CreateDefaultBuilderSettings(final MainActivity activity, Toolbar toolbar, final AccountHeader accountHeader) {
public static DrawerBuilder CreateDefaultBuilderSettings(final MainActivity activity, SharedPreferences sharedPreferences, Toolbar toolbar, final AccountHeader accountHeader) {
DrawerBuilder builder = new DrawerBuilder()
.withActivity(activity);
@ -134,7 +134,8 @@ public class MainDrawerBuilder {
break;
}
case SIDEBAR_CHALLENGES: {
newActivityClass = ChallengeOverviewActivity.class;
fragment = new ChallengesOverviewFragment();
break;
}
case SIDEBAR_SHOPS: {
@ -179,6 +180,8 @@ public class MainDrawerBuilder {
}
}
sharedPreferences.edit().putInt("lastActivePosition", position).apply();
if (fragment != null) {
fragment.fragmentSidebarPosition = position;
activity.displayFragment(fragment);