mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-04 10:09:42 +00:00
Bugfixes
This commit is contained in:
1 parent
78de07226a
commit
b5e7183e58
8 files changed
+80
-29
No files matched your search
+4
-2
@@ -3,11 +3,11 @@ package com.sap.sailing.android.buoy.positioning.app.adapter;
|
||||
import android.content.Context;
|
||||
import android.database.Cursor;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.sap.sailing.android.buoy.positioning.app.R;
|
||||
import com.sap.sailing.android.buoy.positioning.app.provider.AnalyticsContract;
|
||||
import com.sap.sailing.android.shared.ui.adapters.AbstractRegattaAdapter;
|
||||
import com.sap.sailing.android.shared.ui.customviews.OpenSansTextView;
|
||||
|
||||
public class RegattaAdapter extends AbstractRegattaAdapter {
|
||||
|
||||
@@ -17,10 +17,12 @@ public class RegattaAdapter extends AbstractRegattaAdapter {
|
||||
|
||||
@Override
|
||||
public void bindView(View view, Context context, Cursor cursor) {
|
||||
TextView name = (TextView) view.findViewById(R.id.regattaName);
|
||||
OpenSansTextView name = (OpenSansTextView) view.findViewById(R.id.regattaName);
|
||||
if (name != null) {
|
||||
String text = cursor.getString(cursor.getColumnIndex(AnalyticsContract.Leaderboard.LEADERBOARD_NAME));
|
||||
name.setText(text);
|
||||
//String digestString = cursor.getString(cursor.getColumnIndex(AnalyticsContract.Leaderboard.LEADERBOARD_CHECKIN_DIGEST));
|
||||
//System.out.println("BENNET: " + digestString);
|
||||
}
|
||||
}
|
||||
}
|
||||
+5
@@ -124,6 +124,11 @@ public class AnalyticsContract {
|
||||
.appendPath("leaderboards_marks_joined").build();
|
||||
}
|
||||
|
||||
public static class MarksLeaderBoardsJoined{
|
||||
public final static Uri CONTENT_URI = BASE_CONTENT_URI.buildUpon()
|
||||
.appendPath("marks_leaderboards_joined").build();
|
||||
}
|
||||
|
||||
private AnalyticsContract() {
|
||||
|
||||
}
|
||||
|
||||
+4
-1
@@ -30,7 +30,10 @@ public class AnalyticsDatabase extends SQLiteOpenHelper {
|
||||
String MARK_PINGS = "mark_pings";
|
||||
String CHECKIN_URIS= "checkin_uris";
|
||||
|
||||
String LEADERBOARDS_MARKS_JOINED = "marks LEFT JOIN leaderboards ON (" + Tables.MARKS + "." + Mark.MARK_CHECKIN_DIGEST
|
||||
String MARKS_LEADERBOARDS_JOINED = "marks LEFT JOIN leaderboards ON (" + Tables.MARKS + "." + Mark.MARK_CHECKIN_DIGEST
|
||||
+ " = " + Tables.LEADERBOARDS + "." + Leaderboard.LEADERBOARD_CHECKIN_DIGEST + " )";
|
||||
|
||||
String LEADERBOARDS_MARKS_JOINED = "leaderboards LEFT JOIN marks ON (" + Tables.MARKS + "." + Mark.MARK_CHECKIN_DIGEST
|
||||
+ " = " + Tables.LEADERBOARDS + "." + Leaderboard.LEADERBOARD_CHECKIN_DIGEST + " )";
|
||||
}
|
||||
|
||||
|
||||
+10
@@ -47,6 +47,8 @@ public class AnalyticsProvider extends ContentProvider {
|
||||
|
||||
private static final int LEADERBOARDS_MARKS_JOINED = 600;
|
||||
|
||||
private static final int MARKS_LEADERBOARDS_JOINED = 700;
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -71,6 +73,8 @@ public class AnalyticsProvider extends ContentProvider {
|
||||
|
||||
matcher.addURI(authority, "leaderboards_marks_joined", LEADERBOARDS_MARKS_JOINED);
|
||||
|
||||
matcher.addURI(authority, "marks_leaderboards_joined", MARKS_LEADERBOARDS_JOINED);
|
||||
|
||||
return matcher;
|
||||
}
|
||||
|
||||
@@ -107,6 +111,12 @@ public class AnalyticsProvider extends ContentProvider {
|
||||
cursor = el.query(db, projection, selection, selectionArgs, null, null, sortOrder);
|
||||
return cursor;
|
||||
|
||||
case MARKS_LEADERBOARDS_JOINED:
|
||||
SQLiteQueryBuilder el2 = new SQLiteQueryBuilder();
|
||||
el2.setTables(Tables.MARKS_LEADERBOARDS_JOINED);
|
||||
cursor = el2.query(db, projection, selection, selectionArgs, null, null, sortOrder);
|
||||
return cursor;
|
||||
|
||||
default:
|
||||
final SelectionBuilder builder = buildExpandedSelection(uri);
|
||||
|
||||
|
||||
+30
-20
@@ -14,7 +14,7 @@ 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.LeaderboardInfo;
|
||||
|
||||
public class PositioningActivity extends BaseActivity implements pingListener{
|
||||
public class PositioningActivity extends BaseActivity implements pingListener {
|
||||
|
||||
private MarkInfo markInfo;
|
||||
private MarkPingInfo markPing;
|
||||
@@ -23,43 +23,50 @@ public class PositioningActivity extends BaseActivity implements pingListener{
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.fragment_container);
|
||||
Intent intent = getIntent();
|
||||
String markerID = intent.getExtras().getString(getString(R.string.mark_id));
|
||||
String checkinDigest = intent.getExtras().getString(getString(R.string.checkin_digest));
|
||||
List<MarkInfo> marks = DatabaseHelper.getInstance().getMarks(this, checkinDigest);
|
||||
leaderBoard = DatabaseHelper.getInstance().getLeaderboard(this, checkinDigest);
|
||||
for(MarkInfo mark : marks)
|
||||
{
|
||||
if(mark.getId().equals(markerID))
|
||||
{
|
||||
String markerID = intent.getExtras().getString(
|
||||
getString(R.string.mark_id));
|
||||
String checkinDigest = intent.getExtras().getString(
|
||||
getString(R.string.checkin_digest));
|
||||
List<MarkInfo> marks = DatabaseHelper.getInstance().getMarks(this,
|
||||
checkinDigest);
|
||||
leaderBoard = DatabaseHelper.getInstance().getLeaderboard(this,
|
||||
checkinDigest);
|
||||
for (MarkInfo mark : marks) {
|
||||
if (mark.getId().equals(markerID)) {
|
||||
markInfo = mark;
|
||||
return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(markInfo != null)
|
||||
{
|
||||
if (markInfo != null) {
|
||||
setPingFromDatabase(markerID);
|
||||
}
|
||||
setContentView(R.layout.fragment_container);
|
||||
|
||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
if (toolbar != null) {
|
||||
setSupportActionBar(toolbar);
|
||||
toolbar.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
|
||||
toolbar.setBackgroundColor(getResources().getColor(
|
||||
R.color.colorPrimary));
|
||||
}
|
||||
replaceFragment(R.id.content_frame, new BuoyFragment());
|
||||
if (getSupportActionBar() != null) {
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
getSupportActionBar().setHomeButtonEnabled(true);
|
||||
toolbar.setNavigationIcon(R.drawable.sap_logo_64_sq);
|
||||
toolbar.setPadding(20, 0, 0, 0);
|
||||
getSupportActionBar().setTitle(getString(R.string.title_activity_positioning));
|
||||
getSupportActionBar().setTitle(
|
||||
getString(R.string.title_activity_positioning));
|
||||
}
|
||||
BuoyFragment fragment = new BuoyFragment();
|
||||
fragment.setPingListener(this);
|
||||
replaceFragment(R.id.content_frame, fragment);
|
||||
|
||||
}
|
||||
|
||||
public void setPingFromDatabase(String markerID) {
|
||||
List<MarkPingInfo> markPings = DatabaseHelper.getInstance().getMarkPings(this, markerID);
|
||||
if(!markPings.isEmpty())
|
||||
{
|
||||
List<MarkPingInfo> markPings = DatabaseHelper.getInstance()
|
||||
.getMarkPings(this, markerID);
|
||||
if (!markPings.isEmpty()) {
|
||||
setMarkPing(markPings.get(0));
|
||||
}
|
||||
}
|
||||
@@ -67,9 +74,12 @@ public class PositioningActivity extends BaseActivity implements pingListener{
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
BuoyFragment fragment = (BuoyFragment) getSupportFragmentManager().findFragmentById(R.id.content_frame);
|
||||
BuoyFragment fragment = (BuoyFragment) getSupportFragmentManager()
|
||||
.findFragmentById(R.id.content_frame);
|
||||
if (fragment != null) {
|
||||
fragment.setPingListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
public MarkInfo getMarkInfo() {
|
||||
return markInfo;
|
||||
|
||||
+2
-2
@@ -43,6 +43,7 @@ public class HomeFragment extends AbstractHomeFragment implements
|
||||
|
||||
prefs = new AppPreferences(getActivity());
|
||||
|
||||
getLoaderManager().initLoader(REGATTA_LOADER, null, this);
|
||||
ListView listView = (ListView) view.findViewById(R.id.listRegatta);
|
||||
if (listView != null) {
|
||||
listView.addHeaderView(inflater.inflate(
|
||||
@@ -54,7 +55,6 @@ public class HomeFragment extends AbstractHomeFragment implements
|
||||
listView.setOnItemClickListener(new ItemClickListener());
|
||||
}
|
||||
|
||||
getLoaderManager().initLoader(REGATTA_LOADER, null, this);
|
||||
|
||||
return view;
|
||||
}
|
||||
@@ -125,7 +125,7 @@ public class HomeFragment extends AbstractHomeFragment implements
|
||||
switch (loaderId) {
|
||||
case REGATTA_LOADER:
|
||||
return new CursorLoader(getActivity(),
|
||||
AnalyticsContract.LeaderboardsMarksJoined.CONTENT_URI,
|
||||
AnalyticsContract.Leaderboard.CONTENT_URI,
|
||||
null, null, null, null);
|
||||
|
||||
default:
|
||||
|
||||
-4
@@ -87,10 +87,6 @@ public class RegattaFragment extends BaseFragment implements LoaderCallbacks<Cur
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
|
||||
if (position < 1) // tapped header
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Cursor cursor = (Cursor) adapter.getItem(position);
|
||||
|
||||
|
||||
+25
@@ -4,6 +4,7 @@ import java.io.UnsupportedEncodingException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLEncoder;
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -156,10 +157,12 @@ public class CheckinManager {
|
||||
public void performAction(JSONObject response) {
|
||||
try {
|
||||
JSONArray markArray = response.getJSONArray("marks");
|
||||
String checkinDigest = generateCheckindigest(urlData.uriStr);
|
||||
List<MarkInfo> marks = new ArrayList<MarkInfo>();
|
||||
for(int i = 0; i< markArray.length(); i++){
|
||||
JSONObject jsonMark = (JSONObject) markArray.get(i);
|
||||
MarkInfo mark = new MarkInfo();
|
||||
mark.setCheckinDigest(checkinDigest);
|
||||
mark.setClassName(jsonMark.getString("@class"));
|
||||
mark.setName(jsonMark.getString("name"));
|
||||
mark.setId(jsonMark.getString("id"));
|
||||
@@ -248,6 +251,28 @@ public class CheckinManager {
|
||||
setCheckinData(null);
|
||||
}
|
||||
|
||||
private String generateCheckindigest(String url)
|
||||
{
|
||||
String checkinDigest = "";
|
||||
try {
|
||||
MessageDigest md = MessageDigest.getInstance("SHA-256");
|
||||
md.update(url.getBytes("UTF-8"));
|
||||
byte[] digest = md.digest();
|
||||
StringBuffer buf = new StringBuffer();
|
||||
for (byte byt : digest) {
|
||||
buf.append(Integer.toString((byt & 0xff) + 0x100, 16).substring(1));
|
||||
checkinDigest = buf.toString();
|
||||
}
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
return checkinDigest;
|
||||
}
|
||||
|
||||
public interface CheckinDataHandler{
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user