Skip to content

Commit

Permalink
Adding units settings to CSC, RSC, HTM.
Browse files Browse the repository at this point in the history
  • Loading branch information
philips77 committed Mar 2, 2015
1 parent bc520dc commit c245a33
Show file tree
Hide file tree
Showing 31 changed files with 707 additions and 88 deletions.
4 changes: 3 additions & 1 deletion app/app.iml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" type="JAVA_MODULE" version="4">
<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="nRFToolbox" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="android-gradle" name="Android-Gradle">
<configuration>
Expand All @@ -9,6 +9,7 @@
<facet type="android" name="Android">
<configuration>
<option name="SELECTED_BUILD_VARIANT" value="debug" />
<option name="SELECTED_TEST_ARTIFACT" value="_android_test_" />
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
<option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugTest" />
Expand All @@ -24,6 +25,7 @@
</component>
<component name="NewModuleRootManager" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
<output-test url="file://$MODULE_DIR$/build/intermediates/classes/test/debug" />
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
Expand Down
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ android {
applicationId "no.nordicsemi.android.nrftoolbox"
minSdkVersion 18
targetSdkVersion 21
versionCode 27
versionName "1.11.4"
versionCode 28
versionName "1.11.5"
}
buildTypes {
release {
Expand Down
16 changes: 11 additions & 5 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="no.nordicsemi.android.nrftoolbox"
android:installLocation="auto"
android:versionCode="27"
android:versionName="1.11.4" >
android:versionCode="28"
android:versionName="1.11.5" >

<uses-sdk
android:minSdkVersion="18"
Expand Down Expand Up @@ -96,6 +96,9 @@
<category android:name="no.nordicsemi.android.nrftoolbox.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="no.nordicsemi.android.nrftoolbox.hts.settings.SettingsActivity"
android:label="@string/hts_settings_title" />
<activity
android:name="no.nordicsemi.android.nrftoolbox.bpm.BPMActivity"
android:icon="@drawable/ic_bpm_feature"
Expand Down Expand Up @@ -138,6 +141,9 @@
<category android:name="no.nordicsemi.android.nrftoolbox.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="no.nordicsemi.android.nrftoolbox.rsc.settings.SettingsActivity"
android:label="@string/rsc_settings_title" />
<activity
android:name="no.nordicsemi.android.nrftoolbox.csc.CSCActivity"
android:icon="@drawable/ic_csc_feature"
Expand All @@ -149,6 +155,9 @@
<category android:name="no.nordicsemi.android.nrftoolbox.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="no.nordicsemi.android.nrftoolbox.csc.settings.SettingsActivity"
android:label="@string/csc_settings_title" />
<activity
android:name="no.nordicsemi.android.nrftoolbox.uart.UARTActivity"
android:icon="@drawable/ic_uart_feature"
Expand All @@ -161,9 +170,6 @@
<category android:name="no.nordicsemi.android.nrftoolbox.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="no.nordicsemi.android.nrftoolbox.csc.settings.SettingsActivity"
android:label="@string/csc_settings_title" />

<service
android:name="no.nordicsemi.android.nrftoolbox.proximity.ProximityService"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
import android.widget.Toast;

public class FeaturesActivity extends ActionBarActivity {
private static final String MCP_CATEGORY = "no.nordicsemi.android.nrftoolbox.LAUNCHER";
private static final String UTILS_CATEGORY = "no.nordicsemi.android.nrftoolbox.UTILS";
private static final String MCP_PACKAGE = "no.nordicsemi.android.mcp";
private static final String MCP_CLASS = MCP_PACKAGE + ".DeviceListActivity";
Expand Down Expand Up @@ -127,6 +128,7 @@ private void setupPluginsInDrawer(final ViewGroup container) {

// look for Master Control Panel
final Intent mcpIntent = new Intent(Intent.ACTION_MAIN);
mcpIntent.addCategory(MCP_CATEGORY);
mcpIntent.setClassName(MCP_PACKAGE, MCP_CLASS);
final ResolveInfo mcpInfo = pm.resolveActivity(mcpIntent, 0);

Expand All @@ -136,7 +138,7 @@ private void setupPluginsInDrawer(final ViewGroup container) {
mcpItem.setTextColor(Color.GRAY);
ColorMatrix grayscale = new ColorMatrix();
grayscale.setSaturation(0.0f);
mcpItem.getCompoundDrawables()[0].setColorFilter(new ColorMatrixColorFilter(grayscale));
mcpItem.getCompoundDrawables()[0].mutate().setColorFilter(new ColorMatrixColorFilter(grayscale));
}
mcpItem.setOnClickListener(new View.OnClickListener() {
@Override
Expand All @@ -145,6 +147,7 @@ public void onClick(final View v) {
if (mcpInfo == null)
action = new Intent(Intent.ACTION_VIEW, Uri.parse(MCP_MARKET_URI));
action.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
action.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try {
startActivity(action);
} catch (final ActivityNotFoundException e) {
Expand Down Expand Up @@ -172,6 +175,7 @@ public void onClick(final View v) {
final Intent intent = new Intent();
intent.setComponent(new ComponentName(info.activityInfo.packageName, info.activityInfo.name));
intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
mDrawerLayout.closeDrawers();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,23 +26,28 @@

import no.nordicsemi.android.nrftoolbox.R;
import no.nordicsemi.android.nrftoolbox.csc.settings.SettingsActivity;
import no.nordicsemi.android.nrftoolbox.csc.settings.SettingsFragment;
import no.nordicsemi.android.nrftoolbox.profile.BleProfileService;
import no.nordicsemi.android.nrftoolbox.profile.BleProfileServiceReadyActivity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.content.LocalBroadcastManager;
import android.view.Menu;
import android.widget.TextView;

public class CSCActivity extends BleProfileServiceReadyActivity<CSCService.CSCBinder> {
private TextView mSpeedView;
private TextView mSpeedUnitView;
private TextView mCadenceView;
private TextView mDistanceView;
private TextView mDistanceUnitView;
private TextView mTotalDistanceView;
private TextView mTotalDistanceUnitView;
private TextView mGearRatioView;

@Override
Expand All @@ -64,21 +69,53 @@ protected void onDestroy() {

private void setGui() {
mSpeedView = (TextView) findViewById(R.id.speed);
mSpeedUnitView = (TextView) findViewById(R.id.speed_unit);
mCadenceView = (TextView) findViewById(R.id.cadence);
mDistanceView = (TextView) findViewById(R.id.distance);
mDistanceUnitView = (TextView) findViewById(R.id.distance_unit);
mTotalDistanceView = (TextView) findViewById(R.id.distance_total);
mTotalDistanceUnitView = (TextView) findViewById(R.id.distance_total_unit);
mGearRatioView = (TextView) findViewById(R.id.ratio);
}

@Override
protected void onResume() {
super.onResume();
setDefaultUI();
}

@Override
protected void setDefaultUI() {
mSpeedView.setText(R.string.not_available_value);
mCadenceView.setText(R.string.not_available_value);
mDistanceView.setText(R.string.not_available_value);
mDistanceUnitView.setText(R.string.csc_distance_unit_m);
mTotalDistanceView.setText(R.string.not_available_value);
mGearRatioView.setText(R.string.not_available_value);

setUnits();
}

private void setUnits() {
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
final int unit = Integer.parseInt(preferences.getString(SettingsFragment.SETTINGS_UNIT, String.valueOf(SettingsFragment.SETTINGS_UNIT_DEFAULT)));

switch (unit) {
case SettingsFragment.SETTINGS_UNIT_M_S: // [m/s]
mSpeedUnitView.setText(R.string.csc_speed_unit_m_s);
mDistanceUnitView.setText(R.string.csc_distance_unit_m);
mTotalDistanceUnitView.setText(R.string.csc_total_distance_unit_km);
break;
case SettingsFragment.SETTINGS_UNIT_KM_H: // [km/h]
mSpeedUnitView.setText(R.string.csc_speed_unit_km_h);
mDistanceUnitView.setText(R.string.csc_distance_unit_m);
mTotalDistanceUnitView.setText(R.string.csc_total_distance_unit_km);
break;
case SettingsFragment.SETTINGS_UNIT_MPH: // [mph]
mSpeedUnitView.setText(R.string.csc_speed_unit_mph);
mDistanceUnitView.setText(R.string.csc_distance_unit_yd);
mTotalDistanceUnitView.setText(R.string.csc_total_distance_unit_mile);
break;
}
}

@Override
Expand All @@ -98,7 +135,7 @@ protected int getAboutTextId() {

@Override
public boolean onCreateOptionsMenu(final Menu menu) {
getMenuInflater().inflate(R.menu.csc_menu, menu);
getMenuInflater().inflate(R.menu.settings_and_about, menu);
return true;
}

Expand Down Expand Up @@ -138,17 +175,40 @@ public void onServicesDiscovered(final boolean optionalServicesFound) {
// not used
}

private void onMeasurementReceived(final float speed, final float distance, final float totalDistance) {
mSpeedView.setText(String.format("%.1f", speed));
if (distance < 1000) { // 1 km in m
mDistanceView.setText(String.format("%.0f", distance));
mDistanceUnitView.setText(R.string.csc_distance_unit_m);
} else {
mDistanceView.setText(String.format("%.2f", distance / 1000.0f));
mDistanceUnitView.setText(R.string.csc_distance_unit_km);
private void onMeasurementReceived(float speed, float distance, float totalDistance) {
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
final int unit = Integer.parseInt(preferences.getString(SettingsFragment.SETTINGS_UNIT, String.valueOf(SettingsFragment.SETTINGS_UNIT_DEFAULT)));

switch (unit) {
case SettingsFragment.SETTINGS_UNIT_KM_H:
speed = speed * 3.6f;
// pass through intended
case SettingsFragment.SETTINGS_UNIT_M_S:
if (distance < 1000) { // 1 km in m
mDistanceView.setText(String.format("%.0f", distance));
mDistanceUnitView.setText(R.string.csc_distance_unit_m);
} else {
mDistanceView.setText(String.format("%.2f", distance / 1000.0f));
mDistanceUnitView.setText(R.string.csc_distance_unit_km);
}

mTotalDistanceView.setText(String.format("%.2f", totalDistance / 1000.0f));
break;
case SettingsFragment.SETTINGS_UNIT_MPH:
speed = speed * 2.2369f;
if (distance < 1760) { // 1 mile in yrs
mDistanceView.setText(String.format("%.0f", distance));
mDistanceUnitView.setText(R.string.csc_distance_unit_yd);
} else {
mDistanceView.setText(String.format("%.2f", distance / 1760.0f));
mDistanceUnitView.setText(R.string.csc_distance_unit_mile);
}

mTotalDistanceView.setText(String.format("%.2f", totalDistance / 1609.31f));
break;
}

mTotalDistanceView.setText(String.format("%.2f", totalDistance / 1000.0f));
mSpeedView.setText(String.format("%.1f", speed));
}

private void onGearRatioUpdate(final float ratio, final int cadence) {
Expand All @@ -162,7 +222,7 @@ public void onReceive(final Context context, final Intent intent) {
final String action = intent.getAction();

if (CSCService.BROADCAST_WHEEL_DATA.equals(action)) {
final float speed = intent.getFloatExtra(CSCService.EXTRA_SPEED, 0.0f);
final float speed = intent.getFloatExtra(CSCService.EXTRA_SPEED, 0.0f); // [m/s]
final float distance = intent.getFloatExtra(CSCService.EXTRA_DISTANCE, CSCManagerCallbacks.NOT_AVAILABLE);
final float totalDistance = intent.getFloatExtra(CSCService.EXTRA_TOTAL_DISTANCE, CSCManagerCallbacks.NOT_AVAILABLE);
// Update GUI
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,12 @@
public class SettingsFragment extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener {
public static final String SETTINGS_WHEEL_SIZE = "settings_wheel_size";
public static final int SETTINGS_WHEEL_SIZE_DEFAULT = 2340;
public static final String SETTINGS_UNIT = "settings_csc_unit";
public static final int SETTINGS_UNIT_M_S = 0; // [m/s]
public static final int SETTINGS_UNIT_KM_H = 1; // [m/s]
public static final int SETTINGS_UNIT_MPH = 2; // [m/s]
public static final int SETTINGS_UNIT_DEFAULT = SETTINGS_UNIT_KM_H;


@Override
public void onCreate(final Bundle savedInstanceState) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -417,7 +417,7 @@ private void copyRawResource(final int rawResId, final File dest) {

@Override
public boolean onCreateOptionsMenu(final Menu menu) {
getMenuInflater().inflate(R.menu.dfu_menu, menu);
getMenuInflater().inflate(R.menu.settings_and_about, menu);
return true;
}

Expand Down
Loading

0 comments on commit c245a33

Please sign in to comment.