diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 147c7a8..d4c79f8 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,147 +1,139 @@
+ xmlns:tools="http://schemas.android.com/tools"
+ package="eu.csc.vehown">
-
-
+
+
-
-
+
+
+ android:name="android.hardware.camera"
+ android:required="false"/>
-
-
-
-
-
-
-
-
-
-
-
-
+ android:networkSecurityConfig="@xml/network_security_config"
+ android:roundIcon="@mipmap/ic_launcher_round"
+ android:supportsRtl="true"
+ android:theme="@style/Theme.VehicleOwner"
+ android:usesCleartextTraffic="true"
+ tools:targetApi="n">
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+ android:name=".ui.base.BaseRegistrationActivity"
+ android:exported="true"
+ android:label="@string/title_activity_base_registration">
+ android:name="android.support.PARENT_ACTIVITY"
+ android:value=".ui.main.MainActivity"/>
+ android:name=".ui.md.ItemDetailHostActivity"
+ android:exported="true"
+ android:label="@string/title_activity_item_detail_host"
+ android:resizeableActivity="true"
+ tools:targetApi="24"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:name="androidx.core.content.FileProvider"
+ android:authorities="eu.csc.app.fileprovider"
+ android:exported="false"
+ android:grantUriPermissions="true">
+ android:name="android.support.FILE_PROVIDER_PATHS"
+ android:resource="@xml/file_paths"/>
-
+
+ android:name=".broadcast.StartupReceiver"
+ android:enabled="true"
+ android:exported="true">
-
+
-
+
-
-
-
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/eu/csc/vehown/ui/IEditTextChecker.java b/app/src/main/java/eu/csc/vehown/ui/IEditTextChecker.java
new file mode 100644
index 0000000..4e6a0b8
--- /dev/null
+++ b/app/src/main/java/eu/csc/vehown/ui/IEditTextChecker.java
@@ -0,0 +1,6 @@
+package eu.csc.vehown.ui;
+
+public interface IEditTextChecker {
+
+ void check();
+}
diff --git a/app/src/main/java/eu/csc/vehown/ui/register/TextChangedListener.java b/app/src/main/java/eu/csc/vehown/ui/TextChangedListener.java
similarity index 65%
rename from app/src/main/java/eu/csc/vehown/ui/register/TextChangedListener.java
rename to app/src/main/java/eu/csc/vehown/ui/TextChangedListener.java
index bdd3043..e4c9f43 100644
--- a/app/src/main/java/eu/csc/vehown/ui/register/TextChangedListener.java
+++ b/app/src/main/java/eu/csc/vehown/ui/TextChangedListener.java
@@ -1,23 +1,13 @@
-package eu.csc.vehown.ui.register;
+package eu.csc.vehown.ui;
import android.text.Editable;
import android.text.TextWatcher;
-import android.view.View;
-import android.widget.Button;
-import android.widget.EditText;
-import android.widget.Spinner;
-
-import java.util.List;
-
-interface IEditTextChecker {
- void check();
-}
public class TextChangedListener implements TextWatcher {
private final IEditTextChecker checker;
- TextChangedListener(IEditTextChecker checker) {
+ public TextChangedListener(IEditTextChecker checker) {
this.checker = checker;
}
diff --git a/app/src/main/java/eu/csc/vehown/ui/base/ActivityBaseDetailContent.java b/app/src/main/java/eu/csc/vehown/ui/base/ActivityBaseDetailContent.java
index 303fe1f..da11da3 100644
--- a/app/src/main/java/eu/csc/vehown/ui/base/ActivityBaseDetailContent.java
+++ b/app/src/main/java/eu/csc/vehown/ui/base/ActivityBaseDetailContent.java
@@ -9,10 +9,6 @@ import android.util.Log;
import eu.csc.vehown.R;
import eu.csc.vehown.ui.fragments.details.FragmentDetailDevice;
-import eu.csc.vehown.ui.fragments.details.FragmentDetailVehicle;
-import eu.csc.vehown.ui.md.ItemDetailFragment;
-import eu.csc.vehown.ui.register.RegisterVehicleActivity;
-import eu.csc.vehown.ui.register.ShowVehiclesAndDevicesFragment;
import eu.csc.vehown.ui.registration.devices.DeviceRegistrationFragment;
import eu.csc.vehown.ui.registration.vehicle.FragmentVehicleRegistration;
diff --git a/app/src/main/java/eu/csc/vehown/ui/login/LoginActivity.java b/app/src/main/java/eu/csc/vehown/ui/login/LoginActivity.java
index a0a86f2..950a3c3 100644
--- a/app/src/main/java/eu/csc/vehown/ui/login/LoginActivity.java
+++ b/app/src/main/java/eu/csc/vehown/ui/login/LoginActivity.java
@@ -1,34 +1,16 @@
package eu.csc.vehown.ui.login;
-import android.app.Activity;
-import android.content.Intent;
-
import androidx.fragment.app.FragmentTransaction;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
import android.os.Bundle;
-import androidx.annotation.Nullable;
-import androidx.annotation.StringRes;
import androidx.appcompat.app.AppCompatActivity;
-import android.text.Editable;
-import android.text.TextWatcher;
-import android.view.KeyEvent;
import android.view.View;
-import android.view.inputmethod.EditorInfo;
import android.widget.Button;
-import android.widget.EditText;
-import android.widget.ProgressBar;
-import android.widget.TextView;
-import android.widget.Toast;
import eu.csc.vehown.R;
import eu.csc.vehown.ui.fragments.ui.login.LoginFragment;
-import eu.csc.vehown.ui.models.LoggedInUserView;
-import eu.csc.vehown.ui.models.LoginResult;
-import eu.csc.vehown.ui.register.RegisterCustomerActivity;
import eu.csc.vehown.ui.registration.customer.FragmentCustomerRegistration;
/**
diff --git a/app/src/main/java/eu/csc/vehown/ui/main/MainActivity.java b/app/src/main/java/eu/csc/vehown/ui/main/MainActivity.java
index f949f60..2143f4b 100644
--- a/app/src/main/java/eu/csc/vehown/ui/main/MainActivity.java
+++ b/app/src/main/java/eu/csc/vehown/ui/main/MainActivity.java
@@ -23,9 +23,7 @@ import eu.csc.log.CSCLog4jFactory;
import eu.csc.log.Log;
import eu.csc.vehown.R;
import eu.csc.vehown.broadcast.VehicleEventReceivedReceiver;
-import eu.csc.vehown.persist.sharedPreferences.LocalStorageClient;
import eu.csc.vehown.persist.sharedPreferences.SharedPreferencesFactory;
-import eu.csc.vehown.services.mqtt.MqttClient;
import eu.csc.vehown.services.notifications.NotificationService;
import eu.csc.vehown.services.rest.vehownserver.VehOwnApiClientFactory;
import eu.csc.vehown.ugp.WifiConnectedReceiver;
@@ -34,13 +32,9 @@ import eu.csc.vehown.ui.content.ActivityLocalContentNavigation;
import eu.csc.vehown.ui.login.LoginActivity;
import eu.csc.vehown.ui.main.dboard.DashboardFragment;
import eu.csc.vehown.ui.md.ItemDetailHostActivity;
-import eu.csc.vehown.ui.register.RegisterCustomerActivity;
-import eu.csc.vehown.ui.register.RegisterVehicleActivity;
-import eu.csc.vehown.ui.registration.customer.FragmentCustomerRegistration;
-import eu.csc.vehown.ui.registration.ui.login.CustomerRegistrationActivity;
+import eu.csc.vehown.ui.registration.RegisterCustomerActivity;
import eu.csc.vehown.ui.settings.SettingsActivity;
import eu.csc.vehown.ui.svi.DashboardActivity;
-import eu.csc.vehown.ui.svi.RegisterSVIActivity;
/**
* @see LoginActivity
@@ -159,9 +153,9 @@ public class MainActivity extends AppCompatActivity {
case R.id.nav_register_user:
intent = new Intent(this, RegisterCustomerActivity.class);
break;
- case R.id.nav_register_Customer:
- intent = new Intent(this, RegisterVehicleActivity.class);
- break;
+// case R.id.nav_register_Customer:
+// intent = new Intent(this, RegisterVehicleActivity.class);
+// break;
case R.id.nav_show_vehicles_devices:
break;
// case R.id.nav_register_vehicle:
diff --git a/app/src/main/java/eu/csc/vehown/ui/md/ItemDetailFragment.java b/app/src/main/java/eu/csc/vehown/ui/md/ItemDetailFragment.java
index b8726f5..43743b7 100644
--- a/app/src/main/java/eu/csc/vehown/ui/md/ItemDetailFragment.java
+++ b/app/src/main/java/eu/csc/vehown/ui/md/ItemDetailFragment.java
@@ -1,26 +1,20 @@
package eu.csc.vehown.ui.md;
import android.content.ClipData;
-import android.content.Intent;
import android.os.Bundle;
import android.view.DragEvent;
-
-import androidx.fragment.app.Fragment;
-
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
-import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.Fragment;
import com.google.android.material.appbar.CollapsingToolbarLayout;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import eu.csc.vehown.R;
import eu.csc.vehown.databinding.FragmentItemDetailBinding;
import eu.csc.vehown.persist.sharedPreferences.SharedPreferencesFactory;
import eu.csc.vehown.ui.md.placeholder.PlaceholderContent;
-import eu.csc.vehown.ui.pub.UIUtils;
-import eu.csc.vehown.ui.register.RegisterCustomerActivity;
-import eu.csc.vehown.ui.register.RegisterVehicleActivity;
+import eu.csc.vehown.ui.registration.RegisterVehicleActivity;
import lombok.var;
/**
diff --git a/app/src/main/java/eu/csc/vehown/ui/modal/Helper.java b/app/src/main/java/eu/csc/vehown/ui/modal/Helper.java
index 5e48df5..bd7b9a2 100644
--- a/app/src/main/java/eu/csc/vehown/ui/modal/Helper.java
+++ b/app/src/main/java/eu/csc/vehown/ui/modal/Helper.java
@@ -17,7 +17,7 @@ import android.widget.*;
import androidx.annotation.DrawableRes;
import androidx.appcompat.app.AlertDialog;
import eu.csc.vehown.R;
-import eu.csc.vehown.ui.register.TextChangedListener;
+import eu.csc.vehown.ui.TextChangedListener;
import org.jetbrains.annotations.NotNull;
import java.io.File;
diff --git a/app/src/main/java/eu/csc/vehown/ui/register/RegisterCustomerActivity.java b/app/src/main/java/eu/csc/vehown/ui/registration/RegisterCustomerActivity.java
similarity index 98%
rename from app/src/main/java/eu/csc/vehown/ui/register/RegisterCustomerActivity.java
rename to app/src/main/java/eu/csc/vehown/ui/registration/RegisterCustomerActivity.java
index 8512d0a..1c549db 100644
--- a/app/src/main/java/eu/csc/vehown/ui/register/RegisterCustomerActivity.java
+++ b/app/src/main/java/eu/csc/vehown/ui/registration/RegisterCustomerActivity.java
@@ -1,4 +1,4 @@
-package eu.csc.vehown.ui.register;
+package eu.csc.vehown.ui.registration;
import android.os.Bundle;
import android.os.Handler;
@@ -18,6 +18,7 @@ import eu.csc.vehown.databinding.ActivityRegisterCustomerBinding;
import eu.csc.vehown.persist.sharedPreferences.LocalStorageClient;
import eu.csc.vehown.persist.sharedPreferences.SharedPreferencesFactory;
import eu.csc.vehown.services.rest.vehownserver.VehOwnApiClientFactory;
+import eu.csc.vehown.ui.TextChangedListener;
import eu.csc.vehown.ui.modal.Helper;
import eu.csc.vehown.ui.viewmodels.AppViewModelFactory;
import retrofit2.Call;
diff --git a/app/src/main/java/eu/csc/vehown/ui/register/RegisterVehicleActivity.java b/app/src/main/java/eu/csc/vehown/ui/registration/RegisterVehicleActivity.java
similarity index 67%
rename from app/src/main/java/eu/csc/vehown/ui/register/RegisterVehicleActivity.java
rename to app/src/main/java/eu/csc/vehown/ui/registration/RegisterVehicleActivity.java
index 4e01821..cd2ee6b 100644
--- a/app/src/main/java/eu/csc/vehown/ui/register/RegisterVehicleActivity.java
+++ b/app/src/main/java/eu/csc/vehown/ui/registration/RegisterVehicleActivity.java
@@ -1,8 +1,10 @@
-package eu.csc.vehown.ui.register;
+package eu.csc.vehown.ui.registration;
+import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.content.Context;
import android.content.Intent;
+import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
@@ -13,11 +15,13 @@ import android.widget.DatePicker;
import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.ViewModelProvider;
import eu.csc.vehown.IVehOwnConsts;
+import eu.csc.vehown.R;
import eu.csc.vehown.data.model.Vehicle;
import eu.csc.vehown.data.model.VehicleBrand;
import eu.csc.vehown.data.model.VehicleModel;
import eu.csc.vehown.data.model.VehiclePropulsionType;
-import eu.csc.vehown.databinding.ActivityRegisterVehicleBinding;
+import eu.csc.vehown.databinding.FragmentVehicleRegistrationBinding;
+import eu.csc.vehown.ui.TextChangedListener;
import eu.csc.vehown.ui.adapters.PropulsionTypeAdapter;
import eu.csc.vehown.ui.adapters.VehicleBrandAdapter;
import eu.csc.vehown.ui.adapters.VehicleModelAdapter;
@@ -30,19 +34,21 @@ import java.util.*;
public class RegisterVehicleActivity extends AppCompatActivity implements IVehOwnConsts {
- //private LocalStorageClient sharedPref;
+ private static final String TAG = RegisterVehicleActivity.class.getSimpleName();
+ private static final int REQUEST_IMAGE_CAPTURE = 11;
+ private static final int REQUEST_IMAGE_GALLERY = 12;
- private ActivityRegisterVehicleBinding binding;
- private RegistrationViewModel model;
+ private FragmentVehicleRegistrationBinding binding;
+ private RegistrationViewModel viewModel;
+ private VehicleBrandAdapter brandAdapter;
+ private PropulsionTypeAdapter propulsionTypeAdapter;
+ private List mandatoryFields;
+
+ private Bitmap bitmap;
private Handler handler;
private Runnable timer;
- private List mandatoryFields;
- private VehicleBrandAdapter brandAdapter;
- private VehicleModelAdapter modelAdapter;
- private static final String TAG = RegisterVehicleActivity.class.getSimpleName();
public static Intent editCurrentItem(Context context, String id) {
-
Intent intent = new Intent(context, RegisterVehicleActivity.class);
intent.putExtra(ItemDetailFragment.ARG_ITEM_ID, id);
return intent;
@@ -55,17 +61,15 @@ public class RegisterVehicleActivity extends AppCompatActivity implements IVehOw
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ binding = FragmentVehicleRegistrationBinding.inflate(getLayoutInflater());
- model = new ViewModelProvider(this, new AppViewModelFactory(this)).get(RegistrationViewModel.class);
String id = null;
- Intent intent = getIntent();
- if (intent.hasExtra(ItemDetailFragment.ARG_ITEM_ID)) {
- id = intent.getStringExtra(ItemDetailFragment.ARG_ITEM_ID);
+ if (getIntent().hasExtra(ItemDetailFragment.ARG_ITEM_ID)) {
+ id = getIntent().getStringExtra(ItemDetailFragment.ARG_ITEM_ID);
}
Log.d(TAG, "PASSED ID: " + id);
- //sharedPref = SharedPreferencesFactory.getInstance(getApplicationContext());
- binding = ActivityRegisterVehicleBinding.inflate(getLayoutInflater());
+ viewModel = new ViewModelProvider(this, new AppViewModelFactory(this)).get(RegistrationViewModel.class);
setContentView(binding.getRoot());
mandatoryFields = new ArrayList<>(Arrays.asList(binding.spBrand, binding.spModel, binding.editPowertrain, binding.editVariant,
@@ -75,11 +79,11 @@ public class RegisterVehicleActivity extends AppCompatActivity implements IVehOw
timer = () -> Helper.hideSoftKeyboard(this);
delayHidingKeyboard(500);
- //brandAdapter = new VehicleBrandAdapter(getApplicationContext(), getLayoutInflater(), model.getVehicleBrands().getValue());
+ viewModel.fetchVehicleBrands();
+ viewModel.fetchVehiclePropulsionTypes();
+ viewModel.getCurrentVehicle().observe(this, this::setVehicle);
- model.getCurrentVehicle().observe(this, this::setVehicle);
-
- model.getVehicleBrands().observe(this, items -> {
+ viewModel.getVehicleBrands().observe(this, items -> {
Log.d(TAG, "observe brands " + items.size());
brandAdapter = new VehicleBrandAdapter(getApplicationContext(), getLayoutInflater(), items);
binding.spBrand.setAdapter(brandAdapter);
@@ -88,7 +92,7 @@ public class RegisterVehicleActivity extends AppCompatActivity implements IVehOw
@Override
public void onItemSelected(AdapterView> parent, View view, int position, long id1) {
VehicleBrand brand = brandAdapter.getItem(position);
- model.getVehicleModels().postValue(brand.getModels());
+ viewModel.getVehicleModels().postValue(brand.getModels());
}
@Override
@@ -98,20 +102,19 @@ public class RegisterVehicleActivity extends AppCompatActivity implements IVehOw
brandAdapter.notifyDataSetChanged();
});
- model.getVehicleModels().observe(this, items -> {
- Log.d(TAG, "observe models " + items.size());
- binding.spModel.setClickable(items != null);
+// viewModel.getVehicleModels().observe(this, items -> {
+// binding.spModel.setClickable(items != null);
+//
+// VehicleModelAdapter adapter = new VehicleModelAdapter(getApplicationContext(), getLayoutInflater(), items);
+// binding.spModel.setAdapter(adapter);
+// adapter.notifyDataSetChanged();
+// });
- VehicleModelAdapter adapter = new VehicleModelAdapter(getApplicationContext(), getLayoutInflater(), items);
- binding.spModel.setAdapter(adapter);
- adapter.notifyDataSetChanged();
- });
-
- model.getVehiclePropulsionTypes().observe(this, items -> {
- PropulsionTypeAdapter adapter = new PropulsionTypeAdapter(getApplicationContext(), getLayoutInflater(), items);
-
- binding.spPropulsion.setAdapter(adapter);
- adapter.notifyDataSetChanged();
+ viewModel.getVehiclePropulsionTypes().observe(this, items -> {
+ Log.d(TAG, "observe propulsion types " + items.size());
+ propulsionTypeAdapter = new PropulsionTypeAdapter(getApplicationContext(), getLayoutInflater(), items);
+ binding.spPropulsion.setAdapter(propulsionTypeAdapter);
+ propulsionTypeAdapter.notifyDataSetChanged();
});
@@ -124,23 +127,45 @@ public class RegisterVehicleActivity extends AppCompatActivity implements IVehOw
//binding.datePickerRegistration.setMaxDate();
- List vehicles = model.getRepository().getStoredUserVehicles();
+ List vehicles = viewModel.getRepository().getStoredUserVehicles();
if (vehicles.size() > 0) {
if (id == null) {
- model.getCurrentVehicle().postValue(vehicles.get(0));
+ viewModel.getCurrentVehicle().postValue(vehicles.get(0));
} else {
final String finalId = id;
- model.getCurrentVehicle().postValue(vehicles.stream().filter(x -> x.getVin().equals(finalId)).findFirst().get());
+ viewModel.getCurrentVehicle().postValue(vehicles.stream().filter(x -> x.getVin().equals(finalId)).findFirst().get());
}
}
+ binding.imgVehicle.setImageResource(R.drawable.ic_menu_gallery);
+ binding.imgVehicle.setOnClickListener(v -> {
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setTitle(getString(R.string.add_vehicle_image));
+
+ // add a list
+ String[] items = {getString(R.string.take_photo), getString(R.string.choose_from_gallery)};
+ builder.setItems(items, (dialog, which) -> {
+ switch (which) {
+ case 0:
+ startActivityForResult(new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE), REQUEST_IMAGE_CAPTURE);
+ break;
+ case 1:
+ Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
+ intent.setType("image/*");
+ startActivityForResult(Intent.createChooser(intent, "Select Picture"), REQUEST_IMAGE_GALLERY);
+ break;
+ }
+ });
+ builder.create().show();
+ });
+
binding.btnStore.setOnClickListener(v -> {
- model.storeVehicle(getVehicle());
+ viewModel.storeVehicle(getVehicle());
//Helper.infoDialog(handler, getApplicationContext(), "success");
});
binding.btnUnDo.setOnClickListener(v -> {
- model.deleteVehicle(getVehicle());
+ viewModel.deleteVehicle(getVehicle());
});
binding.btnReload.setOnClickListener(v -> {
@@ -150,7 +175,7 @@ public class RegisterVehicleActivity extends AppCompatActivity implements IVehOw
binding.btnRegisterVehicle.setOnClickListener(v -> {
Vehicle vehicle = getVehicle();
- model
+ viewModel
.getRepository()
.storeCustomerVehicle(vehicle);
@@ -188,7 +213,7 @@ public class RegisterVehicleActivity extends AppCompatActivity implements IVehOw
});
binding.btnUnregisterVehicle.setOnClickListener(v -> {
-
+ //TODO? viewModel.unregisterVehicle();
});
// mandatoryFields = new ArrayList<>(Arrays.asList(binding.spBrand, binding.spModel, binding.editPowertrain, binding.editVariant,
@@ -205,25 +230,23 @@ public class RegisterVehicleActivity extends AppCompatActivity implements IVehOw
*/
binding.editRegistrationDate.setOnClickListener(v -> showDatePicker());
- model.fetchData();
+ viewModel.fetchData();
}
- private void setVehicle(Vehicle vehicle) {
- Log.d(TAG, "observe vehicle " + vehicle);
- if (vehicle.getBitmap() != null) {
- binding.imgVehicle.setImageBitmap(vehicle.getBitmap());
- }
- int position = brandAdapter.getPosition(vehicle.getBrand());
- if (position >= 0) {
- binding.spBrand.setSelection(position, true);
- }
- binding.editPowertrain.setText(vehicle.getPowertrain());
- binding.editVariant.setText(vehicle.getVariant());
- binding.editVIN.setText(vehicle.getVin());
- binding.editLicensePlate.setText(vehicle.getLicensePlate());
- setRegistrationDate(vehicle.getRegistrationDate());
- }
+ private void showDatePicker() {
+ DatePickerDialog dialog = new DatePickerDialog(this);
+// DatePickerDialog dialog = new DatePickerDialog(getBaseContext());
+ dialog.setOnDateSetListener(new DatePickerDialog.OnDateSetListener() {
+ @Override
+ public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
+ Log.d("DATE", year + " " + month + " " + dayOfMonth + " ");
+ Date today = new Date(year - 1900, month, dayOfMonth);//getting date
+ setRegistrationDate(today);
+ }
+ });
+ dialog.show();
+ }
private void setRegistrationDate(Date date) {
if (date == null) {
binding.editRegistrationDate.setText("");
@@ -238,24 +261,34 @@ public class RegisterVehicleActivity extends AppCompatActivity implements IVehOw
}
}
- private void showDatePicker() {
- DatePickerDialog dialog = new DatePickerDialog(this);
-// DatePickerDialog dialog = new DatePickerDialog(getBaseContext());
- dialog.setOnDateSetListener(new DatePickerDialog.OnDateSetListener() {
- @Override
- public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
- Log.d("DATE", year + " " + month + " " + dayOfMonth + " ");
- Calendar calendar = Calendar.getInstance();
+ private void setVehicle(Vehicle vehicle) {
+ Log.d(TAG, "observe vehicle " + vehicle);
+ if (vehicle.getBitmap() != null) {
+ binding.imgVehicle.setImageBitmap(vehicle.getBitmap());
+ }
+ int position = brandAdapter.getPosition(vehicle.getBrand());
+ if (position >= 0) {
+ binding.spBrand.setSelection(position, true);
+ VehicleBrand vehicleBrand = (VehicleBrand) binding.spBrand.getSelectedItem();
+ VehicleModelAdapter modelAdapter = new VehicleModelAdapter(this, getLayoutInflater(), vehicleBrand.getModels());
+ binding.spModel.setAdapter(modelAdapter);
+ modelAdapter.notifyDataSetChanged();
+ position = modelAdapter.getPosition(vehicle.getModel());
+ if (position >= 0) binding.spModel.setSelection(position, true);
+ }
+ position = propulsionTypeAdapter.getPosition(vehicle.getPropulsionType());
+ if (position >= 0) binding.spPropulsion.setSelection(position, true);
- Date today = new Date(year - 1900, month, dayOfMonth);//getting date
- setRegistrationDate(today);
- }
- });
- dialog.show();
+ binding.editPowertrain.setText(vehicle.getPowertrain());
+ binding.editVariant.setText(vehicle.getVariant());
+ binding.editVIN.setText(vehicle.getVin());
+ binding.editLicensePlate.setText(vehicle.getLicensePlate());
+ setRegistrationDate(vehicle.getRegistrationDate());
}
private Vehicle getVehicle() {
Vehicle vehicle = new Vehicle();
+ vehicle.setBitmap(bitmap);
vehicle.setBrand(((VehicleBrand) binding.spBrand.getSelectedItem()).getName());
vehicle.setModel(((VehicleModel) binding.spModel.getSelectedItem()).getName());
vehicle.setPowertrain(binding.editPowertrain.getText().toString());
@@ -268,7 +301,6 @@ public class RegisterVehicleActivity extends AppCompatActivity implements IVehOw
return vehicle;
}
-
private void delayHidingKeyboard(final int delay) {
handler.removeCallbacks(timer);
handler.postDelayed(timer, delay);
diff --git a/app/src/main/java/eu/csc/vehown/ui/register/RegistrationViewModel.java b/app/src/main/java/eu/csc/vehown/ui/registration/RegistrationViewModel.java
similarity index 99%
rename from app/src/main/java/eu/csc/vehown/ui/register/RegistrationViewModel.java
rename to app/src/main/java/eu/csc/vehown/ui/registration/RegistrationViewModel.java
index 193e065..af2550f 100644
--- a/app/src/main/java/eu/csc/vehown/ui/register/RegistrationViewModel.java
+++ b/app/src/main/java/eu/csc/vehown/ui/registration/RegistrationViewModel.java
@@ -1,4 +1,4 @@
-package eu.csc.vehown.ui.register;
+package eu.csc.vehown.ui.registration;
import android.content.Context;
import androidx.lifecycle.MutableLiveData;
diff --git a/app/src/main/java/eu/csc/vehown/ui/register/ShowVehicleAndDevicesViewModel.java b/app/src/main/java/eu/csc/vehown/ui/registration/ShowVehicleAndDevicesViewModel.java
similarity index 81%
rename from app/src/main/java/eu/csc/vehown/ui/register/ShowVehicleAndDevicesViewModel.java
rename to app/src/main/java/eu/csc/vehown/ui/registration/ShowVehicleAndDevicesViewModel.java
index 97d90f9..b2ada9b 100644
--- a/app/src/main/java/eu/csc/vehown/ui/register/ShowVehicleAndDevicesViewModel.java
+++ b/app/src/main/java/eu/csc/vehown/ui/registration/ShowVehicleAndDevicesViewModel.java
@@ -1,18 +1,14 @@
-package eu.csc.vehown.ui.register;
-
-import android.bluetooth.BluetoothClass;
+package eu.csc.vehown.ui.registration;
import androidx.lifecycle.MutableLiveData;
-
-import java.util.List;
-
import eu.csc.vehown.data.model.CustomerDevice;
import eu.csc.vehown.data.model.Vehicle;
import eu.csc.vehown.persist.sharedPreferences.LocalStorageClient;
-import eu.csc.vehown.persist.sharedPreferences.LocalStorageClientImpl;
import eu.csc.vehown.ui.viewmodels.AbstractBaseViewModel;
import lombok.Getter;
+import java.util.List;
+
public class ShowVehicleAndDevicesViewModel extends AbstractBaseViewModel {
@Getter
@@ -40,10 +36,11 @@ public class ShowVehicleAndDevicesViewModel extends AbstractBaseViewModel {
}
public void reloadVehicles() {
- this.mVehicles.postValue(localStorageClient.loadVehicles());
+ mVehicles.setValue(localStorageClient.loadVehicles());
+
}
public void reloadDevices() {
- mDevices.postValue(localStorageClient.loadDevices());
+ mDevices.setValue(localStorageClient.loadDevices());
}
public void deleteDevice(CustomerDevice item) {
diff --git a/app/src/main/java/eu/csc/vehown/ui/register/ShowVehiclesAndDevicesFragment.java b/app/src/main/java/eu/csc/vehown/ui/registration/ShowVehiclesAndDevicesFragment.java
similarity index 89%
rename from app/src/main/java/eu/csc/vehown/ui/register/ShowVehiclesAndDevicesFragment.java
rename to app/src/main/java/eu/csc/vehown/ui/registration/ShowVehiclesAndDevicesFragment.java
index ef299c3..236e998 100644
--- a/app/src/main/java/eu/csc/vehown/ui/register/ShowVehiclesAndDevicesFragment.java
+++ b/app/src/main/java/eu/csc/vehown/ui/registration/ShowVehiclesAndDevicesFragment.java
@@ -1,4 +1,4 @@
-package eu.csc.vehown.ui.register;
+package eu.csc.vehown.ui.registration;
import android.app.Activity;
import android.content.Intent;
@@ -28,6 +28,7 @@ import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
/**
* @see ShowVehicleAndDevicesViewModel
@@ -45,20 +46,15 @@ public class ShowVehiclesAndDevicesFragment extends AbstractFragment {
@Override
public View onCreateView(@NotNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
binding = FragmentShowVehiclesAndDevicesBinding.inflate(inflater, container, false);
-// sharedPref = SharedPreferencesFactory.getInstance(getActivity());
launcherEditVehicle = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
- if (result.getResultCode() == Activity.RESULT_OK) {
- model.reloadVehicles();
- }
+ model.reloadVehicles();
+ Objects.requireNonNull(binding.listVehicles.getAdapter()).notifyDataSetChanged();
});
launcherEditDevice = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
- Log.d(TAG, "GETTING RESULT: " + result.getResultCode());
-
- if (result.getResultCode() == Activity.RESULT_OK) {
- model.reloadDevices();
- }
+ model.reloadDevices();
+ Objects.requireNonNull(binding.listDevices.getAdapter()).notifyDataSetChanged();
});
@@ -84,7 +80,6 @@ public class ShowVehiclesAndDevicesFragment extends AbstractFragment {
binding.listDevices.setAdapter(adapter);
});
model.init();
- // model = new ViewModelProvider(this, new AppViewModelFactory(getActivity())).get(RegistrationViewModel.class);
binding.btnAddVehicle.setOnClickListener(v -> {
Log.d(ShowVehiclesAndDevicesFragment.class.getSimpleName(), "Add vehicle");
@@ -96,21 +91,21 @@ public class ShowVehiclesAndDevicesFragment extends AbstractFragment {
});
}
- @Override
- public void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
-
- if (requestCode == LAUNCH_ACTIVITY_REGISTER_VEHICLE) {
- if (resultCode == Activity.RESULT_OK) {
- model.reloadVehicles();
- }
- }
- if (requestCode == LAUNCH_ACTIVITY_REGISTER_DEVICE) {
- if (resultCode == Activity.RESULT_OK) {
- model.reloadDevices();
- }
- }
- } //onActivityResult
+// @Override
+// public void onActivityResult(int requestCode, int resultCode, Intent data) {
+// super.onActivityResult(requestCode, resultCode, data);
+//
+// if (requestCode == LAUNCH_ACTIVITY_REGISTER_VEHICLE) {
+// if (resultCode == Activity.RESULT_OK) {
+// model.reloadVehicles();
+// }
+// }
+// if (requestCode == LAUNCH_ACTIVITY_REGISTER_DEVICE) {
+// if (resultCode == Activity.RESULT_OK) {
+// model.reloadDevices();
+// }
+// }
+// } //onActivityResult
public class VehicleAdapter extends RecyclerView.Adapter {
diff --git a/app/src/main/java/eu/csc/vehown/ui/registration/devices/DeviceRegistrationFragment.java b/app/src/main/java/eu/csc/vehown/ui/registration/devices/DeviceRegistrationFragment.java
index 302a517..bb70232 100644
--- a/app/src/main/java/eu/csc/vehown/ui/registration/devices/DeviceRegistrationFragment.java
+++ b/app/src/main/java/eu/csc/vehown/ui/registration/devices/DeviceRegistrationFragment.java
@@ -16,23 +16,17 @@ import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import eu.csc.vehown.R;
import eu.csc.vehown.data.model.CustomerDevice;
import eu.csc.vehown.databinding.DeviceRegistrationFragmentBinding;
-import eu.csc.vehown.databinding.FragmentDashboardBinding;
import eu.csc.vehown.ui.base.AbstractFragment;
-import eu.csc.vehown.ui.md.ItemDetailFragment;
import eu.csc.vehown.ui.modal.Helper;
import eu.csc.vehown.ui.models.Result;
-import eu.csc.vehown.ui.pub.UIUtils;
-import eu.csc.vehown.ui.register.RegisterCustomerActivity;
-import eu.csc.vehown.ui.register.RegistrationViewModel;
+import eu.csc.vehown.ui.registration.RegisterCustomerActivity;
import eu.csc.vehown.ui.registration.customer.ItemListDialogFragment;
import eu.csc.vehown.ui.viewmodels.AppViewModelFactory;
import lombok.var;
diff --git a/app/src/main/java/eu/csc/vehown/ui/registration/ui/login/CustomerRegistrationActivity.java b/app/src/main/java/eu/csc/vehown/ui/registration/login/CustomerRegistrationActivity.java
similarity index 99%
rename from app/src/main/java/eu/csc/vehown/ui/registration/ui/login/CustomerRegistrationActivity.java
rename to app/src/main/java/eu/csc/vehown/ui/registration/login/CustomerRegistrationActivity.java
index 6da762a..3e5b7d9 100644
--- a/app/src/main/java/eu/csc/vehown/ui/registration/ui/login/CustomerRegistrationActivity.java
+++ b/app/src/main/java/eu/csc/vehown/ui/registration/login/CustomerRegistrationActivity.java
@@ -1,4 +1,4 @@
-package eu.csc.vehown.ui.registration.ui.login;
+package eu.csc.vehown.ui.registration.login;
import android.app.Activity;
import androidx.lifecycle.Observer;
diff --git a/app/src/main/java/eu/csc/vehown/ui/registration/ui/login/CustomerRegistrationViewModel.java b/app/src/main/java/eu/csc/vehown/ui/registration/login/CustomerRegistrationViewModel.java
similarity index 98%
rename from app/src/main/java/eu/csc/vehown/ui/registration/ui/login/CustomerRegistrationViewModel.java
rename to app/src/main/java/eu/csc/vehown/ui/registration/login/CustomerRegistrationViewModel.java
index 8179325..d779815 100644
--- a/app/src/main/java/eu/csc/vehown/ui/registration/ui/login/CustomerRegistrationViewModel.java
+++ b/app/src/main/java/eu/csc/vehown/ui/registration/login/CustomerRegistrationViewModel.java
@@ -1,4 +1,4 @@
-package eu.csc.vehown.ui.registration.ui.login;
+package eu.csc.vehown.ui.registration.login;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
diff --git a/app/src/main/java/eu/csc/vehown/ui/registration/vehicle/FragmentVehicleRegistration.java b/app/src/main/java/eu/csc/vehown/ui/registration/vehicle/FragmentVehicleRegistration.java
index 0e43505..a655f37 100644
--- a/app/src/main/java/eu/csc/vehown/ui/registration/vehicle/FragmentVehicleRegistration.java
+++ b/app/src/main/java/eu/csc/vehown/ui/registration/vehicle/FragmentVehicleRegistration.java
@@ -8,6 +8,8 @@ import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -30,15 +32,14 @@ import eu.csc.vehown.ui.adapters.VehicleBrandAdapter;
import eu.csc.vehown.ui.adapters.VehicleModelAdapter;
import eu.csc.vehown.ui.base.ICallbackInterface;
import eu.csc.vehown.ui.md.ItemDetailFragment;
+import eu.csc.vehown.ui.modal.Helper;
+import eu.csc.vehown.ui.TextChangedListener;
import eu.csc.vehown.ui.viewmodels.AppViewModelFactory;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
import static android.app.Activity.RESULT_OK;
@@ -49,12 +50,14 @@ public class FragmentVehicleRegistration extends Fragment {
private static final int REQUEST_IMAGE_GALLERY = 12;
private FragmentVehicleRegistrationBinding binding;
- private FragmentVehicleRegistrationViewModel mViewModel;
+ private FragmentVehicleRegistrationViewModel viewModel;
private VehicleBrandAdapter brandAdapter;
private PropulsionTypeAdapter propulsionTypeAdapter;
private List mandatoryFields;
private ICallbackInterface mCallback;
private Bitmap bitmap;
+ private Handler handler;
+ private Runnable timer;
public static FragmentVehicleRegistration newInstance() {
return new FragmentVehicleRegistration();
@@ -80,21 +83,22 @@ public class FragmentVehicleRegistration extends Fragment {
Bundle args = getArguments();
if (args != null) {
id = args.getString(ItemDetailFragment.ARG_ITEM_ID, null);
- } else {
-
}
- mViewModel = new ViewModelProvider(this, new AppViewModelFactory(getContext())).get(FragmentVehicleRegistrationViewModel.class);
+ viewModel = new ViewModelProvider(this, new AppViewModelFactory(getContext())).get(FragmentVehicleRegistrationViewModel.class);
mandatoryFields = new ArrayList<>(Arrays.asList(binding.spBrand, binding.spModel, binding.editPowertrain, binding.editVariant,
binding.editVIN, binding.editLicensePlate, binding.spPropulsion, binding.editRegistrationDate));
+ handler = new Handler(Looper.getMainLooper());
+ timer = () -> Helper.hideSoftKeyboard(getActivity());
+ delayHidingKeyboard(500);
- mViewModel.fetchVehicleBrands();
- mViewModel.fetchVehiclePropulsionTypes();
- mViewModel.getCurrentVehicle().observe(getViewLifecycleOwner(), this::setVehicle);
+ viewModel.fetchVehicleBrands();
+ viewModel.fetchVehiclePropulsionTypes();
+ viewModel.getCurrentVehicle().observe(getViewLifecycleOwner(), this::setVehicle);
- mViewModel.getVehicleBrands().observe(getViewLifecycleOwner(), items -> {
+ viewModel.getVehicleBrands().observe(getViewLifecycleOwner(), items -> {
Log.d(TAG, "observe brands " + items.size());
brandAdapter = new VehicleBrandAdapter(getContext(), getLayoutInflater(), items);
binding.spBrand.setAdapter(brandAdapter);
@@ -102,7 +106,7 @@ public class FragmentVehicleRegistration extends Fragment {
@Override
public void onItemSelected(AdapterView> parent, View view, int position, long id1) {
VehicleBrand brand = brandAdapter.getItem(position);
- mViewModel.getVehicleModels().postValue(brand.getModels());
+ viewModel.getVehicleModels().postValue(brand.getModels());
}
@Override
@@ -120,33 +124,30 @@ public class FragmentVehicleRegistration extends Fragment {
// adapter.notifyDataSetChanged();
// });
- mViewModel.getVehiclePropulsionTypes().observe(getViewLifecycleOwner(), items -> {
+ viewModel.getVehiclePropulsionTypes().observe(getViewLifecycleOwner(), items -> {
Log.d(TAG, "observe propulsion types " + items.size());
propulsionTypeAdapter = new PropulsionTypeAdapter(getContext(), getLayoutInflater(), items);
binding.spPropulsion.setAdapter(propulsionTypeAdapter);
propulsionTypeAdapter.notifyDataSetChanged();
});
- /*
+
final View.OnFocusChangeListener focusListener = (v, hasFocus) -> delayHidingKeyboard(3000);
final TextChangedListener changedListener = new TextChangedListener(() -> {
delayHidingKeyboard((3000));
Helper.enableButton(binding.btnRegisterVehicle, mandatoryFields);
});
-
-
Helper.addListener(mandatoryFields, focusListener, changedListener);
- */
//binding.datePickerRegistration.setMaxDate();
- List vehicles = mViewModel.getRepository().getStoredUserVehicles();
+ List vehicles = viewModel.getRepository().getStoredUserVehicles();
if (vehicles.size() > 0) {
if (id == null) {
- mViewModel.getCurrentVehicle().postValue(vehicles.get(0));
+ viewModel.getCurrentVehicle().postValue(vehicles.get(0));
} else {
final String finalId = id;
- mViewModel.getCurrentVehicle().postValue(vehicles.stream().filter(x -> x.getVin().equals(finalId)).findFirst().get());
+ viewModel.getCurrentVehicle().postValue(vehicles.stream().filter(x -> x.getVin().equals(finalId)).findFirst().get());
}
}
@@ -175,12 +176,12 @@ public class FragmentVehicleRegistration extends Fragment {
if (mCallback != null) {
mCallback.showIdle("RUNNING");
}
- mViewModel.storeVehicle(getVehicle());
+ viewModel.storeVehicle(getVehicle());
//Helper.infoDialog(handler, getApplicationContext(), "success");
});
binding.btnUnDo.setOnClickListener(v -> {
- mViewModel.deleteVehicle(getVehicle());
+ viewModel.deleteVehicle(getVehicle());
});
binding.btnReload.setOnClickListener(v -> {
@@ -190,7 +191,7 @@ public class FragmentVehicleRegistration extends Fragment {
binding.btnRegisterVehicle.setOnClickListener(v -> {
Vehicle vehicle = getVehicle();
- mViewModel
+ viewModel
.getRepository()
.storeCustomerVehicle(vehicle);
@@ -228,12 +229,12 @@ public class FragmentVehicleRegistration extends Fragment {
});
binding.btnUnregisterVehicle.setOnClickListener(v -> {
- mViewModel.unregisterVehicle();
+ viewModel.unregisterVehicle();
});
binding.editRegistrationDate.setOnClickListener(v -> showDatePicker());
- mViewModel.fetchData();
+ viewModel.fetchData();
return root;
@@ -248,7 +249,6 @@ public class FragmentVehicleRegistration extends Fragment {
Log.d("DATE", year + " " + month + " " + dayOfMonth + " ");
Date today = new Date(year - 1900, month, dayOfMonth);//getting date
-
setRegistrationDate(today);
}
});
@@ -309,6 +309,10 @@ public class FragmentVehicleRegistration extends Fragment {
return vehicle;
}
+ private void delayHidingKeyboard(final int delay) {
+ handler.removeCallbacks(timer);
+ handler.postDelayed(timer, delay);
+ }
@Override
public void onAttach(Activity activity) {
diff --git a/app/src/main/java/eu/csc/vehown/ui/viewmodels/AppViewModelFactory.java b/app/src/main/java/eu/csc/vehown/ui/viewmodels/AppViewModelFactory.java
index ef70608..093b704 100644
--- a/app/src/main/java/eu/csc/vehown/ui/viewmodels/AppViewModelFactory.java
+++ b/app/src/main/java/eu/csc/vehown/ui/viewmodels/AppViewModelFactory.java
@@ -9,14 +9,14 @@ import eu.csc.vehown.persist.sharedPreferences.LocalStorageClient;
import eu.csc.vehown.persist.sharedPreferences.SharedPreferencesFactory;
import eu.csc.vehown.ui.fragments.data.LoginRepository;
import eu.csc.vehown.ui.fragments.ui.login.LoginViewModel;
-import eu.csc.vehown.ui.register.RegistrationViewModel;
-import eu.csc.vehown.ui.register.ShowVehicleAndDevicesViewModel;
+import eu.csc.vehown.ui.registration.RegistrationViewModel;
+import eu.csc.vehown.ui.registration.ShowVehicleAndDevicesViewModel;
import eu.csc.vehown.ui.registration.customer.FragmentCustomerRegistrationViewModel;
import eu.csc.vehown.ui.registration.data.CustomerContentDataSource;
import eu.csc.vehown.ui.registration.data.CustomerRegistrationRepository;
import eu.csc.vehown.ui.registration.data.CustomerVehicleRegistrationRepository;
import eu.csc.vehown.ui.registration.devices.DeviceRegistrationViewModel;
-import eu.csc.vehown.ui.registration.ui.login.CustomerRegistrationViewModel;
+import eu.csc.vehown.ui.registration.login.CustomerRegistrationViewModel;
import eu.csc.vehown.ui.registration.vehicle.FragmentVehicleRegistrationViewModel;
/**
diff --git a/app/src/main/res/layout/activity_register_vehicle.xml b/app/src/main/res/layout/activity_register_vehicle.xml
deleted file mode 100644
index a4026f0..0000000
--- a/app/src/main/res/layout/activity_register_vehicle.xml
+++ /dev/null
@@ -1,248 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/content_vehicle_modern.xml b/app/src/main/res/layout/content_vehicle_modern.xml
index 6443953..25ffaa9 100644
--- a/app/src/main/res/layout/content_vehicle_modern.xml
+++ b/app/src/main/res/layout/content_vehicle_modern.xml
@@ -4,7 +4,7 @@
android:id="@+id/llVehicle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginTop="10dp">
+ android:layout_marginBottom="10dp">
@@ -30,5 +31,6 @@
android:layout_alignParentEnd="true"
app:tint="@android:color/holo_red_light"
app:backgroundTint="@android:color/transparent"
- />
+ android:contentDescription="@string/image"/>
+
diff --git a/app/src/main/res/layout/fragment_show_vehicles_and_devices.xml b/app/src/main/res/layout/fragment_show_vehicles_and_devices.xml
index b4048ed..210cf08 100644
--- a/app/src/main/res/layout/fragment_show_vehicles_and_devices.xml
+++ b/app/src/main/res/layout/fragment_show_vehicles_and_devices.xml
@@ -21,7 +21,7 @@
android:layout_toStartOf="@id/btnAddVehicle"
android:text="@string/vehicles"
android:textSize="@dimen/fontL"
- android:textStyle="normal"/>
+ android:textStyle="bold"/>
+ android:textStyle="bold" />
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f3d680f..375d4f2 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -82,21 +82,25 @@
Not a valid username
Password must be >5 characters
"Login failed"
- RegisterCustomerActivity
- RegisterVehicleActivity
First Fragment
Second Fragment
Next
Previous
- FailureEventActivity
- MainActivity
Open navigation drawer
Close navigation drawer
Settings
+ FailureEventActivity
+ MainActivity
+ RegisterCustomerActivity
+ RegisterDeviceActivity
+ RegisterVehicleActivity
SettingsActivity
+ ItemDetailHostActivity
+ BaseRegistrationActivity
+ LocalContentNavigationActivity
Messages
@@ -131,7 +135,6 @@
Email
Password
- RegisterDeviceActivity
Hello first fragment
Hello second fragment. Arg: %1$s
@@ -139,7 +142,6 @@
Vehicles
Devices
pref_offline_mode
- CustomerRegistrationActivity
Street
Register Customer
Firstname
@@ -147,7 +149,6 @@
Zip/Postal
Store
Undo
- ItemDetailHostActivity
Items
Item Detail
Customer Vehicles
@@ -156,7 +157,6 @@
Hello blank fragment
Unregister
- BaseRegistrationActivity
Home
Dashboard
Notifications
@@ -165,7 +165,6 @@
Register
Customer
Content
- LocalContentNavigationActivity
Android Studio
android.studio@android.com
Navigation header
diff --git a/images/vehicles/bmw-x6-2017.png b/images/vehicles/bmw-x6-2017.png
new file mode 100644
index 0000000..943e042
Binary files /dev/null and b/images/vehicles/bmw-x6-2017.png differ
diff --git a/images/vehicles/chevrolet-malibu-2006.png b/images/vehicles/chevrolet-malibu-2006.png
new file mode 100644
index 0000000..ea9a372
Binary files /dev/null and b/images/vehicles/chevrolet-malibu-2006.png differ
diff --git a/images/vehicles/dodge-charger-2017.png b/images/vehicles/dodge-charger-2017.png
new file mode 100644
index 0000000..98f10ca
Binary files /dev/null and b/images/vehicles/dodge-charger-2017.png differ
diff --git a/images/vehicles/ford-focus-1999.png b/images/vehicles/ford-focus-1999.png
new file mode 100644
index 0000000..4b176dc
Binary files /dev/null and b/images/vehicles/ford-focus-1999.png differ
diff --git a/images/vehicles/hyundai-i20.png b/images/vehicles/hyundai-i20.png
new file mode 100644
index 0000000..a543cbe
Binary files /dev/null and b/images/vehicles/hyundai-i20.png differ
diff --git a/images/vehicles/hyundai-i30.png b/images/vehicles/hyundai-i30.png
new file mode 100644
index 0000000..6aa8300
Binary files /dev/null and b/images/vehicles/hyundai-i30.png differ
diff --git a/images/vehicles/mazda-cx5.png b/images/vehicles/mazda-cx5.png
new file mode 100644
index 0000000..4b30843
Binary files /dev/null and b/images/vehicles/mazda-cx5.png differ
diff --git a/images/vehicles/nfiniti-qx56-2006.png b/images/vehicles/nfiniti-qx56-2006.png
new file mode 100644
index 0000000..75fab4c
Binary files /dev/null and b/images/vehicles/nfiniti-qx56-2006.png differ
diff --git a/images/vehicles/toyota-venza-2011.png b/images/vehicles/toyota-venza-2011.png
new file mode 100644
index 0000000..d4ade07
Binary files /dev/null and b/images/vehicles/toyota-venza-2011.png differ
diff --git a/services/core/src/main/java/eu/csc/vehown/data/model/Vehicle.java b/services/core/src/main/java/eu/csc/vehown/data/model/Vehicle.java
index 98dd564..710a489 100644
--- a/services/core/src/main/java/eu/csc/vehown/data/model/Vehicle.java
+++ b/services/core/src/main/java/eu/csc/vehown/data/model/Vehicle.java
@@ -69,6 +69,7 @@ public class Vehicle implements Serializable {
* @return the bitmap
*/
public Bitmap getBitmap() {
+ if (bitmapString == null) return null;
byte[] decodedString = Base64.decode(bitmapString, Base64.DEFAULT);
return BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
}}