diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fbdf612..5637d70 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -31,6 +31,12 @@ android:name="android.support.PARENT_ACTIVITY" android:value=".MainActivity" /> + + + \ No newline at end of file diff --git a/app/src/main/java/com/example/hochi/nextcompanion/MainActivity.java b/app/src/main/java/com/example/hochi/nextcompanion/MainActivity.java index 1eeedf2..e490aec 100644 --- a/app/src/main/java/com/example/hochi/nextcompanion/MainActivity.java +++ b/app/src/main/java/com/example/hochi/nextcompanion/MainActivity.java @@ -17,6 +17,7 @@ import android.widget.ArrayAdapter; import android.widget.ListView; import org.json.JSONArray; +import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; @@ -101,6 +102,8 @@ public class MainActivity extends AppCompatActivity implements AsyncTaskCallback @Override public void onTaskComplete(String response) { + final Context context = this; + if (!response.isEmpty()) { final ArrayList list = new ArrayList<>(); try { @@ -122,13 +125,31 @@ public class MainActivity extends AppCompatActivity implements AsyncTaskCallback final ArrayAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, list); listview.setAdapter(adapter); + + try { + final JSONObject jObject = new JSONObject(response); + final JSONArray bikesArray = jObject.getJSONArray("rentalCollection"); listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, final View view, int position, long id) { - //TODO: Return bike + Intent intent = new Intent(context, ReturnActivity.class); + try { + JSONObject bike = bikesArray.getJSONObject(position); + String bID = bike.getString("bike"); + String stID = bike.getString("start_place"); + String[] bikeArray = {bID, stID}; + intent.putExtra("bike", bikeArray); + startActivity(intent); + } + catch (JSONException e) { + e.printStackTrace(); + } } }); + } catch (JSONException e) { + e.printStackTrace(); + } } else { //TODO: implement error handling diff --git a/app/src/main/java/com/example/hochi/nextcompanion/ReturnActivity.java b/app/src/main/java/com/example/hochi/nextcompanion/ReturnActivity.java new file mode 100644 index 0000000..58cf5de --- /dev/null +++ b/app/src/main/java/com/example/hochi/nextcompanion/ReturnActivity.java @@ -0,0 +1,61 @@ +package com.example.hochi.nextcompanion; + +import android.content.Intent; +import android.content.SharedPreferences; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import java.util.Arrays; + +public class ReturnActivity extends AppCompatActivity implements AsyncTaskCallbacks { + private RequestHandler returnRequestTask = null; + private String[] bikeArray; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_return); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + + Intent intent = getIntent(); + bikeArray = intent.getStringArrayExtra("bike"); + + Button mReturnSubmitButton = findViewById(R.id.return_submit_button); + mReturnSubmitButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + returnRequest(); + } + }); + } + void returnRequest() { + TextView mStationInput; + mStationInput = findViewById(R.id.return_station_id); + String stationID = mStationInput.getText().toString(); + //get loginkey + SharedPreferences sharedPref = getSharedPreferences("persistence", MODE_PRIVATE); + String defaultValue = "nokey"; + String loginKey = sharedPref.getString("loginKey", defaultValue); + + String[] params = { + "apikey=", getString(R.string.apikey), + "bike=", bikeArray[0], + "loginkey=", loginKey, + "station=", stationID, + "comment=", "return bike" + }; + returnRequestTask = new RequestHandler(this, "POST", + "api/return.json", params); + returnRequestTask.execute((Void) null); + } + + @Override + public void onTaskComplete(String response) { + Log.d("DEBUG", response); + finish(); + } +} diff --git a/app/src/main/res/layout/activity_return.xml b/app/src/main/res/layout/activity_return.xml new file mode 100644 index 0000000..556d43e --- /dev/null +++ b/app/src/main/res/layout/activity_return.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + +