From 08eacbe89daf39656a21a30076a0a22cce6ef7ba Mon Sep 17 00:00:00 2001
From: Paul Makles <paulmakles@gmail.com>
Date: Sun, 25 Nov 2018 21:40:13 +0000
Subject: [PATCH] Finish up functionality

---
 App.js | 34 ++++++++++++++++++++++++++++++++--
 1 file changed, 32 insertions(+), 2 deletions(-)

diff --git a/App.js b/App.js
index 2e26d27..61902fc 100644
--- a/App.js
+++ b/App.js
@@ -156,11 +156,13 @@ class BusArrivals extends Component {
 			name: props.name,
 			id: props.id,
 			data: [],
-			updated: 'never'
+			updated: 'never',
+			visible: true,
 		};
 	}
 
 	render() {
+		if (!this.state.visible) return null;
 		return (
 			<View>
 				<Text style={estyles.header}>{this.state.name}</Text>
@@ -168,6 +170,29 @@ class BusArrivals extends Component {
 				{Object.keys(this.state.data).map(i => {
           			return (<BusArrival item={this.state.data[i]} key={this.state.data[i].key} />);
         		})}
+				<Button
+					onPress={() => {
+						AsyncStorage.getItem('myStops').then(x => {
+							let arr = JSON.parse(x);
+							let j = -1;
+							for (let i=0;i<arr.length;i++) {
+								if (arr[i].id == this.state.id) j = i;
+							}
+							if (j > -1) {
+								arr.splice(j, 1);
+								AsyncStorage.setItem('myStops', JSON.stringify(arr)).then(() => {
+									!this.isCancelled && this.setState({visible: false});
+									ToastAndroid.show('Removed stop!', ToastAndroid.SHORT);
+								});
+							} else {
+								ToastAndroid.show('Could not remove stop!', ToastAndroid.SHORT);
+							}
+						}).catch(() => {
+							ToastAndroid.show('Encountered an error!', ToastAndroid.SHORT);
+						});
+					}}
+					title="Remove this stop"
+				/>
 			</View>
 		);
 	}
@@ -190,6 +215,7 @@ class BusArrivals extends Component {
 	}
 
 	update() {
+		if (!this.state.visible) return;
 		return request.bus.stop(this.state.id)
 			.then(data => {
 				let list = [];
@@ -306,7 +332,11 @@ class SearchEntry extends Component {
 								ToastAndroid.show('Added to your stops!', ToastAndroid.SHORT);
 							});
 							let arr = JSON.parse(x);
-							if (arr.indexOf(d) > -1) {
+							let found = false;
+							arr.forEach(y => {
+								if (y.id == this.state.id) found = true;
+							});
+							if (found) {
 								ToastAndroid.show('Already added!', ToastAndroid.SHORT);
 							} else {
 								arr.push(d);
-- 
GitLab