mirror of
https://github.com/syncthing/syncthing-android.git
synced 2024-11-22 20:31:16 +00:00
Added QR code scanner on when adding node (closes #39).
This uses intents, not a built-in scanner, so a seperate app is required (eg "Barcode Scanner").
This commit is contained in:
parent
6ccf1667e8
commit
87daf00867
3 changed files with 36 additions and 1 deletions
|
@ -2,6 +2,7 @@ package com.nutomic.syncthingandroid.gui;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.annotation.TargetApi;
|
import android.annotation.TargetApi;
|
||||||
|
import android.app.Activity;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
@ -16,6 +17,7 @@ import android.preference.Preference;
|
||||||
import android.preference.PreferenceActivity;
|
import android.preference.PreferenceActivity;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
|
import android.view.View;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.nutomic.syncthingandroid.R;
|
import com.nutomic.syncthingandroid.R;
|
||||||
|
@ -39,6 +41,8 @@ public class NodeSettingsActivity extends PreferenceActivity implements
|
||||||
|
|
||||||
public static final String KEY_NODE_ID = "node_id";
|
public static final String KEY_NODE_ID = "node_id";
|
||||||
|
|
||||||
|
private static final int SCAN_QR_REQUEST_CODE = 235;
|
||||||
|
|
||||||
private SyncthingService mSyncthingService;
|
private SyncthingService mSyncthingService;
|
||||||
|
|
||||||
private final ServiceConnection mSyncthingServiceConnection = new ServiceConnection() {
|
private final ServiceConnection mSyncthingServiceConnection = new ServiceConnection() {
|
||||||
|
@ -254,4 +258,27 @@ public class NodeSettingsActivity extends PreferenceActivity implements
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sends QR code scanning intent when clicking the qrcode icon.
|
||||||
|
*/
|
||||||
|
public void onClick(View view) {
|
||||||
|
Intent intentScan = new Intent("com.google.zxing.client.android.SCAN");
|
||||||
|
intentScan.addCategory(Intent.CATEGORY_DEFAULT);
|
||||||
|
intentScan.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||||
|
intentScan.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
|
||||||
|
startActivityForResult(intentScan, SCAN_QR_REQUEST_CODE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Receives value of scanned QR code and sets it as node ID.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
|
if (requestCode == SCAN_QR_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
|
||||||
|
mNode.NodeID = data.getStringExtra("SCAN_RESULT");
|
||||||
|
((EditTextPreference) mNodeId).setText(mNode.NodeID);
|
||||||
|
mNodeId.setSummary(mNode.NodeID);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
7
src/main/res/layout/scan_qr_code_widget.xml
Normal file
7
src/main/res/layout/scan_qr_code_widget.xml
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="48dip"
|
||||||
|
android:layout_height="48dip"
|
||||||
|
android:src="@drawable/ic_qrcode"
|
||||||
|
android:onClick="onClick" />
|
|
@ -4,7 +4,8 @@
|
||||||
|
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:key="node_id"
|
android:key="node_id"
|
||||||
android:title="@string/node_id" />
|
android:title="@string/node_id"
|
||||||
|
android:widgetLayout="@layout/scan_qr_code_widget" />
|
||||||
|
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:key="name"
|
android:key="name"
|
||||||
|
|
Loading…
Reference in a new issue