Merge branch 'bug2781'

This commit is contained in:
Robert Benedikt
2019-02-14 10:38:45 +01:00
4 changed files with 64 additions and 59 deletions
@@ -69,6 +69,7 @@ import com.sap.sailing.racecommittee.app.ui.fragments.RaceListFragment;
import com.sap.sailing.racecommittee.app.ui.fragments.RaceListFragment.RaceListCallbacks;
import com.sap.sailing.racecommittee.app.ui.fragments.WelcomeFragment;
import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.BaseFragment;
import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.MainScheduleFragment;
import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.RaceFinishingFragment;
import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.RaceFlagViewerFragment;
import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.RaceSummaryFragment;
@@ -184,21 +185,14 @@ public class RacingActivity extends SessionActivity implements RaceListCallbacks
}
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.racing_view_container);
if (!(fragment instanceof RaceInfoFragment || fragment instanceof WelcomeFragment)) {
if (getFragmentManager().getBackStackEntryCount() > 0) {
getFragmentManager().popBackStackImmediate();
getFragmentManager().beginTransaction().commit();
// fix for filled out RaceInfoFragment
if (infoFragment != null && infoFragment.isFragmentUIActive() && mSelectedRace != null) {
ExLog.i(this, this.getClass().getCanonicalName(), "Returning to RaceInfoFragment");
getFragmentManager().popBackStackImmediate();
onRaceItemClicked(mSelectedRace);
}
}
} else {
if (fragment instanceof WelcomeFragment) {
logoutSession();
} else if (fragment instanceof RaceInfoFragment || fragment instanceof MainScheduleFragment) {
loadWelcomeFragment();
mSelectedRace = null;
mRaceList.resetSelectedRace();
} else {
super.onBackPressed();
}
}
@@ -291,7 +285,8 @@ public class RacingActivity extends SessionActivity implements RaceListCallbacks
private void loadWelcomeFragment() {
preferences = AppPreferences.on(this);
getSupportFragmentManager().beginTransaction()
.replace(R.id.racing_view_container, WelcomeFragment.newInstance()).commitAllowingStateLoss();
.replace(R.id.racing_view_container, WelcomeFragment.newInstance())
.commitAllowingStateLoss();
}
public TimePoint getStartTime() {
@@ -332,7 +327,9 @@ public class RacingActivity extends SessionActivity implements RaceListCallbacks
setupActionBar(managedRace);
getSupportFragmentManager().beginTransaction().replace(R.id.racing_view_container, infoFragment).commit();
getSupportFragmentManager().beginTransaction()
.replace(R.id.racing_view_container, infoFragment)
.commit();
}
}
@@ -369,17 +366,17 @@ public class RacingActivity extends SessionActivity implements RaceListCallbacks
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.options_menu_reset:
ExLog.i(this, TAG, "Clicked RESET RACE");
resetRace();
return true;
case R.id.options_menu_reset:
ExLog.i(this, TAG, "Clicked RESET RACE");
resetRace();
return true;
case R.id.options_menu_role:
logoutSession();
return true;
case R.id.options_menu_role:
logoutSession();
return true;
default:
return super.onOptionsItemSelected(item);
default:
return super.onOptionsItemSelected(item);
}
}
@@ -481,7 +478,7 @@ public class RacingActivity extends SessionActivity implements RaceListCallbacks
}
public List<ManagedRace> getRacesWithStartTimeImmediatelyDependingOn(ManagedRace currentRace,
@Nullable RaceLogRaceStatus[] state) {
@Nullable RaceLogRaceStatus[] state) {
StartTimeFinderResult result;
SimpleRaceLogIdentifier identifier;
ArrayList<ManagedRace> list = new ArrayList<>();
@@ -704,10 +701,10 @@ public class RacingActivity extends SessionActivity implements RaceListCallbacks
dialog.cancel();
}
}).setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
builder.create().show();
}
@@ -465,6 +465,12 @@ public class RaceListFragment extends LoggableFragment
}
}
public void resetSelectedRace() {
mSelectedRace = null;
mAdapter.setSelectedRace(null);
mAdapter.notifyDataSetChanged();
}
private void unregisterOnAllRaces() {
for (ManagedRace managedRace : mManagedRacesById.values()) {
managedRace.getState().removeChangedListener(stateListener);
@@ -1,7 +1,14 @@
package com.sap.sailing.racecommittee.app.ui.fragments.raceinfo;
import java.util.ArrayList;
import java.util.Calendar;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.sap.sailing.android.shared.logging.ExLog;
import com.sap.sailing.android.shared.util.ViewHelper;
@@ -22,7 +29,6 @@ import com.sap.sailing.racecommittee.app.domain.impl.SelectionItem;
import com.sap.sailing.racecommittee.app.ui.activities.RacingActivity;
import com.sap.sailing.racecommittee.app.ui.adapters.SelectionAdapter;
import com.sap.sailing.racecommittee.app.ui.fragments.RaceFragment;
import com.sap.sailing.racecommittee.app.ui.fragments.chooser.RaceInfoFragmentChooser;
import com.sap.sailing.racecommittee.app.ui.utils.FlagsResources;
import com.sap.sailing.racecommittee.app.utils.RaceHelper;
import com.sap.sailing.racecommittee.app.utils.TimeUtils;
@@ -30,15 +36,8 @@ import com.sap.sse.common.Duration;
import com.sap.sse.common.TimePoint;
import com.sap.sse.common.impl.MillisecondsTimePoint;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import java.util.ArrayList;
import java.util.Calendar;
public class MainScheduleFragment extends BaseFragment implements View.OnClickListener, SelectionAdapter.ItemClick {
@@ -249,12 +248,12 @@ public class MainScheduleFragment extends BaseFragment implements View.OnClickLi
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.start_race:
startRace();
break;
case R.id.start_race:
startRace();
break;
default:
ExLog.i(getActivity(), TAG, "Clicked on " + v);
default:
ExLog.i(getActivity(), TAG, "Clicked on " + v);
}
}
@@ -337,7 +336,10 @@ public class MainScheduleFragment extends BaseFragment implements View.OnClickLi
args.putBoolean(RACE_GROUP, mItemRaceGroup.isChecked());
}
getFragmentManager().beginTransaction().replace(R.id.racing_view_container, fragment).commitAllowingStateLoss();
getFragmentManager().beginTransaction()
.replace(R.id.racing_view_container, fragment)
.addToBackStack(null)
.commitAllowingStateLoss();
}
@Override
@@ -352,9 +354,8 @@ public class MainScheduleFragment extends BaseFragment implements View.OnClickLi
@Override
public void onStatusChanged(ReadonlyRaceState state) {
super.onStatusChanged(state);
openFragment(
RaceInfoFragmentChooser.on(state.getRacingProcedure().getType()).choose(getActivity(), getRace()));
RacingActivity activity = (RacingActivity) requireActivity();
activity.onRaceItemClicked(getRace(), true);
}
}
}
@@ -1,5 +1,12 @@
package com.sap.sailing.racecommittee.app.ui.fragments.raceinfo;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import com.sap.sailing.android.shared.util.ViewHelper;
import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.RacingProcedure;
import com.sap.sailing.domain.common.racelog.Flags;
@@ -13,12 +20,6 @@ import com.sap.sailing.racecommittee.app.ui.layouts.HeaderLayout;
import com.sap.sse.common.TimePoint;
import com.sap.sse.common.impl.MillisecondsTimePoint;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
public class RecallFlagsFragment extends RaceFragment implements RecallFlagItemClick {
private final static String HEADER_TEXT = "headerText";
@@ -34,13 +35,13 @@ public class RecallFlagsFragment extends RaceFragment implements RecallFlagItemC
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View layout = inflater.inflate(R.layout.flag_list, container, false);
HeaderLayout header = ViewHelper.get(layout, R.id.header);
if (header != null) {
header.setHeaderText(getArguments().getString(HEADER_TEXT, getString(R.string.not_available)));
header.setOnClickListener(new View.OnClickListener() {
header.setHeaderOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sendIntent(AppConstants.INTENT_ACTION_CLEAR_TOGGLE);