TRACKING APP: Refactoring

This commit is contained in:
Lukas Zielinski committed 2014-11-21 17:07:14 +01:00
1 parent 47d349313a
commit 2d9872e5c1
5 files changed
+77 -63

No files matched your search

@@ -32,5 +32,8 @@
<string name="good">good</string> <string name="good">good</string>
<string name="great">great</string> <string name="great">great</string>
<string name="no_signal">no signal</string> <string name="no_signal">no signal</string>
<string name="competitor_id">CompetitorId</string>
<string name="event_id">EventId</string>
<string name="leaderboard_name">LeaderboardName</string>
</resources> </resources>
@@ -26,7 +26,7 @@
<string name="tracking_time">Tracking Time</string> <string name="tracking_time">Tracking Time</string>
<string name="regatta_name">RegattaName</string> <string name="regatta_name">RegattaName</string>
<string name="event_name">EventName</string> <string name="event_name">EventName</string>
<string name="competitor_name">CompetitorName</string> <string name="competitor_name">CompetitorName</string>
<string name="country_code">Country Code</string> <string name="country_code">Country Code</string>
<string name="sail_id">SailId</string> <string name="sail_id">SailId</string>
<string name="tracking_status">Status</string> <string name="tracking_status">Status</string>
@@ -106,6 +106,7 @@ public class AnalyticsProvider extends ContentProvider {
cursor = qb.query(db, projection, selection, selectionArgs, null, null, sortOrder); cursor = qb.query(db, projection, selection, selectionArgs, null, null, sortOrder);
return cursor; return cursor;
default: default:
final SelectionBuilder builder = buildExpandedSelection(uri); final SelectionBuilder builder = buildExpandedSelection(uri);
@@ -3,6 +3,7 @@ package com.sap.sailing.android.tracking.app.ui.activities;
import java.util.Locale; import java.util.Locale;
import android.content.Intent; import android.content.Intent;
import android.database.Cursor;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
@@ -16,11 +17,26 @@ import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import com.sap.sailing.android.tracking.app.R; import com.sap.sailing.android.tracking.app.R;
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.Competitor;
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.Event;
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.Leaderboard;
import com.sap.sailing.android.tracking.app.ui.fragments.RegattaFragment; import com.sap.sailing.android.tracking.app.ui.fragments.RegattaFragment;
public class RegattaActivity extends BaseActivity { public class RegattaActivity extends BaseActivity {
private final static String TAG = RegattaActivity.class.getName(); private final static String TAG = RegattaActivity.class.getName();
private String eventId;
private String competitorId;
private String competitorName;
private String competitorCountryCode;
private String competitorSailId;
private String eventName;
private String eventImageUrl;
private String leaderboardName;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@@ -28,10 +44,12 @@ public class RegattaActivity extends BaseActivity {
Intent intent = getIntent(); Intent intent = getIntent();
String regattaName = intent.getStringExtra(getString(R.string.regatta_name)); leaderboardName = intent.getStringExtra(getString(R.string.leaderboard_name));
String eventName = intent.getStringExtra(getString(R.string.event_name)); eventId = intent.getStringExtra(getString(R.string.event_id));
competitorId = intent.getStringExtra(getString(R.string.competitor_id));
fetchData(eventId, competitorId);
setContentView(R.layout.fragment_container); setContentView(R.layout.fragment_container);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
if (toolbar != null) { if (toolbar != null) {
@@ -41,7 +59,7 @@ public class RegattaActivity extends BaseActivity {
if (getSupportActionBar() != null) { if (getSupportActionBar() != null) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true); getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setTitle(regattaName); getSupportActionBar().setTitle(leaderboardName);
Spannable subtitle = new SpannableString("Registered for: " + eventName); Spannable subtitle = new SpannableString("Registered for: " + eventName);
StyleSpan styleBold = new StyleSpan(Typeface.BOLD); StyleSpan styleBold = new StyleSpan(Typeface.BOLD);
subtitle.setSpan(styleBold, 16, 20, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); subtitle.setSpan(styleBold, 16, 20, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
@@ -50,36 +68,48 @@ public class RegattaActivity extends BaseActivity {
replaceFragment(R.id.content_frame, new RegattaFragment()); replaceFragment(R.id.content_frame, new RegattaFragment());
} }
private void fetchData(String eventId, String competitorId)
{
Cursor cc = getContentResolver().query(Competitor.CONTENT_URI, null, "competitor_id = \"" + competitorId + "\"", null, null);
if (cc.moveToFirst()) {
competitorName = cc.getString(cc.getColumnIndex(Competitor.COMPETITOR_DISPLAY_NAME));
competitorCountryCode = cc.getString(cc.getColumnIndex(Competitor.COMPETITOR_COUNTRY_CODE));
competitorSailId = cc.getString(cc.getColumnIndex(Competitor.COMPETITOR_SAIL_ID));
}
cc.close();
Cursor ec = getContentResolver().query(Event.CONTENT_URI, null, "event_id = \"" + eventId + "\"", null, null);
if (ec.moveToFirst()) {
eventName = ec.getString(ec.getColumnIndex(Event.EVENT_NAME));
eventImageUrl = ec.getString(ec.getColumnIndex(Event.EVENT_IMAGE_URL));
}
ec.close();
}
@Override @Override
protected void onResume() { protected void onResume() {
Intent intent = getIntent();
String countryCode = intent.getStringExtra(getString(R.string.country_code));
String competitorName = intent.getStringExtra(getString(R.string.competitor_name));
String sailId = intent.getStringExtra(getString(R.string.sail_id));
TextView competitorNameTextView = (TextView)findViewById(R.id.competitor_name); TextView competitorNameTextView = (TextView)findViewById(R.id.competitor_name);
competitorNameTextView.setText(competitorName); competitorNameTextView.setText(competitorName);
TextView sailIdTextView = (TextView)findViewById(R.id.sail_id); TextView sailIdTextView = (TextView)findViewById(R.id.sail_id);
sailIdTextView.setText(sailId); sailIdTextView.setText(competitorSailId);
ImageView flagImageView = (ImageView)findViewById(R.id.flag_image); ImageView flagImageView = (ImageView)findViewById(R.id.flag_image);
//String flagStr = String.format("%s.png", countryCode); //String flagStr = String.format("%s.png", countryCode);
String uri = "@drawable/" + countryCode.toLowerCase(Locale.getDefault()); String uri = "@drawable/" + competitorCountryCode.toLowerCase(Locale.getDefault());
int imageResource = getResources().getIdentifier(uri, null, getPackageName()); int imageResource = getResources().getIdentifier(uri, null, getPackageName());
try { try {
Drawable res = getResources().getDrawable(imageResource); Drawable res = getResources().getDrawable(imageResource);
flagImageView.setImageDrawable(res); flagImageView.setImageDrawable(res);
} catch (Exception e) } catch (Exception e) {
{ e.printStackTrace();
e.printStackTrace(); }
}
super.onResume(); super.onResume();
} }
@@ -532,10 +532,8 @@ public class HomeFragment extends BaseFragment implements
JsonObjectRequest checkinRequest = new JsonObjectRequest( JsonObjectRequest checkinRequest = new JsonObjectRequest(
checkinData.checkinURL, requestObject, new CheckinListener( checkinData.checkinURL, requestObject, new CheckinListener(
checkinData.leaderboardName, checkinData.leaderboardName, checkinData.eventId,
checkinData.competitorCountryCode, checkinData.competitorId),
checkinData.competitorDisplayName,
checkinData.competitorSailId),
new CheckinErrorListener()); new CheckinErrorListener());
VolleyHelper.getInstance(getActivity()).addRequest(checkinRequest); VolleyHelper.getInstance(getActivity()).addRequest(checkinRequest);
@@ -595,14 +593,12 @@ public class HomeFragment extends BaseFragment implements
* @param regattaName * @param regattaName
* @param eventName * @param eventName
*/ */
private void startRegatta(String regattaName, String eventName, private void startRegatta(String leaderboardName, String eventId,
String countryCode, String competitorName, String sailId) { String competitorId) {
Intent intent = new Intent(getActivity(), RegattaActivity.class); Intent intent = new Intent(getActivity(), RegattaActivity.class);
intent.putExtra(getString(R.string.regatta_name), regattaName); intent.putExtra(getString(R.string.leaderboard_name), leaderboardName);
intent.putExtra(getString(R.string.event_name), eventName); intent.putExtra(getString(R.string.event_id), eventId);
intent.putExtra(getString(R.string.competitor_name), competitorName); intent.putExtra(getString(R.string.competitor_id), competitorId);
intent.putExtra(getString(R.string.country_code), countryCode);
intent.putExtra(getString(R.string.sail_id), sailId);
getActivity().startActivity(intent); getActivity().startActivity(intent);
} }
@@ -698,54 +694,38 @@ public class HomeFragment extends BaseFragment implements
// a // a
// header // header
// row // row
prefs.setServerURL(cursor.getString(cursor prefs.setServerURL(cursor.getString(cursor
.getColumnIndex(Event.EVENT_SERVER))); .getColumnIndex(Event.EVENT_SERVER)));
// String competitorId =
// cursor.getString(cursor.getColumnIndex("competitor_id"));
// String eventServer =
// cursor.getString(cursor.getColumnIndex("event_server"));
String leaderboardName = cursor.getString(cursor String leaderboardName = cursor.getString(cursor
.getColumnIndex("leaderboard_name")); .getColumnIndex("leaderboard_name"));
String competitorName = cursor.getString(cursor String competitorId = cursor.getString(cursor
.getColumnIndex("competitor_display_name")); .getColumnIndex("competitor_id"));
String countryCode = cursor.getString(cursor String eventId = cursor.getString(cursor
.getColumnIndex("competitor_country_code")); .getColumnIndex("event_id"));
String sailId = cursor.getString(cursor
.getColumnIndex("competitor_sail_id"));
startRegatta(leaderboardName, leaderboardName, countryCode, startRegatta(leaderboardName, eventId, competitorId);
competitorName, sailId);
} }
} }
private class CheckinListener implements Listener<JSONObject> { private class CheckinListener implements Listener<JSONObject> {
public String leaderboardName; public String leaderboardName;
public String countryCode; public String eventId;
public String sailId; public String competitorId;
public String competitorName;
public CheckinListener(String leaderboardName, String countryCode, public CheckinListener(String leaderboardName, String eventId,
String competitorName, String sailId) { String competitorId) {
try { this.leaderboardName = leaderboardName;
this.leaderboardName = URLDecoder.decode(leaderboardName, this.eventId = eventId;
"UTF-8"); this.competitorId = competitorId;
this.countryCode = countryCode;
this.competitorName = competitorName;
this.sailId = sailId;
} catch (UnsupportedEncodingException e) {
ExLog.e(getActivity(), TAG, "UnsupportedEncodingException: "
+ e.getMessage());
}
} }
@Override @Override
public void onResponse(JSONObject response) { public void onResponse(JSONObject response) {
// TODO: twice the same string here startRegatta(leaderboardName, eventId, competitorId);
startRegatta(leaderboardName, leaderboardName, countryCode,
competitorName, sailId);
} }
} }