Skip to content

Commit

Permalink
Accessibility, localization corrections and add new History Activity
Browse files Browse the repository at this point in the history
  • Loading branch information
ribertojunior committed Dec 8, 2016
1 parent 901af4c commit 764f82b
Show file tree
Hide file tree
Showing 15 changed files with 280 additions and 40 deletions.
9 changes: 6 additions & 3 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,9 @@ check {
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:25.0.0'
compile 'com.android.support:recyclerview-v7:25.0.0'
compile 'com.android.support:design:25.0.0'
compile 'com.android.support:appcompat-v7:25.0.1'
compile 'com.android.support:recyclerview-v7:25.0.1'
compile 'com.android.support:design:25.0.1'
compile 'com.jakewharton:butterknife:8.1.0'
apt 'com.jakewharton:butterknife-compiler:8.1.0'
compile 'com.google.guava:guava:19.0'
Expand All @@ -64,4 +64,7 @@ dependencies {
compile 'com.melnykov:floatingactionbutton:1.3.0'
compile 'net.sf.opencsv:opencsv:2.3'
compile 'com.github.PhilJay:MPAndroidChart:v2.2.5'

compile 'com.android.support:support-v4:25.0.1'
compile 'com.android.support:support-annotations:25.0.1'
}
9 changes: 9 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,15 @@
android:enabled="true"
android:exported="true"
android:permission="android.permission.BIND_JOB_SERVICE" />

<activity
android:name=".ui.HistoryActivity"
android:label="@string/title_activity_history"
android:parentActivityName=".ui.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.udacity.stockhawk.ui.MainActivity" />
</activity>
</application>

</manifest>
31 changes: 31 additions & 0 deletions app/src/main/java/com/udacity/stockhawk/ui/HistoryActivity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.udacity.stockhawk.ui;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

import com.udacity.stockhawk.R;

import static com.udacity.stockhawk.ui.HistoryFragment.SYMBOL_URI;

public class HistoryActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_history);
/*Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);*/
if (savedInstanceState == null) {
Bundle args = new Bundle();
args.putParcelable(SYMBOL_URI, getIntent().getData());
HistoryFragment historyFragment = new HistoryFragment();
historyFragment.setArguments(args);
getSupportFragmentManager().beginTransaction()
.add(R.id.hystory_fragment, historyFragment)
.commit();

}
}

}
105 changes: 105 additions & 0 deletions app/src/main/java/com/udacity/stockhawk/ui/HistoryFragment.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
package com.udacity.stockhawk.ui;

import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.github.mikephil.charting.charts.LineChart;
import com.github.mikephil.charting.data.Entry;
import com.github.mikephil.charting.data.LineData;
import com.github.mikephil.charting.data.LineDataSet;
import com.udacity.stockhawk.R;
import com.udacity.stockhawk.data.Contract;

import java.util.ArrayList;
import java.util.StringTokenizer;


public class HistoryFragment extends Fragment implements LoaderManager.LoaderCallbacks<Cursor> {
public static final String SYMBOL_URI = "URI";
private static final int STOCK_LOADER = 1;
private Uri mSymbolUri;

LineChart mChart;


private static final String[] HISTORY_COLUMNS ={
Contract.Quote.COLUMN_SYMBOL,
Contract.Quote.COLUMN_HISTORY
};
static final int COL_SYMBOL_ID = 0;
static final int COL_HISTORY_ID = 1;

public HistoryFragment() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Bundle args = getArguments();
mSymbolUri = args.getParcelable(SYMBOL_URI);
View rootView = inflater.inflate(R.layout.fragment_history, container, false);
mChart = (LineChart) rootView.findViewById(R.id.chart);
mChart.setDescription(getString(R.string.chart_description));

return rootView;
}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
getLoaderManager().initLoader(STOCK_LOADER, null, this);
super.onActivityCreated(savedInstanceState);
}

@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
if (mSymbolUri != null) {
return new CursorLoader(getActivity(), mSymbolUri, HISTORY_COLUMNS, null, null, null);
}
return null;
}

@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {

if (data.moveToFirst()) {
ArrayList<Entry> entries = new ArrayList<>();
ArrayList<String> xValues = new ArrayList<>();
String history = data.getString(COL_HISTORY_ID);
String value;
StringTokenizer tokenizer = new StringTokenizer(history, "\n");
int x = 0;
int count = tokenizer.countTokens() - 1;
while (tokenizer.hasMoreTokens()){
xValues.add(""+(count-x));
value = tokenizer.nextToken();
value = value.split(",")[1];
entries.add(new Entry(Float.parseFloat(value), x));
x++;
}
LineDataSet dataSet = new LineDataSet(entries, Contract.Quote.getStockFromUri(mSymbolUri));
dataSet.setColors(new int[]{R.color.white}, getContext());
dataSet.setValueTextColor(R.color.white);

LineData lineData = new LineData(xValues, dataSet);

mChart.setData(lineData);



}
}

