Commit 505c4328 authored by DESKTOP-NFGF3PG\zxa01's avatar DESKTOP-NFGF3PG\zxa01

commit remove unused import

parent a8725b95
package com.example.zxa01.iotclient.detail.model;
import android.arch.lifecycle.MutableLiveData;
import android.databinding.BaseObservable;
import android.databinding.ObservableField;
import android.util.Log;
import com.example.zxa01.iotclient.common.http.Api;
import com.example.zxa01.iotclient.common.pojo.device.Device;
......@@ -12,14 +12,17 @@ import retrofit2.Response;
public class DetailModel extends BaseObservable {
private ObservableField<Device> device;
private MutableLiveData<Device> deviceMLD = new MutableLiveData<>();
public DetailModel() {
device = new ObservableField<>();
}
public ObservableField<Device> getDevice(){
return device;
public void setDeviceMLD(Device device){
deviceMLD.setValue(device);
}
public MutableLiveData<Device> getDeviceMLD(){
return deviceMLD;
}
public void fetchDevice() {
......@@ -27,8 +30,7 @@ public class DetailModel extends BaseObservable {
@Override
public void onResponse(Call<Object> call, Response<Object> response) {
// TODO transfer response
Log.i("Test", response.message());
device.set(new Device()
setDeviceMLD(new Device()
.setUDN("a1252c49-4188-4e6d-a32e-66604c664fb8")
.setName("指尖式血氧機")
.setType(Device.Type.Sensor)
......
......@@ -4,8 +4,6 @@ import android.databinding.DataBindingUtil;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MenuItem;
import android.widget.Toolbar;
import com.example.zxa01.iotclient.R;
import com.example.zxa01.iotclient.databinding.ActivityDetailBinding;
import com.example.zxa01.iotclient.detail.viewModel.DetailViewModel;
......@@ -28,6 +26,7 @@ public class DetailActivity extends AppCompatActivity {
public void init(){
viewModel.fetchDevice();
viewModel.observeDeviceMLD().observe(this,viewModel::setDevice);
}
@Override
......
......@@ -4,7 +4,7 @@ import com.example.zxa01.iotclient.R;
import com.example.zxa01.iotclient.common.pojo.device.Device;
import com.example.zxa01.iotclient.detail.model.DetailModel;
import com.example.zxa01.iotclient.privacy.view.PrivacyActivity;
import android.arch.lifecycle.MutableLiveData;
import android.arch.lifecycle.ViewModel;
import android.content.Context;
import android.content.Intent;
......@@ -29,13 +29,15 @@ public class DetailViewModel extends ViewModel {
detailModel.fetchDevice();
}
public ObservableField<Device> getDevice() {
isLoading.set(false);
return detailModel.getDevice();
public MutableLiveData<Device> observeDeviceMLD() {
return detailModel.getDeviceMLD();
}
public void setDevice(Device device) {
this.device.set(device);
if (device.getUDN() != null) {
this.isLoading.set(false);
this.device.set(device);
}
}
public void settingPrivacy() {
......@@ -47,7 +49,7 @@ public class DetailViewModel extends ViewModel {
public void downloadPrivacyReport() {
// TODO download
Toast toast = Toast.makeText(context, R.string.detail_report_download, Toast.LENGTH_LONG);
toast.setGravity(Gravity.BOTTOM,0,15);
toast.setGravity(Gravity.BOTTOM, 0, 15);
toast.show();
}
}
......@@ -3,7 +3,7 @@ import com.example.zxa01.iotclient.R;
import com.example.zxa01.iotclient.databinding.ActivityHomeBinding;
import com.example.zxa01.iotclient.home.device.view.DeviceFragment;
import com.example.zxa01.iotclient.home.record.view.RecordFragment;
import com.example.zxa01.iotclient.home.setting.SettingFragment;
import com.example.zxa01.iotclient.home.setting.view.SettingFragment;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
......
......@@ -4,14 +4,11 @@ import com.example.zxa01.iotclient.common.http.Api;
import com.example.zxa01.iotclient.common.pojo.device.Device;
import com.example.zxa01.iotclient.common.pojo.device.Manufacturer;
import com.example.zxa01.iotclient.common.pojo.device.Model;
import android.arch.lifecycle.MutableLiveData;
import android.databinding.BaseObservable;
import android.util.Log;
import java.util.ArrayList;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
......
......@@ -36,6 +36,9 @@ public class DeviceViewModel extends ViewModel {
return deviceModel.getDevicesMLD();
}
/**
* create
*/
public void createDevice(String address) {
deviceModel.createDevice(address);
refreshDevices();
......
......@@ -108,10 +108,9 @@ public class RecordModel extends BaseObservable {
.setType(Recipient.Type.OURS))
.setRetention(Retention.STATED_PURPOSE)));
public RecordModel(){
}
public void addPrivacyPolicyReport(PrivacyPolicyReport privacyPolicyReport){
private void addPrivacyPolicyReport(PrivacyPolicyReport privacyPolicyReport){
privacyPolicyReports.add(privacyPolicyReport);
}
......
......@@ -16,7 +16,6 @@ import com.example.zxa01.iotclient.home.record.viewModel.RecordViewModel;
public class RecordFragment extends Fragment {
private FragmentRecordBinding binding;
private RecordViewModel viewModel;
......@@ -50,7 +49,7 @@ public class RecordFragment extends Fragment {
private void init() {
viewModel.refreshRecord();
viewModel.observePrivacyPolicyReportsMLDD().observe(this, viewModel::setAdapter);
viewModel.observePrivacyPolicyReportsMLD().observe(this, viewModel::setAdapter);
}
public interface OnFragmentInteractionListener {
......
......@@ -33,7 +33,7 @@ public class RecordViewModel extends ViewModel {
recordModel.fetchRecord();
}
public MutableLiveData<List<PrivacyPolicyReport>> observePrivacyPolicyReportsMLDD() {
public MutableLiveData<List<PrivacyPolicyReport>> observePrivacyPolicyReportsMLD() {
return recordModel.getPrivacyPolicyReportsMLD();
}
......
package com.example.zxa01.iotclient.home.setting;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.example.zxa01.iotclient.R;
import com.example.zxa01.iotclient.common.pojo.Setting;
import java.util.LinkedList;
public class SettingAdapter extends RecyclerView.Adapter<SettingAdapter.MyViewHolder> {
private final LinkedList<Setting> mList;
public SettingAdapter(LinkedList<Setting> mList) {
this.mList = mList;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View mItemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_view_setting, parent, false);
return new MyViewHolder(mItemView);
}
@Override
public void onBindViewHolder(MyViewHolder mholder, int position) {
Setting setting = mList.get(position);
mholder.position = position;
mholder.textSettingKey.setText(setting.getKey());
mholder.textSettingValue.setText(setting.getValue());
}
@Override
public int getItemCount() {
return mList.size();
}
class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public int position;
public TextView textSettingKey;
public TextView textSettingValue;
public MyViewHolder(View view) {
super(view);
this.textSettingKey = view.findViewById(R.id.text_setting_key);
this.textSettingValue = view.findViewById(R.id.text_setting_value);
}
@Override
public void onClick(View v) {
}
}
}
\ No newline at end of file
package com.example.zxa01.iotclient.home.setting.model;
import android.arch.lifecycle.MutableLiveData;
import android.databinding.BaseObservable;
import com.example.zxa01.iotclient.common.pojo.Setting;
import java.util.ArrayList;
import java.util.List;
public class SettingModel extends BaseObservable {
private List<Setting> settings = new ArrayList<>();
private MutableLiveData<List<Setting>> settingsMLD = new MutableLiveData<>();
public SettingModel(){
}
private void addSettings(Setting setting) {
settings.add(setting);
}
public MutableLiveData<List<Setting>> getSettingMLD() {
return settingsMLD;
}
public void fetchSetting(){
// getSetting
addSettings(new Setting("Gateway address", "192.168.2.69"));
addSettings(new Setting("Account", "Test"));
addSettings(new Setting("HTTP port", "8080"));
addSettings(new Setting("WebSocket port", "8081"));
addSettings(new Setting("Log out", "exchange account"));
settingsMLD.setValue(settings);
}
}
package com.example.zxa01.iotclient.home.setting.view;
import android.databinding.DataBindingUtil;
import android.databinding.ViewDataBinding;
import android.support.annotation.LayoutRes;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import com.example.zxa01.iotclient.BR;
import com.example.zxa01.iotclient.common.pojo.Setting;
import com.example.zxa01.iotclient.home.setting.viewModel.SettingViewModel;
import java.util.List;
public class SettingAdapter extends RecyclerView.Adapter<SettingAdapter.MyViewHolder> {
private int layoutId;
private List<Setting> settings;
private SettingViewModel viewModel;
public SettingAdapter(@LayoutRes int layoutId, SettingViewModel viewModel) {
this.layoutId = layoutId;
this.viewModel = viewModel;
}
private int getLayoutIdForPosition(int position) {
return layoutId;
}
@Override
public SettingAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new SettingAdapter.MyViewHolder(DataBindingUtil.inflate(
LayoutInflater.from(parent.getContext()), viewType, parent, false));
}
@Override
public void onBindViewHolder(SettingAdapter.MyViewHolder holder, int position) {
holder.bind(viewModel, position);
}
@Override
public int getItemCount() {
return settings == null ? 0 : settings.size();
}
@Override
public int getItemViewType(int position) {
return getLayoutIdForPosition(position);
}
public void setSettings(List<Setting> settings) {
this.settings = settings;
}
class MyViewHolder extends RecyclerView.ViewHolder{
final ViewDataBinding binding;
MyViewHolder(ViewDataBinding binding) {
super(binding.getRoot());
this.binding = binding;
}
void bind(SettingViewModel viewModel, Integer position) {
viewModel.getSettingAt(position);
binding.setVariable(BR.viewModel, viewModel);
binding.setVariable(BR.position, position);
binding.executePendingBindings();
}
}
}
\ No newline at end of file
package com.example.zxa01.iotclient.home.setting;
package com.example.zxa01.iotclient.home.setting.view;
import android.content.Context;
import android.databinding.DataBindingUtil;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.example.zxa01.iotclient.R;
import com.example.zxa01.iotclient.common.pojo.Setting;
import java.util.LinkedList;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;
import com.example.zxa01.iotclient.databinding.FragmentSettingBinding;
import com.example.zxa01.iotclient.home.setting.viewModel.SettingViewModel;
public class SettingFragment extends Fragment {
private FragmentSettingBinding binding;
private SettingViewModel viewModel;
@BindView(R.id.setting_recycler_view)
RecyclerView settingRecyclerView;
Unbinder unbinder;
private LinkedList<Setting> mList = new LinkedList<>();
private RecyclerView mRecyclerView;
private OnFragmentInteractionListener mListener;
public SettingFragment() {
// fake data
mList.add(new Setting("Gateway address", "192.168.2.69"));
mList.add(new Setting("Account", "Test"));
mList.add(new Setting("HTTP port", "8080"));
mList.add(new Setting("WebSocket port", "8081"));
mList.add(new Setting("Log out", "exchange account"));
}
public static SettingFragment newInstance(String param1, String param2) {
return new SettingFragment();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_setting, container, false);
unbinder = ButterKnife.bind(this, view);
if(savedInstanceState == null){
buildRecyclerView(view);
}
return view;
}
public void onButtonPressed(Uri uri) {
if (mListener != null) {
mListener.onSettingFragment(uri);
}
binding = DataBindingUtil.inflate(inflater, R.layout.fragment_setting, container, false);
viewModel = new SettingViewModel(binding.getRoot().getContext());
binding.setViewModel(viewModel);
binding.settingRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
init();
return binding.getRoot();
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof OnFragmentInteractionListener) {
mListener = (OnFragmentInteractionListener) context;
} else {
throw new RuntimeException(context.toString()
+ " must implement OnFragmentInteractionListener");
}
}
@Override
public void onDetach() {
super.onDetach();
mListener = null;
}
@Override
public void onDestroyView() {
super.onDestroyView();
unbinder.unbind();
private void init() {
viewModel.refreshSetting();
viewModel.observeSettingMLD().observe(this,viewModel::setAdapter);
}
public interface OnFragmentInteractionListener {
void onSettingFragment(Uri uri);
}
public void buildRecyclerView(View view){
mRecyclerView = view.findViewById(R.id.setting_recycler_view);
mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
mRecyclerView.setAdapter(new SettingAdapter(mList));
}
}
package com.example.zxa01.iotclient.home.setting.viewModel;
import android.arch.lifecycle.MutableLiveData;
import android.arch.lifecycle.ViewModel;
import android.content.Context;
import android.databinding.ObservableBoolean;
import com.example.zxa01.iotclient.R;
import com.example.zxa01.iotclient.common.pojo.Setting;
import com.example.zxa01.iotclient.home.setting.model.SettingModel;
import com.example.zxa01.iotclient.home.setting.view.SettingAdapter;
import java.util.List;
public class SettingViewModel extends ViewModel {
public ObservableBoolean isLoading = new ObservableBoolean(true);
private SettingModel settingModel = new SettingModel();
private SettingAdapter adapter = new SettingAdapter(R.layout.recycler_view_setting,this);
private Context context;
public SettingViewModel(Context context){
this.context = context;
}
/**
* model
*/
public void refreshSetting(){
settingModel.fetchSetting();
}
public MutableLiveData<List<Setting>> observeSettingMLD() {
return settingModel.getSettingMLD();
}
/**
* child model
*/
public Setting getSettingAt(Integer index) {
if (settingModel.getSettingMLD().getValue() != null &&
index != null &&
settingModel.getSettingMLD().getValue().size() > index) {
return settingModel.getSettingMLD().getValue().get(index);
}
return null;
}
public void onSettingClick(Integer index) {
if (settingModel.getSettingMLD().getValue() != null &&
index != null &&
settingModel.getSettingMLD().getValue().size() > index) {
// TODO setting alert
}
}
/**
* adapter
*/
public SettingAdapter getAdapter() {
return adapter;
}
public void setAdapter(List<Setting> settings) {
this.isLoading.set(false);
this.adapter.setSettings(settings);
this.adapter.notifyDataSetChanged();
}
}
......@@ -3,9 +3,6 @@ package com.example.zxa01.iotclient.privacy.model;
import android.arch.lifecycle.MutableLiveData;
import android.databinding.BaseObservable;
import android.util.Log;
import android.view.Gravity;
import android.widget.Toast;
import com.example.zxa01.iotclient.common.http.Api;
import com.example.zxa01.iotclient.common.pojo.device.Device;
import com.example.zxa01.iotclient.common.pojo.device.Manufacturer;
......
package com.example.zxa01.iotclient.privacy.view;
import android.databinding.DataBindingUtil;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MenuItem;
import com.example.zxa01.iotclient.R;
import com.example.zxa01.iotclient.databinding.ActivityPrivacyBinding;
import com.example.zxa01.iotclient.detail.viewModel.DetailViewModel;
import com.example.zxa01.iotclient.home.device.view.create.DeviceCreateFragment;
import com.example.zxa01.iotclient.privacy.viewModel.PrivacyViewModel;
public class PrivacyActivity extends AppCompatActivity {
......@@ -33,7 +28,7 @@ public class PrivacyActivity extends AppCompatActivity {
private void init() {
viewModel.fetchPrivacyPolicyReport();
viewModel.observePrivacyPolicyReportMLD().observe(this, viewModel::setPrivacyPolicyReport);
viewModel.observeIsLoading().observe(this, viewModel::setIsUpload);
viewModel.observeIsLoadingMLD().observe(this, viewModel::setIsUpload);
}
@Override
......
......@@ -9,9 +9,7 @@ import android.view.LayoutInflater;
import android.view.ViewGroup;
import com.example.zxa01.iotclient.BR;
import com.example.zxa01.iotclient.common.pojo.device.Device;
import com.example.zxa01.iotclient.common.pojo.privacy.PrivacyPolicy;
import com.example.zxa01.iotclient.home.device.viewModel.DeviceViewModel;
import com.example.zxa01.iotclient.privacy.viewModel.PrivacyViewModel;
import java.util.List;
......
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
......@@ -14,23 +15,41 @@
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="@{viewModel.isLoading ? View.GONE : View.VISIBLE}">
android:background="@color/colorWhite">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorWhite"
android:paddingLeft="@dimen/padding"
android:paddingRight="@dimen/padding"
android:scrollbarAlwaysDrawHorizontalTrack="true"
tools:context=".detail.view.DetailActivity">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ProgressBar
android:id="@+id/progressBar"
style="@style/Widget.AppCompat.ProgressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="@dimen/margin_lg"
android:padding="@dimen/padding_lg"
android:secondaryProgress="40"
android:theme="@style/ProgressTheme"
android:visibility="@{viewModel.isLoading ? View.VISIBLE : View.GONE}" />
</FrameLayout>
<TableLayout
android:id="@+id/tableLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin"
android:padding="@dimen/padding_sm"
android:visibility="@{viewModel.isLoading ? View.GONE : View.VISIBLE}"
tools:ignore="MissingConstraints"
tools:layout_editor_absoluteX="20dp">
......@@ -62,20 +81,20 @@
style="@style/Widget.AppCompat.Button.Colored"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/font_sm"
android:padding="@dimen/padding"
android:onClick="@{()->viewModel.settingPrivacy()}"
android:text="@string/detail_preference_setting" />
android:padding="@dimen/padding"
android:text="@string/detail_preference_setting"
android:textSize="@dimen/font_sm" />
<Button
android:id="@+id/buttonPrivacyReport"
style="@style/Widget.AppCompat.Button.Colored"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/font_sm"
android:padding="@dimen/padding"
android:onClick="@{()->viewModel.downloadPrivacyReport()}"
android:text="@string/detail_detect_report" />
android:padding="@dimen/padding"
android:text="@string/detail_detect_report"
android:textSize="@dimen/font_sm" />
</LinearLayout>
......
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".home.setting.SettingFragment">
<android.support.v7.widget.RecyclerView
android:id="@+id/setting_recycler_view"
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<import type="android.view.View" />
<variable
name="viewModel"
type="com.example.zxa01.iotclient.home.setting.viewModel.SettingViewModel" />
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:listitem="@layout/recycler_view_setting" />
tools:context=".home.setting.view.SettingFragment">
<android.support.v7.widget.RecyclerView
android:id="@+id/setting_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:setAdapter="@{viewModel.getAdapter()}"
tools:listitem="@layout/recycler_view_setting" />
<ProgressBar
android:id="@+id/progressBar"
style="@style/Widget.AppCompat.ProgressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:secondaryProgress="40"
android:theme="@style/ProgressTheme"
android:visibility="@{viewModel.isLoading ? View.VISIBLE : View.GONE}" />
</FrameLayout>
</FrameLayout>
\ No newline at end of file
</layout>
\ No newline at end of file
......@@ -17,9 +17,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/border_bottom"
android:orientation="vertical"
android:onClick="@{()->viewModel.onPrivacyPolicyReportClick(position)}"
android:orientation="vertical"
android:padding="@dimen/margin">
<LinearLayout
......
......@@ -21,7 +21,7 @@
<!--Detail-->
<string name="detail_preference_setting">隱私偏好設定</string>
<string name="detail_preference_setting">隱私選項設定</string>
<string name="detail_detect_report">檢測報告下載</string>
<string name="detail_report_download">下載中...</string>
......@@ -38,7 +38,6 @@
<string name="record_title">隱私選擇記錄</string>
<string name="record_view">檢視</string>
<!--Login-->
<string name="action_sign_in">登入</string>
<string name="login_iot_gateway">Login to IOT gateway</string>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment