package com.eleks.tesla.mainApp.fragments;
import android.app.Activity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.eleks.tesla.R;
import com.eleks.tesla.events.ChargeStateLoadedEvent;
import com.eleks.tesla.events.ClimateStateLoadedEvent;
import com.eleks.tesla.events.DriveStateLoadedEvent;
import com.eleks.tesla.events.ToHandHoldRequestEvent;
import com.eleks.tesla.events.VehicleStateLoadedEvent;
import de.greenrobot.event.EventBus;
import static com.eleks.tesla.teslalib.ApiPathConstants.*;
/**
* Created by maryan.melnychuk on 20.02.2015.
*/
public class StatusTeslaFragment extends BaseTeslaFragment {
private boolean isGetChargeRunning, isGetClimateRunning, isGetDriveRunning, isGetVehicleRunning;
private ProgressBar mLoadingBar;
private TextView mLoadingText;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
EventBus.getDefault().register(this);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
loadData();
}
private void loadData() {
EventBus.getDefault().post(new ToHandHoldRequestEvent(WEAR_GET_CHARGE_STATE));
isGetChargeRunning = true;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_status, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mLoadingBar = (ProgressBar) view.findViewById(R.id.loading_bar);
mLoadingText = (TextView) view.findViewById(R.id.loading_status);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loadData();
}
});
}
public void onEventMainThread(ChargeStateLoadedEvent event) {
isGetChargeRunning = false;
EventBus.getDefault().post(new ToHandHoldRequestEvent(WEAR_GET_CLIMATE_STATE));
isGetClimateRunning = true;
}
public void onEventMainThread(ClimateStateLoadedEvent event) {
isGetClimateRunning = false;
EventBus.getDefault().post(new ToHandHoldRequestEvent(WEAR_GET_DRIVE_STATE));
isGetDriveRunning = true;
}
public void onEventMainThread(DriveStateLoadedEvent event) {
isGetDriveRunning = false;
EventBus.getDefault().post(new ToHandHoldRequestEvent(WEAR_GET_VEHICLE_STATE));
isGetVehicleRunning = true;
}
public void onEventMainThread(VehicleStateLoadedEvent event) {
isGetVehicleRunning = false;
showDataLoaded();
}
private void showDataLoaded() {
if (hasntRunningRequests()) {
mLoadingBar.setVisibility(View.INVISIBLE);
mLoadingText.setText(getString(R.string.data_loaded));
}
}
@Override
public void onDetach() {
super.onDetach();
EventBus.getDefault().unregister(this);
}
private boolean hasntRunningRequests() {
return !isGetChargeRunning && !isGetVehicleRunning && !isGetDriveRunning && !isGetClimateRunning;
}
}