Commit cbac1838 authored by hywang's avatar hywang

苏木动态修改

parent 16a26dfd
...@@ -13,6 +13,10 @@ ...@@ -13,6 +13,10 @@
<uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION " />
<application <application
android:name="App" android:name="App"
...@@ -22,6 +26,7 @@ ...@@ -22,6 +26,7 @@
android:roundIcon="@mipmap/ic_launcher_round" android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/AppTheme" android:theme="@style/AppTheme"
android:requestLegacyExternalStorage="true"
android:networkSecurityConfig="@xml/network_security_config"> android:networkSecurityConfig="@xml/network_security_config">
<activity android:name=".ui.login.LoginActivity" <activity android:name=".ui.login.LoginActivity"
android:configChanges="keyboardHidden|orientation|screenSize" android:configChanges="keyboardHidden|orientation|screenSize"
......
package com.phlx.wool.ui.setting; package com.phlx.wool.ui.setting;
import android.Manifest;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.annotation.TargetApi; import android.annotation.TargetApi;
import android.app.Activity; import android.app.Activity;
import android.app.Application;
import android.app.ProgressDialog; import android.app.ProgressDialog;
import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothDevice;
...@@ -10,6 +12,7 @@ import android.content.BroadcastReceiver; ...@@ -10,6 +12,7 @@ import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
...@@ -19,6 +22,7 @@ import android.widget.Toast; ...@@ -19,6 +22,7 @@ import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import com.afollestad.materialdialogs.DialogAction; import com.afollestad.materialdialogs.DialogAction;
import com.afollestad.materialdialogs.MaterialDialog; import com.afollestad.materialdialogs.MaterialDialog;
...@@ -106,8 +110,35 @@ public class SettingActivity extends BaseActivity<ActivitySettingBinding, Settin ...@@ -106,8 +110,35 @@ public class SettingActivity extends BaseActivity<ActivitySettingBinding, Settin
mBtAdapter = BluetoothAdapter.getDefaultAdapter(); mBtAdapter = BluetoothAdapter.getDefaultAdapter();
binding.ipAddress.setIpAddress(SPUtils.getInstance().getString(Configs.SP_APP_IP, RetrofitClient.baseUrl)); binding.ipAddress.setIpAddress(SPUtils.getInstance().getString(Configs.SP_APP_IP, RetrofitClient.baseUrl));
ModuleManager.openCom(); ModuleManager.openCom();
initPermissions();
} }
private void initPermissions() {
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.P) {
Log.i(TAG, "sdk < 28 Q");
if (ActivityCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
|| ActivityCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
String[] strings =
{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION};
ActivityCompat.requestPermissions(this, strings, 1);
}
} else {
if (ActivityCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
|| ActivityCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED
|| ActivityCompat.checkSelfPermission(this,
"android.permission.ACCESS_BACKGROUND_LOCATION") != PackageManager.PERMISSION_GRANTED) {
String[] strings = {android.Manifest.permission.ACCESS_FINE_LOCATION,
android.Manifest.permission.ACCESS_COARSE_LOCATION,
"android.permission.ACCESS_BACKGROUND_LOCATION"};
ActivityCompat.requestPermissions(this, strings, 2);
}
}
}
@Override @Override
public void initViewObservable() { public void initViewObservable() {
...@@ -160,8 +191,7 @@ public class SettingActivity extends BaseActivity<ActivitySettingBinding, Settin ...@@ -160,8 +191,7 @@ public class SettingActivity extends BaseActivity<ActivitySettingBinding, Settin
devicesAddress = PrefUtils.getString(SettingActivity.this, Configs.DEVICEADDRESS, ""); devicesAddress = PrefUtils.getString(SettingActivity.this, Configs.DEVICEADDRESS, "");
if (devicesAddress == null || devicesAddress.length() <= 0) { if (devicesAddress == null || devicesAddress.length() <= 0) {
Toast.makeText(SettingActivity.this, "您是第一次启动程序,请选择重新搜索连接!", Toast.makeText(SettingActivity.this, "您是第一次启动程序,请选择重新搜索连接!", Toast.LENGTH_SHORT).show();
Toast.LENGTH_SHORT).show();
} else { } else {
connect2BlueToothdevice(); connect2BlueToothdevice();
......
...@@ -138,6 +138,7 @@ public class SettingVM extends BackBarVM { ...@@ -138,6 +138,7 @@ public class SettingVM extends BackBarVM {
} }
public void connectBlule() { public void connectBlule() {
if (Configs.isConnected) if (Configs.isConnected)
disBluetoothEvent.call(); disBluetoothEvent.call();
else else
......
...@@ -5,11 +5,14 @@ import android.bluetooth.BluetoothAdapter; ...@@ -5,11 +5,14 @@ import android.bluetooth.BluetoothAdapter;
import android.content.Intent; import android.content.Intent;
import android.database.DataSetObserver; import android.database.DataSetObserver;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log; import android.util.Log;
import android.view.Gravity; import android.view.Gravity;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.Window; import android.view.Window;
import android.widget.ArrayAdapter;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.SpinnerAdapter; import android.widget.SpinnerAdapter;
import android.widget.Toast; import android.widget.Toast;
...@@ -77,6 +80,10 @@ public class VillusBuyActivity extends BaseActivity<ActivityVillusBuyBinding, Vi ...@@ -77,6 +80,10 @@ public class VillusBuyActivity extends BaseActivity<ActivityVillusBuyBinding, Vi
pvTime.show(binding.birthDayTv); pvTime.show(binding.birthDayTv);
}); });
viewModel.changeDivision.observe(this, aBoolean -> {
binding.divisionSp.setAdapter(viewModel.getAdapter(VillusBuyActivity.this));
});
//弹出绒毛购买打印选择 //弹出绒毛购买打印选择
viewModel.printEvent.observe(this, aBoolean -> { viewModel.printEvent.observe(this, aBoolean -> {
new MaterialDialog.Builder(this).title("系统信息").content("是否打印") new MaterialDialog.Builder(this).title("系统信息").content("是否打印")
...@@ -148,4 +155,5 @@ public class VillusBuyActivity extends BaseActivity<ActivityVillusBuyBinding, Vi ...@@ -148,4 +155,5 @@ public class VillusBuyActivity extends BaseActivity<ActivityVillusBuyBinding, Vi
} }
} }
} }
} }
...@@ -4,11 +4,13 @@ import android.app.Application; ...@@ -4,11 +4,13 @@ import android.app.Application;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.ArrayAdapter;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
import com.phlx.wool.Configs; import com.phlx.wool.Configs;
import com.phlx.wool.R;
import com.phlx.wool.data.Repository; import com.phlx.wool.data.Repository;
import com.phlx.wool.db.DbUtil; import com.phlx.wool.db.DbUtil;
import com.phlx.wool.db.interf.DbIDUCallBack; import com.phlx.wool.db.interf.DbIDUCallBack;
...@@ -22,6 +24,7 @@ import com.phlx.wool.params.CattleResponse; ...@@ -22,6 +24,7 @@ import com.phlx.wool.params.CattleResponse;
import com.phlx.wool.params.UploadParams; import com.phlx.wool.params.UploadParams;
import com.phlx.wool.ui.base.BackBarVM; import com.phlx.wool.ui.base.BackBarVM;
import com.phlx.wool.ui.setting.SettingActivity; import com.phlx.wool.ui.setting.SettingActivity;
import com.phlx.wool.ui.villus.VillusBuyActivity;
import com.phlx.wool.util.PrintLabel; import com.phlx.wool.util.PrintLabel;
import com.phlx.wool.widget.ItemData; import com.phlx.wool.widget.ItemData;
import com.printer.sdk.PrinterInstance; import com.printer.sdk.PrinterInstance;
...@@ -54,6 +57,7 @@ public class VillusBuyVM extends BackBarVM<Repository> { ...@@ -54,6 +57,7 @@ public class VillusBuyVM extends BackBarVM<Repository> {
public VillusBuyEntity entity; public VillusBuyEntity entity;
public List<IKeyAndValue> superiorPertainItemData; public List<IKeyAndValue> superiorPertainItemData;
public List<IKeyAndValue> pertainItemData; public List<IKeyAndValue> pertainItemData;
private List<String> lists = new ArrayList<>();
private List<VillusBuyEntity> uploadData; private List<VillusBuyEntity> uploadData;
...@@ -64,6 +68,8 @@ public class VillusBuyVM extends BackBarVM<Repository> { ...@@ -64,6 +68,8 @@ public class VillusBuyVM extends BackBarVM<Repository> {
private Disposable inventoryBus; private Disposable inventoryBus;
private ArrayAdapter<String> spinnerAdapter;
public VillusBuyVM(@NonNull Application application, Repository model) { public VillusBuyVM(@NonNull Application application, Repository model) {
super(application, model); super(application, model);
...@@ -84,11 +90,13 @@ public class VillusBuyVM extends BackBarVM<Repository> { ...@@ -84,11 +90,13 @@ public class VillusBuyVM extends BackBarVM<Repository> {
} }
} }
pertainItemData = new ArrayList<>(); pertainItemData = new ArrayList<>();
lists = new ArrayList<>();
if (superiorDivisionEntities != null && superiorDivisionEntities.size() > 0) { if (superiorDivisionEntities != null && superiorDivisionEntities.size() > 0) {
List<DivisionEntity> divisionEntities = model.getPertain(superiorDivisionEntities.get(0).getCode()); List<DivisionEntity> divisionEntities = model.getPertain(superiorDivisionEntities.get(0).getCode());
if (divisionEntities != null && divisionEntities.size() > 0) { if (divisionEntities != null && divisionEntities.size() > 0) {
for (DivisionEntity divisionEntity : divisionEntities) { for (DivisionEntity divisionEntity : divisionEntities) {
pertainItemData.add(new ItemData(divisionEntity.getName(), divisionEntity.getCode())); pertainItemData.add(new ItemData(divisionEntity.getName(), divisionEntity.getCode()));
lists.add(divisionEntity.getName());
} }
} }
} }
...@@ -111,31 +119,36 @@ public class VillusBuyVM extends BackBarVM<Repository> { ...@@ -111,31 +119,36 @@ public class VillusBuyVM extends BackBarVM<Repository> {
entity.notifyChange(); entity.notifyChange();
} }
public BindingCommand<IKeyAndValue> onSuperiorPertainSelectorCommand = public BindingCommand<IKeyAndValue> onSuperiorPertainSelectorCommand = new BindingCommand<>(new BindingConsumer<IKeyAndValue>() {
new BindingCommand<>(new BindingConsumer<IKeyAndValue>() {
@Override @Override
public void call(IKeyAndValue iKeyAndValue) { public void call(IKeyAndValue iKeyAndValue) {
pertainItemData = new ArrayList<>(); pertainItemData = new ArrayList<>();
List<DivisionEntity> divisionEntities = model.getPertain(iKeyAndValue.getValue()); List<DivisionEntity> divisionEntities = model.getPertain(iKeyAndValue.getValue());
pertainItemData.clear(); pertainItemData.clear();
lists.clear();
if (divisionEntities != null && divisionEntities.size() > 0) { if (divisionEntities != null && divisionEntities.size() > 0) {
for (DivisionEntity divisionEntity : divisionEntities) { for (DivisionEntity divisionEntity : divisionEntities) {
pertainItemData.add(new ItemData(divisionEntity.getName(), divisionEntity.getCode())); pertainItemData.add(new ItemData(divisionEntity.getName(), divisionEntity.getCode()));
lists.add(divisionEntity.getName());
} }
} }
// changeDivision.call(); changeDivision.call();
// pertainItemData.notifyAll();
} }
}); });
public BindingCommand<IKeyAndValue> onPertainSelectorCommand = public BindingCommand<IKeyAndValue> onPertainSelectorCommand = new BindingCommand<>(new BindingConsumer<IKeyAndValue>() {
new BindingCommand<>(new BindingConsumer<IKeyAndValue>() {
@Override @Override
public void call(IKeyAndValue iKeyAndValue) { public void call(IKeyAndValue iKeyAndValue) {
entity.setRevision(iKeyAndValue.getValue()); entity.setRevision(iKeyAndValue.getValue());
} }
}); });
public ArrayAdapter getAdapter(VillusBuyActivity cls){
spinnerAdapter = new ArrayAdapter<>(cls, R.layout.simple_spinner_item, lists);
spinnerAdapter.setDropDownViewResource(R.layout.simple_spinner_dropdown_item);
return spinnerAdapter;
}
/** /**
* 离线保存本地,在线先上传,后保存本地 * 离线保存本地,在线先上传,后保存本地
*/ */
......
<layout xmlns:android="http://schemas.android.com/apk/res/android" <layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:binding="http://schemas.android.com/apk/res-auto"> xmlns:binding="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/tools"
app:ignore="NamespaceTypo">
<data> <data>
...@@ -7,6 +9,10 @@ ...@@ -7,6 +9,10 @@
name="viewModel" name="viewModel"
type="com.phlx.wool.ui.villus.vm.VillusBuyVM" /> type="com.phlx.wool.ui.villus.vm.VillusBuyVM" />
<variable
name="spinnerAdapter"
type="android.widget.ArrayAdapter" />
</data> </data>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
...@@ -102,20 +108,23 @@ ...@@ -102,20 +108,23 @@
binding:layout_constraintStart_toStartOf="parent" binding:layout_constraintStart_toStartOf="parent"
binding:layout_constraintTop_toBottomOf="@+id/l_variety_selected_desc" /> binding:layout_constraintTop_toBottomOf="@+id/l_variety_selected_desc" />
<Spinner <!-- app:items="@{viewModel.pertainItemData}"-->
<!-- binding:valueReply="@{viewModel.entity.revision}" -->
<androidx.appcompat.widget.AppCompatSpinner
android:id="@+id/division_sp" android:id="@+id/division_sp"
android:layout_width="@dimen/dp_0" android:layout_width="@dimen/dp_0"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5" android:layout_marginTop="@dimen/dp_5"
android:minHeight="@dimen/dp_40" android:minHeight="@dimen/dp_40"
android:spinnerMode="dialog" android:spinnerMode="dialog"
binding:itemDatas="@{viewModel.pertainItemData}" app:adapter="@{spinnerAdapter}"
binding:layout_constraintBottom_toTopOf="@+id/birth_place_edit" binding:layout_constraintBottom_toTopOf="@+id/birth_place_edit"
binding:layout_constraintLeft_toLeftOf="@+id/marking_guideline_vertical" binding:layout_constraintLeft_toLeftOf="@+id/marking_guideline_vertical"
binding:layout_constraintRight_toRightOf="parent" binding:layout_constraintRight_toRightOf="parent"
binding:layout_constraintTop_toBottomOf="@+id/superior_division_sp" binding:layout_constraintTop_toBottomOf="@+id/superior_division_sp"
binding:itemDatas="@{viewModel.pertainItemData}"
binding:onItemSelectedCommand="@{viewModel.onPertainSelectorCommand}" binding:onItemSelectedCommand="@{viewModel.onPertainSelectorCommand}"
binding:valueReply="@{viewModel.entity.revision}" /> />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/birth_place_desc" android:id="@+id/birth_place_desc"
......
<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerDropDownItemStyle"
android:layout_width="match_parent"
android:layout_height="60dp"
android:ellipsize="marquee"
android:gravity="center"
android:singleLine="true"
android:textSize="13sp" />
\ No newline at end of file
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerItemStyle"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:textSize="@dimen/sp_14"
android:textAlignment="inherit"/>
\ No newline at end of file
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