mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-08 21:30:57 +00:00
fragment will be updated, if new marks are available
This commit is contained in:
1 parent
e691bca866
commit
e9300713ce
4 files changed
+26
-38
No files matched your search
+1
-2
@@ -8,7 +8,6 @@ import com.sap.sailing.android.buoy.positioning.app.R;
|
||||
import com.sap.sailing.android.buoy.positioning.app.util.CheckinManager;
|
||||
import com.sap.sailing.android.buoy.positioning.app.util.DatabaseHelper;
|
||||
import com.sap.sailing.android.buoy.positioning.app.valueobjects.CheckinData;
|
||||
import com.sap.sailing.android.shared.data.BaseCheckinData;
|
||||
|
||||
public class MarkerService extends IntentService implements CheckinManager.DataChangedListner{
|
||||
private static String TAG = MarkerService.class.getName();
|
||||
@@ -26,7 +25,7 @@ public class MarkerService extends IntentService implements CheckinManager.Data
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleData(BaseCheckinData data) {
|
||||
public void handleData(CheckinData data) {
|
||||
if (data != null) {
|
||||
try {
|
||||
CheckinData checkinData = (CheckinData) data;
|
||||
|
||||
+2
-9
@@ -45,7 +45,6 @@ public class RegattaActivity extends AbstractRegattaActivity {
|
||||
prefs.setLastScannedQRCode(null);
|
||||
Intent intent = getIntent();
|
||||
|
||||
|
||||
checkinDigest = intent.getStringExtra(getString(R.string.checkin_digest));
|
||||
leaderboardName = intent.getStringExtra(getString(R.string.leaderboard_name));
|
||||
|
||||
@@ -68,8 +67,7 @@ public class RegattaActivity extends AbstractRegattaActivity {
|
||||
toolbar.setNavigationIcon(R.drawable.sap_logo_64dp);
|
||||
getSupportActionBar().setTitle(leaderboardName);
|
||||
}
|
||||
RegattaFragment regattaFragment = new RegattaFragment();
|
||||
replaceFragment(R.id.content_frame, regattaFragment);
|
||||
replaceFragment(R.id.content_frame, RegattaFragment.newInstance());
|
||||
|
||||
MarkerUtils.withContext(this).startMarkerService(checkinUrl);
|
||||
}
|
||||
@@ -147,11 +145,10 @@ public class RegattaActivity extends AbstractRegattaActivity {
|
||||
|
||||
@Override
|
||||
public void onCheckinDataAvailable(BaseCheckinData checkinData) {
|
||||
if (checkinData != null) {
|
||||
if (checkinData != null && checkinData instanceof CheckinData) {
|
||||
CheckinData data = (CheckinData) checkinData;
|
||||
try {
|
||||
DatabaseHelper.getInstance().updateMarks(this, data.marks, data.getLeaderboard());
|
||||
getRegattaFragment().getAdapter().notifyDataSetChanged();
|
||||
} catch (DatabaseHelper.GeneralDatabaseHelperException e) {
|
||||
ExLog.e(this, TAG, "Batch insert failed: " + e.getMessage());
|
||||
displayDatabaseError();
|
||||
@@ -189,10 +186,6 @@ public class RegattaActivity extends AbstractRegattaActivity {
|
||||
return checkinDigest;
|
||||
}
|
||||
|
||||
public RegattaFragment getRegattaFragment() {
|
||||
return (RegattaFragment) getSupportFragmentManager().findFragmentById(R.id.content_frame);
|
||||
}
|
||||
|
||||
/**
|
||||
* Defines callbacks for service binding, passed to bindService()
|
||||
*/
|
||||
|
||||
+18
-15
@@ -33,18 +33,26 @@ public class RegattaFragment extends BaseFragment implements LoaderCallbacks<Cur
|
||||
private MarkAdapter adapter;
|
||||
private IntentReceiver mReceiver;
|
||||
|
||||
public static RegattaFragment newInstance() {
|
||||
Bundle args = new Bundle();
|
||||
RegattaFragment fragment = new RegattaFragment();
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@SuppressLint("InflateParams")
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
super.onCreateView(inflater, container, savedInstanceState);
|
||||
|
||||
mReceiver = new IntentReceiver();
|
||||
|
||||
View view = inflater.inflate(R.layout.fragment_buoy_postion_overview, container, false);
|
||||
adapter = new MarkAdapter(getActivity(), R.layout.mark_listview_row, null, 0);
|
||||
ListView markListView = (ListView) view.findViewById(R.id.listMarks);
|
||||
markListView.setEmptyView(view.findViewById(R.id.no_marks));
|
||||
markListView.setAdapter(adapter);
|
||||
markListView.setOnItemClickListener(new ItemClickListener());
|
||||
getLoaderManager().initLoader(MARKER_LOADER, null, this);
|
||||
|
||||
return view;
|
||||
}
|
||||
@@ -52,26 +60,28 @@ public class RegattaFragment extends BaseFragment implements LoaderCallbacks<Cur
|
||||
@Override
|
||||
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
mReceiver = new IntentReceiver(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
getLoaderManager().restartLoader(MARKER_LOADER, null, this);
|
||||
|
||||
IntentFilter filter = new IntentFilter();
|
||||
filter.addAction(getString(R.string.database_changed));
|
||||
LocalBroadcastManager.getInstance(getActivity().getApplicationContext()).registerReceiver(mReceiver, filter);
|
||||
LocalBroadcastManager.getInstance(getActivity()).registerReceiver(mReceiver, filter);
|
||||
|
||||
loadData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
LocalBroadcastManager.getInstance(getActivity().getApplicationContext()).unregisterReceiver(mReceiver);
|
||||
|
||||
LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(mReceiver);
|
||||
}
|
||||
|
||||
public MarkAdapter getAdapter() {
|
||||
return adapter;
|
||||
public void loadData() {
|
||||
getLoaderManager().restartLoader(MARKER_LOADER, null, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -126,19 +136,12 @@ public class RegattaFragment extends BaseFragment implements LoaderCallbacks<Cur
|
||||
// Broadcast receiver to update ui on data changed
|
||||
private class IntentReceiver extends BroadcastReceiver {
|
||||
|
||||
private LoaderCallbacks<Cursor> loaderCallbacks;
|
||||
|
||||
public IntentReceiver(LoaderCallbacks<Cursor> callbacks) {
|
||||
loaderCallbacks = callbacks;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
Log.d(TAG, "Adapter will be notified");
|
||||
String action = intent.getAction();
|
||||
if (action.equals(getString(R.string.database_changed))) {
|
||||
getLoaderManager().restartLoader(MARKER_LOADER, null, loaderCallbacks);
|
||||
adapter.notifyDataSetChanged();
|
||||
loadData();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+5
-12
@@ -26,7 +26,6 @@ import com.sap.sailing.android.buoy.positioning.app.R;
|
||||
import com.sap.sailing.android.buoy.positioning.app.valueobjects.CheckinData;
|
||||
import com.sap.sailing.android.buoy.positioning.app.valueobjects.MarkInfo;
|
||||
import com.sap.sailing.android.buoy.positioning.app.valueobjects.MarkPingInfo;
|
||||
import com.sap.sailing.android.shared.data.BaseCheckinData;
|
||||
import com.sap.sailing.android.shared.data.http.HttpGetRequest;
|
||||
import com.sap.sailing.android.shared.logging.ExLog;
|
||||
import com.sap.sailing.android.shared.ui.activities.CheckinDataActivity;
|
||||
@@ -49,7 +48,6 @@ import com.sap.sailing.server.gateway.serialization.impl.MarkJsonSerializerWithP
|
||||
|
||||
public class CheckinManager {
|
||||
private final static String TAG = CheckinManager.class.getName();
|
||||
private BaseCheckinData checkinData;
|
||||
private final CheckinDataActivity activity;
|
||||
private final Context mContext;
|
||||
private final AppPreferences prefs;
|
||||
@@ -263,25 +261,20 @@ public class CheckinManager {
|
||||
}
|
||||
}
|
||||
|
||||
public void setCheckinData(BaseCheckinData data) {
|
||||
checkinData = data;
|
||||
private void setCheckinData(CheckinData data) {
|
||||
if (activity != null) {
|
||||
activity.onCheckinDataAvailable(getCheckinData());
|
||||
activity.onCheckinDataAvailable(data);
|
||||
} else if (dataChangedListner != null){
|
||||
dataChangedListner.handleData(data);
|
||||
}
|
||||
}
|
||||
|
||||
public interface DataChangedListner{
|
||||
void handleData(BaseCheckinData data);
|
||||
void handleData(CheckinData data);
|
||||
}
|
||||
|
||||
public void setDataChangedListner(DataChangedListner listner){
|
||||
dataChangedListner = listner;
|
||||
}
|
||||
|
||||
public BaseCheckinData getCheckinData() {
|
||||
return checkinData;
|
||||
public void setDataChangedListner(DataChangedListner listener){
|
||||
dataChangedListner = listener;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in new issue
Block a user