Save Instance State more precise

This commit is contained in:
Caesar2011
2018-10-15 18:18:30 +02:00
parent f70e774896
commit ba3b07b8b4
5 changed files with 33 additions and 9 deletions

View File

@@ -204,8 +204,14 @@ public class MainActivity extends AppCompatActivity
@Override
protected void onSaveInstanceState(Bundle savedInstanceState) {
Fragment fragment = mFragmentManager.findFragmentByTag(String.valueOf(fragmentPage));
savedInstanceState.putInt(ARG_FRAGMENT_PAGE, fragmentPage);
savedInstanceState.putString(ARG_FRAGMENT_STATUS, fragmentData);
if (fragment instanceof ModDetailFragment) {
savedInstanceState.putString(ARG_FRAGMENT_STATUS, ((ModDetailFragment) fragment).getData());
} else {
savedInstanceState.putString(ARG_FRAGMENT_STATUS, fragmentData);
}
super.onSaveInstanceState(savedInstanceState);
}

View File

@@ -47,7 +47,11 @@ public class ModDetailFragment extends Fragment implements ModDetailListener {
public static Fragment newInstance(String itemPosition) {
ModDetailFragment fragment = new ModDetailFragment();
Bundle args = new Bundle();
args.putString(ARG_POSITION, itemPosition);//+"."+0);
if (!itemPosition.contains("."))
args.putString(ARG_POSITION, itemPosition+"."+0);
else
args.putString(ARG_POSITION, itemPosition);
fragment.setArguments(args);
return fragment;
}
@@ -57,8 +61,15 @@ public class ModDetailFragment extends Fragment implements ModDetailListener {
super.onCreate(savedInstanceState);
log.d("load instance");
if (getArguments() != null) {
mItemPos = getArguments().getString(ARG_POSITION);
String itemPosition = getArguments().getString(ARG_POSITION);
if (!itemPosition.contains(".")) {
mItemPos = itemPosition;
mPageRestoreRequest = null;
} else {
String[] split = itemPosition.split("\\.", 2);
mItemPos = split[0];
mPageRestoreRequest = split[1];
}
}
if (mListener != null) {
mListener.onTitleTextChange(R.string.courses);
@@ -79,6 +90,8 @@ public class ModDetailFragment extends Fragment implements ModDetailListener {
mViewPager = v.findViewById(R.id.vpPager);
ModDetailAdapter adapterViewPager = new ModDetailAdapter(getChildFragmentManager(), mItemPos, getContext());
mViewPager.setAdapter(adapterViewPager);
if (mPageRestoreRequest != null)
mViewPager.setCurrentItem(Integer.parseInt(mPageRestoreRequest));
return v;
}
@@ -103,4 +116,8 @@ public class ModDetailFragment extends Fragment implements ModDetailListener {
public void gotoFragmentPart(int part, int index) {
mViewPager.setCurrentItem(ModulePart.getPageByPart(part), true);
}
public String getData() {
return mItemPos+"."+mViewPager.getCurrentItem();
}
}

View File

@@ -7,7 +7,6 @@ import android.util.Pair;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.ms.square.android.expandabletextview.ExpandableTextView;

View File

@@ -86,6 +86,7 @@ public class ModDetailOverviewFragment extends Fragment {
if (getActivity() != null) {
KVV kvv = ((MainActivity) getActivity()).getKVV();
kvv.getModule(mItemPos, (Modules.Module module) -> {
log.d("onRefresh", module);
adapter.setModule(module);
kvv.getModuleDetails(module, pair -> {
adapter.setModule();

View File

@@ -20,15 +20,15 @@ import java.util.regex.MatchResult;
import de.sebse.fuplanner.services.KVV.types.Announcement;
import de.sebse.fuplanner.services.KVV.types.Assignment;
import de.sebse.fuplanner.services.KVV.types.AssignmentList;
import de.sebse.fuplanner.services.KVV.types.Event;
import de.sebse.fuplanner.services.KVV.types.EventList;
import de.sebse.fuplanner.services.KVV.types.Gradebook;
import de.sebse.fuplanner.services.KVV.types.Lecturer;
import de.sebse.fuplanner.services.KVV.types.LoginToken;
import de.sebse.fuplanner.services.KVV.types.Modules;
import de.sebse.fuplanner.services.KVV.types.AssignmentList;
import de.sebse.fuplanner.services.KVV.types.Resource;
import de.sebse.fuplanner.tools.AsyncQueue;
import de.sebse.fuplanner.services.KVV.types.EventList;
import de.sebse.fuplanner.tools.Regex;
import de.sebse.fuplanner.tools.network.HTTPService;
import de.sebse.fuplanner.tools.network.NetworkCallback;
@@ -36,8 +36,6 @@ import de.sebse.fuplanner.tools.network.NetworkError;
import de.sebse.fuplanner.tools.network.NetworkErrorCallback;
import de.sebse.fuplanner.tools.network.Result;
import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE;
/**
* Created by sebastian on 29.10.17.
*/
@@ -145,7 +143,10 @@ class KVVModuleList extends HTTPService {
}
public void getModule(String id, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback errorCallback, boolean forceRefresh) {
this.getModuleList(success -> callback.onResponse(success.get(id)), errorCallback, forceRefresh);
this.getModuleList(success -> {
log.d("liste", success.size(), id, success.get(id));
callback.onResponse(success.get(id));
}, errorCallback, forceRefresh);
}