@Override
public void onLoaderReset(Loader<Cursor> loader) {

}
}
11 changes: 10 additions & 1 deletion app/src/main/java/com/udacity/stockhawk/ui/MainActivity.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package com.udacity.stockhawk.ui;

import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
Expand Down Expand Up @@ -47,6 +50,12 @@ public class MainActivity extends AppCompatActivity implements LoaderManager.Loa
@Override
public void onClick(String symbol) {
Timber.d("Symbol clicked: %s", symbol);
Uri symbolUri = Contract.Quote.makeUriForStock(symbol);
Intent intent =
new Intent(this, HistoryActivity.class).setData(symbolUri);
ActivityCompat.startActivity(this, intent, null);


}

@Override
Expand Down Expand Up @@ -84,7 +93,7 @@ public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {

}

private boolean networkUp() {
public boolean networkUp() {
ConnectivityManager cm =
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
Expand Down
11 changes: 11 additions & 0 deletions app/src/main/res/layout/activity_history.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/hystory_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ui.HistoryActivity">

</android.support.design.widget.CoordinatorLayout>
49 changes: 31 additions & 18 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,40 +7,53 @@
android:orientation="vertical"
tools:context="com.udacity.stockhawk.ui.MainActivity">

<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipe_refresh"
<android.support.design.widget.CoordinatorLayout
android:id="@+id/coord"
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"

<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipe_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin" />
android:layout_height="match_parent">

<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin" />



</android.support.v4.widget.SwipeRefreshLayout>
<TextView
android:id="@+id/error"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textAppearance="@android:style/TextAppearance.Medium"
android:textColor="@color/white"
app:layout_anchor="@id/recycler_view"
app:layout_anchorGravity="fill"
tools:text="Error message" />

</android.support.v4.widget.SwipeRefreshLayout>

<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_gravity="bottom|end"
android:layout_margin="16dp"
android:onClick="button"
android:src="@drawable/fab_plus"
app:backgroundTint="@color/material_blue_500"
app:borderWidth="0dp"
app:elevation="6dp"
app:fabSize="normal"
app:pressedTranslationZ="12dp" />
app:pressedTranslationZ="12dp"
android:contentDescription="@string/add_a_stock"/>
</android.support.design.widget.CoordinatorLayout>

<TextView
android:id="@+id/error"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textAppearance="@android:style/TextAppearance.Medium"
android:visibility="gone"
tools:text="Error message" />
</merge>
19 changes: 19 additions & 0 deletions app/src/main/res/layout/fragment_history.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_history"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.udacity.stockhawk.ui.HistoryFragment">

<com.github.mikephil.charting.charts.LineChart
android:id="@+id/chart"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>

</RelativeLayout>
6 changes: 3 additions & 3 deletions app/src/main/res/layout/list_item_quote.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,21 @@
style="@style/StockSymbolTextStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left|center_vertical"
android:gravity="start|center_vertical"
tools:text="GOOG" />

<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right">
android:gravity="end">

<TextView
android:id="@+id/price"
style="@style/BidPriceTextStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10sp"
android:layout_marginEnd="10sp"
tools:text="1000.00" />

<TextView
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/menu/main_activity_settings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@
android:icon="@drawable/ic_dollar"
android:orderInCategory="99"
android:title="@string/action_change_units"
app:showAsAction="always" />
app:showAsAction="always" />

</menu>
10 changes: 10 additions & 0 deletions app/src/main/res/menu/menu_history.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context="com.udacity.stockhawk.ui.HistoryActivity">
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
app:showAsAction="never"
android:title="@string/action_settings" />
</menu>
6 changes: 6 additions & 0 deletions app/src/main/res/values-w820dp/dimens.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<resources>
<!-- Example customization of dimensions originally defined in res/values/dimens.xml
(such as screen margins) for screens with more than 820dp of available width. This
would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
<dimen name="activity_horizontal_margin">64dp</dimen>
</resources>
1 change: 1 addition & 0 deletions app/src/main/res/values/colors.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@
<color name="material_blue_500">#2196F3</color>
<color name="material_red_700">#D50000</color>
<color name="material_green_700">#00C853</color>
<color name="white">#FFFFFF</color>

</resources>
Loading

0 comments on commit 764f82b

Please sign in to comment.