Skip to content

Commit 90bece6

Browse files
committed
feat(Inventory): added option to override serial number
1 parent 65b9667 commit 90bece6

File tree

9 files changed

+44
-4
lines changed

9 files changed

+44
-4
lines changed

app/src/main/java/org/glpi/inventory/agent/broadcast/TimeAlarm.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ public void onReceive(final Context context, Intent intent) {
9090
@Override
9191
public void onTaskSuccess(String data) {
9292
ServerSchema model = httpInventory.setServerModel(serverName);
93+
if(!model.getSerial().trim().isEmpty()) {
94+
data = data.replaceAll("<SSN>(.*)</SSN>","<SSN>" + model.getSerial() + "</SSN>");
95+
}
9396
httpInventory.sendInventory(data, model, new HttpInventory.OnTaskCompleted() {
9497
@Override
9598
public void onTaskSuccess(String data) {

app/src/main/java/org/glpi/inventory/agent/core/detailserver/DetailServerModel.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ public void saveServer(ArrayList<String> modelServer, Context context) {
6565
jo.put("login", modelServer.get(2));
6666
jo.put("pass", modelServer.get(3));
6767
jo.put("itemtype", modelServer.get(4));
68+
jo.put("serial", modelServer.get(5));
6869
ArrayList<String> serverArray = preferences.loadServer();
6970
serverArray.add(modelServer.get(0));
7071
preferences.saveServer(serverArray);
@@ -94,6 +95,7 @@ public void updateServer(ArrayList<String> modelServer, String serverName, Conte
9495
jo.put("login", modelServer.get(2));
9596
jo.put("pass", modelServer.get(3));
9697
jo.put("itemtype", modelServer.get(4));
98+
jo.put("serial", modelServer.get(5));
9799
ArrayList<String> serverArray = preferences.loadServer();
98100
for (int i = 0; i < serverArray.size(); i++) {
99101
if (serverArray.get(i).equals(serverName)) {
@@ -127,6 +129,7 @@ public void loadServer(String serverName, Context context) {
127129
serverSchema.setLogin(jo.getString("login"));
128130
serverSchema.setPass(jo.getString("pass"));
129131
serverSchema.setItemtype(jo.getString("itemtype"));
132+
serverSchema.setSerial(jo.getString("serial"));
130133
presenter.modelServer(serverSchema);
131134
} catch (JSONException e) {
132135
AgentLog.e(e.getMessage());

app/src/main/java/org/glpi/inventory/agent/schema/ServerSchema.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,13 @@ public class ServerSchema {
4242
private String login;
4343
private String pass;
4444
private String itemtype;
45+
private String serial;
46+
47+
public String getSerial() { return this.serial; }
48+
49+
public void setSerial(String serial) {
50+
this.serial = serial;
51+
}
4552

4653
public String getAddress() {
4754
return address;

app/src/main/java/org/glpi/inventory/agent/service/InventoryService.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,9 @@ private void sendInventory() {
266266
inventory.getXML(new InventoryTask.OnTaskCompleted() {
267267
@Override
268268
public void onTaskSuccess(String data) {
269+
if(!model.getSerial().trim().isEmpty()) {
270+
data = data.replaceAll("<SSN>(.*)</SSN>","<SSN>" + model.getSerial() + "</SSN>");
271+
}
269272
httpInventory.sendInventory(data, model, new HttpInventory.OnTaskCompleted() {
270273
@Override
271274
public void onTaskSuccess(String data) {

app/src/main/java/org/glpi/inventory/agent/ui/ActivityDetailServer.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ public class ActivityDetailServer extends AppCompatActivity implements DetailSer
7979
private EditText editLogin;
8080
private EditText editPassWord;
8181
private Spinner assetItemtype;
82+
private EditText editSerial;
8283
private Toolbar toolbar;
8384
private String serverName;
8485
private JSONObject extra_Data = null;
@@ -148,6 +149,10 @@ public void onClick(View view) {
148149
editLogin.setText(extra_Data.getString("LOGIN"));
149150
editPassWord.setText(extra_Data.getString("PASSWORD"));
150151
assetItemtype.setSelection(((ArrayAdapter)assetItemtype.getAdapter()).getPosition(extra_Data.getString("ASSET_ITEMTYPE")));
152+
153+
if (extra_Data.has("ASSET_SERIAL")){
154+
editSerial.setText(extra_Data.getString("ASSET_SERIAL"));
155+
}
151156
} catch (Exception ex) {
152157
Toast.makeText(this, getApplicationContext().getResources().getString(R.string.bad_deeplink_format), Toast.LENGTH_LONG).show();
153158
AgentLog.e(getApplicationContext().getResources().getString(R.string.bad_deeplink_format));
@@ -187,6 +192,10 @@ public void onActivityResult(final int requestCode, final int resultCode, final
187192
editLogin.setText(extra_Data.getString("LOGIN"));
188193
editPassWord.setText(extra_Data.getString("PASSWORD"));
189194
assetItemtype.setSelection(((ArrayAdapter)assetItemtype.getAdapter()).getPosition(extra_Data.getString("ASSET_ITEMTYPE")));
195+
196+
if (extra_Data.has("ASSET_SERIAL")){
197+
editSerial.setText(extra_Data.getString("ASSET_SERIAL"));
198+
}
190199
} catch (Exception ex) {
191200
Toast.makeText(this, getApplicationContext().getResources().getString(R.string.bad_qr_code_format), Toast.LENGTH_LONG).show();
192201
AgentLog.e(getApplicationContext().getResources().getString(R.string.bad_qr_code_format));
@@ -221,6 +230,7 @@ private void instanceObject() {
221230
editTag = findViewById(R.id.editTag);
222231
editLogin = findViewById(R.id.editLogin);
223232
editPassWord = findViewById(R.id.editPassWord);
233+
editSerial = findViewById(R.id.editSerialNumber);
224234
actionServer.setOnClickListener(this);
225235
deleteServer.setOnClickListener(this);
226236
btnScan = findViewById(R.id.btnQRScan);
@@ -243,6 +253,7 @@ public void onClick(View v) {
243253
serverInfo.add(editLogin.getText().toString());
244254
serverInfo.add(editPassWord.getText().toString());
245255
serverInfo.add(assetItemtype.getSelectedItem().toString());
256+
serverInfo.add(editSerial.getText().toString());
246257
if (serverName == null) {
247258
presenter.saveServer(serverInfo, getApplicationContext());
248259
//manage automatic inventory
@@ -300,6 +311,7 @@ public void modelServer(ServerSchema model) {
300311
editTag.setText(model.getTag());
301312
editLogin.setText(model.getLogin());
302313
editPassWord.setText(model.getPass());
314+
editSerial.setText(model.getSerial());
303315
assetItemtype.setSelection(((ArrayAdapter)assetItemtype.getAdapter()).getPosition(model.getItemtype()));
304316
btnScan.hide();
305317
}

app/src/main/java/org/glpi/inventory/agent/ui/DialogListServers.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,9 @@ private void sendInventory(final Activity activity, final Home.Presenter present
147147
inventoryTask.getXML(new InventoryTask.OnTaskCompleted() {
148148
@Override
149149
public void onTaskSuccess(String data) {
150-
AgentLog.d(data);
150+
if(!model.getSerial().trim().isEmpty()) {
151+
data = data.replaceAll("<SSN>(.*)</SSN>","<SSN>" + model.getSerial() + "</SSN>");
152+
}
151153
httpInventory.sendInventory(data, model, new HttpInventory.OnTaskCompleted() {
152154
@Override
153155
public void onTaskSuccess(String data) {
@@ -174,4 +176,4 @@ public void onTaskError(Throwable error) {
174176
}
175177
});
176178
}
177-
}
179+
}

app/src/main/java/org/glpi/inventory/agent/utils/HttpInventory.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ public ServerSchema setServerModel(String serverName) {
9090
serverSchema.setLogin(jo.getString("login"));
9191
serverSchema.setPass(jo.getString("pass"));
9292
serverSchema.setItemtype(jo.getString("itemtype"));
93+
serverSchema.setSerial(jo.getString("serial"));
9394
} catch (JSONException e) {
9495
AgentLog.e(e.getMessage());
9596
}

app/src/main/res/layout/activity_detail_server.xml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,16 @@
4444

4545
</androidx.appcompat.widget.Toolbar>
4646

47+
4748
<LinearLayout
49+
android:id="@+id/linear"
4850
android:layout_width="match_parent"
4951
android:layout_height="wrap_content"
5052
android:layout_below="@+id/toolbar"
53+
android:layout_marginTop="51dp"
5154
android:divider="@drawable/empty_tall_divider"
5255
android:orientation="vertical"
5356
android:padding="15dp"
54-
android:id="@+id/linear"
5557
android:showDividers="middle">
5658

5759
<EditText
@@ -86,8 +88,14 @@
8688
android:id="@+id/spinnerAssetItemtype"
8789
android:layout_width="match_parent"
8890
android:layout_height="wrap_content" />
89-
</LinearLayout>
9091

92+
<EditText
93+
android:id="@+id/editSerialNumber"
94+
android:layout_width="match_parent"
95+
android:layout_height="wrap_content"
96+
android:hint="@string/serial"
97+
android:inputType="text" />
98+
</LinearLayout>
9199

92100
<com.google.android.material.floatingactionbutton.FloatingActionButton
93101
android:id="@+id/btnQRScan"

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
<string name="login">Login</string>
4242
<string name="password">Password</string>
4343
<string name="tag">Tag</string>
44+
<string name="serial">Custom asset serial</string>
4445
<string name="tagSummary">Custom asset tag</string>
4546
<string name="week">Week</string>
4647
<string name="snackButton">Done</string>

0 commit comments

Comments
 (0)