Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pl.wsb.zpam.laboratorium3.ztm.parser;
- import org.json.JSONException;
- import org.json.JSONObject;
- import pl.wsb.zpam.laboratorium3.ztm.model.TimeItem;
- public class TimeItemJsonParser
- {
- public TimeItem parse(String json) throws JSONException
- {
- JSONObject jsonObject = new JSONObject(json);
- return parse(jsonObject);
- }
- {
- "estimatedTime":"15:27",
- "headsign":"Jelitkowo",
- "routeId":6
- }
- public TimeItem parse(JSONObject jsonObject)
- {
- TimeItem timeItem = new TimeItem();
- // TODO! Zadanie 3.1 - zaimplementowac parsowanie JSON reprezentujacego pojedynczy wpis na rozkladzie jazdy ZTM
- // Na potrzeby tego zadania nalezy obslugiwac nastepujace pola JSONa:
- // * routeId
- // * estimatedTime
- // * headsign
- // Przykladowy plik JSON zawierajacy pojedynczy wpis: SampleTimeItem.json
- // Przykladowy kod parsujacy pojedyncza wlasciwosc obiiektu JSON
- // int delayInSeconds = jsonObject.optInt("delayInSeconds");
- // timeItem.setDelayInSeconds(delayInSeconds);
- int estimatedTime = jsonObject.optString("estimatedTime");
- String headsign = jsonObject.optString("headsign");
- int routeid = jsonObject.optInt("routeid");
- return timeItem;
- }
- }
- package pl.wsb.zpam.laboratorium3.demo.timer;
- import android.arch.lifecycle.LiveData;
- import android.arch.lifecycle.MutableLiveData;
- import android.arch.lifecycle.ViewModel;
- import java.util.Random;
- import java.util.Timer;
- import java.util.TimerTask;
- // TODO! Zadanie 2. Zmodyfikowac kod tak, aby otrzymac stop zwiekszajacy licznik co 1 sekunde.
- // Przycisk "Start" powoduje wystartowanie licznika od aktualnego stanu.
- // Przycisk "Stop" powoduje zatrzymanie stopera, bez wyzerowania licznika. Ponowne wcisnięcie przycisku "Start" powoduje kontynuowanie zwiekszania licznika stopera
- // Dodac przycisk "Reset", ktorego wcisniecie spowoduje wyzerowanie licznika, ale nie wplywa na wznowienie/zatrzymanie stopera.
- public class TimerViewModel extends ViewModel
- {
- private Timer timer;
- private MutableLiveData<String> liveDataText;
- public TimerViewModel()
- {
- this.liveDataText = new MutableLiveData<>();
- }
- int value = 0;
- public void startTimer()
- {
- TimerTask timerTask = new TimerTask()
- {
- @Override
- public void run()
- {
- value = value + 1;
- String str = Integer.toString(value);
- liveDataText.postValue(str);
- }
- };
- this.stopTimer();
- this.timer = new Timer();
- this.timer.schedule(timerTask, 0, 1000);
- }
- public void stopTimer()
- {
- if (null != this.timer)
- {
- this.timer.cancel();
- this.timer = null;
- }
- }
- public void resetTimer()
- {
- value = 0;
- String str = Integer.toString(value);
- liveDataText.postValue(str);
- }
- public MutableLiveData<String> getLiveDataText()
- {
- return this.liveDataText;
- }
- @Override
- protected void onCleared()
- {
- super.onCleared();
- this.stopTimer();
- }
- }
- package pl.wsb.zpam.laboratorium3.demo.timer;
- import android.arch.lifecycle.Observer;
- import android.arch.lifecycle.ViewModelProviders;
- import android.support.annotation.Nullable;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.TextView;
- import pl.wsb.zpam.laboratorium3.R;
- import pl.wsb.zpam.laboratorium3.demo.viewmodel.SampleViewModel;
- public class TimerActivity extends AppCompatActivity
- {
- private TimerViewModel viewModel;
- private TextView textViewTimerValue;
- @Override
- protected void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_timer);
- textViewTimerValue = findViewById(R.id.textViewTimerValue);
- // Pobranie obiektu "ViewModel" przypisanego do aktywnosci
- viewModel = ViewModelProviders.of(this).get(TimerViewModel.class);
- Observer<String> observer = new Observer<String>()
- {
- @Override
- public void onChanged(@Nullable String value)
- {
- // Kod wywolywany, gdy zmieni sie wartosc
- textViewTimerValue.setText(value);
- }
- };
- viewModel.getLiveDataText().observe(this, observer);
- }
- public void onBtnStartTimerClicked(View view)
- {
- viewModel.startTimer();
- }
- public void onBtnStopTimerClicked(View view)
- {
- viewModel.stopTimer();
- }
- public void onBtnResetTimerClicked(View view) { viewModel.resetTimer();
- }
- }
- package pl.wsb.zpam.laboratorium3;
- import android.content.Intent;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.view.View;
- import pl.wsb.zpam.laboratorium3.demo.json.JsonActivity;
- import pl.wsb.zpam.laboratorium3.demo.timer.TimerActivity;
- import pl.wsb.zpam.laboratorium3.demo.viewmodel.VMActivity;
- import pl.wsb.zpam.laboratorium3.ztm.TimetableActivity;
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- }
- public void onBtnViewModelClicked(View view)
- {
- Intent intent = new Intent(this, VMActivity.class);
- startActivity(intent);
- }
- public void onBtnTimerClicked(View view)
- {
- Intent intent = new Intent(this, TimerActivity.class);
- startActivity(intent);
- }
- public void onBtnJsonClicked(View view)
- {
- Intent intent = new Intent(this, JsonActivity.class);
- startActivity(intent);
- }
- public void onBtnTimetableClicked(View view)
- {
- Intent intent = new Intent(this, TimetableActivity.class);
- startActivity(intent);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement