This commit is contained in:
Bennet Brunsen committed 2015-03-24 11:46:10 +01:00
1 parent 78de07226a
commit b5e7183e58
8 files changed
+80 -29

No files matched your search

@@ -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);
}
}
}
@@ -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() {
}
@@ -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 + " )";
}
@@ -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);
@@ -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;
@@ -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:
@@ -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);
@@ -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{
}