Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
X
xabber-android
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
xabber-android
Commits
5581d92e
Commit
5581d92e
authored
Jun 26, 2015
by
Grigory Fedorov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
android-integration library included in gradle and removed from source. FingerprintViewer updated.
parent
747224c4
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
11 additions
and
592 deletions
+11
-592
LICENSE
LICENSE
+0
-4
build.gradle
app/build.gradle
+1
-0
IntentIntegrator.java
...om/google/zxing/integration/android/IntentIntegrator.java
+0
-417
IntentResult.java
...va/com/google/zxing/integration/android/IntentResult.java
+0
-95
FingerprintViewer.java
...rc/main/java/com/xabber/android/ui/FingerprintViewer.java
+10
-74
fingerprint_viewer.xml
app/src/main/res/values/fingerprint_viewer.xml
+0
-2
No files found.
LICENSE
View file @
5581d92e
...
...
@@ -72,10 +72,6 @@ app/src/main/res/layout/preference.xml
Also source code of following components is included in repository (see the source code or official sites for license details):
ZXing
app/src/main/java/com/google/zxing/*
Apache License, Version 2.0 (the "License").
Novel sasl client
app/src/main/java/com/novell/sasl/*
The OpenLDAP Public License.
...
...
app/build.gradle
View file @
5581d92e
...
...
@@ -49,5 +49,6 @@ dependencies {
compile
'com.melnykov:floatingactionbutton:1.2.0'
compile
'dnsjava:dnsjava:2.1.7'
compile
'com.github.bumptech.glide:glide:3.6.0'
compile
'com.google.zxing:android-integration:3.1.0'
compile
project
(
'otr4j'
)
}
app/src/main/java/com/google/zxing/integration/android/IntentIntegrator.java
deleted
100644 → 0
View file @
747224c4
/*
* Copyright 2009 ZXing authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
com
.
google
.
zxing
.
integration
.
android
;
import
java.util.Arrays
;
import
java.util.Collection
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
android.app.Activity
;
import
android.app.AlertDialog
;
import
android.content.ActivityNotFoundException
;
import
android.content.DialogInterface
;
import
android.content.Intent
;
import
android.content.pm.PackageManager
;
import
android.content.pm.ResolveInfo
;
import
android.net.Uri
;
import
android.os.Bundle
;
import
android.util.Log
;
/**
* <p>A utility class which helps ease integration with Barcode Scanner via {@link Intent}s. This is a simple
* way to invoke barcode scanning and receive the result, without any need to integrate, modify, or learn the
* project's source code.</p>
* <p/>
* <h2>Initiating a barcode scan</h2>
* <p/>
* <p>To integrate, create an instance of {@code IntentIntegrator} and call {@link #initiateScan()} and wait
* for the result in your app.</p>
* <p/>
* <p>It does require that the Barcode Scanner (or work-alike) application is installed. The
* {@link #initiateScan()} method will prompt the user to download the application, if needed.</p>
* <p/>
* <p>There are a few steps to using this integration. First, your {@link Activity} must implement
* the method {@link Activity#onActivityResult(int, int, Intent)} and include a line of code like this:</p>
* <p/>
* <pre>{@code
* public void onActivityResult(int requestCode, int resultCode, Intent intent) {
* IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
* if (scanResult != null) {
* // handle scan result
* }
* // else continue with any other code you need in the method
* ...
* }
* }</pre>
* <p/>
* <p>This is where you will handle a scan result.</p>
* <p/>
* <p>Second, just call this in response to a user action somewhere to begin the scan process:</p>
* <p/>
* <pre>{@code
* IntentIntegrator integrator = new IntentIntegrator(yourActivity);
* integrator.initiateScan();
* }</pre>
* <p/>
* <p>Note that {@link #initiateScan()} returns an {@link AlertDialog} which is non-null if the
* user was prompted to download the application. This lets the calling app potentially manage the dialog.
* In particular, ideally, the app dismisses the dialog if it's still active in its {@link Activity#onPause()}
* method.</p>
* <p/>
* <p>You can use {@link #setTitle(String)} to customize the title of this download prompt dialog (or, use
* {@link #setTitleByID(int)} to set the title by string resource ID.) Likewise, the prompt message, and
* yes/no button labels can be changed.</p>
* <p/>
* <p>Finally, you can use {@link #addExtra(String, Object)} to add more parameters to the Intent used
* to invoke the scanner. This can be used to set additional options not directly exposed by this
* simplified API.</p>
* <p/>
* <p>By default, this will only allow applications that are known to respond to this intent correctly
* do so. The apps that are allowed to response can be set with {@link #setTargetApplications(Collection)}.
* For example, set to {@link #TARGET_BARCODE_SCANNER_ONLY} to only target the Barcode Scanner app itself.</p>
* <p/>
* <h2>Sharing text via barcode</h2>
* <p/>
* <p>To share text, encoded as a QR Code on-screen, similarly, see {@link #shareText(CharSequence)}.</p>
* <p/>
* <p>Some code, particularly download integration, was contributed from the Anobiit application.</p>
* <p/>
* <h2>Enabling experimental barcode formats</h2>
* <p/>
* <p>Some formats are not enabled by default even when scanning with {@link #ALL_CODE_TYPES}, such as
* {@link com.google.zxing.BarcodeFormat#PDF_417}. Use {@link #initiateScan(java.util.Collection)} with
* a collection containing the names of formats to scan for explicitly, like "PDF_417", to use such
* formats.</p>
*
* @author Sean Owen
* @author Fred Lin
* @author Isaac Potoczny-Jones
* @author Brad Drehmer
* @author gcstang
*/
public
class
IntentIntegrator
{
public
static
final
int
REQUEST_CODE
=
0x0000c0de
;
// Only use bottom 16 bits
private
static
final
String
TAG
=
IntentIntegrator
.
class
.
getSimpleName
();
public
static
final
String
DEFAULT_TITLE
=
"Install Barcode Scanner?"
;
public
static
final
String
DEFAULT_MESSAGE
=
"This application requires Barcode Scanner. Would you like to install it?"
;
public
static
final
String
DEFAULT_YES
=
"Yes"
;
public
static
final
String
DEFAULT_NO
=
"No"
;
public
static
final
String
BS_PACKAGE
=
"com.google.zxing.client.android"
;
private
static
final
String
BSPLUS_PACKAGE
=
"com.srowen.bs.android"
;
// supported barcode formats
public
static
final
Collection
<
String
>
PRODUCT_CODE_TYPES
=
list
(
"UPC_A"
,
"UPC_E"
,
"EAN_8"
,
"EAN_13"
,
"RSS_14"
);
public
static
final
Collection
<
String
>
ONE_D_CODE_TYPES
=
list
(
"UPC_A"
,
"UPC_E"
,
"EAN_8"
,
"EAN_13"
,
"CODE_39"
,
"CODE_93"
,
"CODE_128"
,
"ITF"
,
"RSS_14"
,
"RSS_EXPANDED"
);
public
static
final
Collection
<
String
>
QR_CODE_TYPES
=
Collections
.
singleton
(
"QR_CODE"
);
public
static
final
Collection
<
String
>
DATA_MATRIX_TYPES
=
Collections
.
singleton
(
"DATA_MATRIX"
);
public
static
final
Collection
<
String
>
ALL_CODE_TYPES
=
null
;
public
static
final
Collection
<
String
>
TARGET_BARCODE_SCANNER_ONLY
=
Collections
.
singleton
(
BS_PACKAGE
);
public
static
final
Collection
<
String
>
TARGET_ALL_KNOWN
=
list
(
BS_PACKAGE
,
// Barcode Scanner
BSPLUS_PACKAGE
,
// Barcode Scanner+
BSPLUS_PACKAGE
+
".simple"
// Barcode Scanner+ Simple
// What else supports this intent?
);
private
final
Activity
activity
;
private
String
title
;
private
String
message
;
private
String
buttonYes
;
private
String
buttonNo
;
private
Collection
<
String
>
targetApplications
;
private
final
Map
<
String
,
Object
>
moreExtras
;
public
IntentIntegrator
(
Activity
activity
)
{
this
.
activity
=
activity
;
title
=
DEFAULT_TITLE
;
message
=
DEFAULT_MESSAGE
;
buttonYes
=
DEFAULT_YES
;
buttonNo
=
DEFAULT_NO
;
targetApplications
=
TARGET_ALL_KNOWN
;
moreExtras
=
new
HashMap
<
String
,
Object
>(
3
);
}
public
String
getTitle
()
{
return
title
;
}
public
void
setTitle
(
String
title
)
{
this
.
title
=
title
;
}
public
void
setTitleByID
(
int
titleID
)
{
title
=
activity
.
getString
(
titleID
);
}
public
String
getMessage
()
{
return
message
;
}
public
void
setMessage
(
String
message
)
{
this
.
message
=
message
;
}
public
void
setMessageByID
(
int
messageID
)
{
message
=
activity
.
getString
(
messageID
);
}
public
String
getButtonYes
()
{
return
buttonYes
;
}
public
void
setButtonYes
(
String
buttonYes
)
{
this
.
buttonYes
=
buttonYes
;
}
public
void
setButtonYesByID
(
int
buttonYesID
)
{
buttonYes
=
activity
.
getString
(
buttonYesID
);
}
public
String
getButtonNo
()
{
return
buttonNo
;
}
public
void
setButtonNo
(
String
buttonNo
)
{
this
.
buttonNo
=
buttonNo
;
}
public
void
setButtonNoByID
(
int
buttonNoID
)
{
buttonNo
=
activity
.
getString
(
buttonNoID
);
}
public
Collection
<
String
>
getTargetApplications
()
{
return
targetApplications
;
}
public
void
setTargetApplications
(
Collection
<
String
>
targetApplications
)
{
this
.
targetApplications
=
targetApplications
;
}
public
void
setSingleTargetApplication
(
String
targetApplication
)
{
this
.
targetApplications
=
Collections
.
singleton
(
targetApplication
);
}
public
Map
<
String
,
?>
getMoreExtras
()
{
return
moreExtras
;
}
public
void
addExtra
(
String
key
,
Object
value
)
{
moreExtras
.
put
(
key
,
value
);
}
/**
* Initiates a scan for all known barcode types.
*/
public
AlertDialog
initiateScan
()
{
return
initiateScan
(
ALL_CODE_TYPES
);
}
/**
* Initiates a scan only for a certain set of barcode types, given as strings corresponding
* to their names in ZXing's {@code BarcodeFormat} class like "UPC_A". You can supply constants
* like {@link #PRODUCT_CODE_TYPES} for example.
*
* @return the {@link AlertDialog} that was shown to the user prompting them to download the app
* if a prompt was needed, or null otherwise
*/
public
AlertDialog
initiateScan
(
Collection
<
String
>
desiredBarcodeFormats
)
{
Intent
intentScan
=
new
Intent
(
BS_PACKAGE
+
".SCAN"
);
intentScan
.
addCategory
(
Intent
.
CATEGORY_DEFAULT
);
// check which types of codes to scan for
if
(
desiredBarcodeFormats
!=
null
)
{
// set the desired barcode types
StringBuilder
joinedByComma
=
new
StringBuilder
();
for
(
String
format
:
desiredBarcodeFormats
)
{
if
(
joinedByComma
.
length
()
>
0
)
{
joinedByComma
.
append
(
','
);
}
joinedByComma
.
append
(
format
);
}
intentScan
.
putExtra
(
"SCAN_FORMATS"
,
joinedByComma
.
toString
());
}
String
targetAppPackage
=
findTargetAppPackage
(
intentScan
);
if
(
targetAppPackage
==
null
)
{
return
showDownloadDialog
();
}
// intentScan.setPackage(targetAppPackage);
intentScan
.
addFlags
(
Intent
.
FLAG_ACTIVITY_CLEAR_TOP
);
intentScan
.
addFlags
(
Intent
.
FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET
);
attachMoreExtras
(
intentScan
);
startActivityForResult
(
intentScan
,
REQUEST_CODE
);
return
null
;
}
/**
* Start an activity.<br>
* This method is defined to allow different methods of activity starting for
* newer versions of Android and for compatibility library.
*
* @param intent Intent to start.
* @param code Request code for the activity
* @see android.app.Activity#startActivityForResult(Intent, int)
* @see android.app.Fragment#startActivityForResult(Intent, int)
*/
protected
void
startActivityForResult
(
Intent
intent
,
int
code
)
{
activity
.
startActivityForResult
(
intent
,
code
);
}
private
String
findTargetAppPackage
(
Intent
intent
)
{
PackageManager
pm
=
activity
.
getPackageManager
();
List
<
ResolveInfo
>
availableApps
=
pm
.
queryIntentActivities
(
intent
,
PackageManager
.
MATCH_DEFAULT_ONLY
);
if
(
availableApps
!=
null
)
{
for
(
ResolveInfo
availableApp
:
availableApps
)
{
String
packageName
=
availableApp
.
activityInfo
.
packageName
;
if
(
targetApplications
.
contains
(
packageName
))
{
return
packageName
;
}
}
}
return
null
;
}
private
AlertDialog
showDownloadDialog
()
{
AlertDialog
.
Builder
downloadDialog
=
new
AlertDialog
.
Builder
(
activity
);
downloadDialog
.
setTitle
(
title
);
downloadDialog
.
setMessage
(
message
);
downloadDialog
.
setPositiveButton
(
buttonYes
,
new
DialogInterface
.
OnClickListener
()
{
@Override
public
void
onClick
(
DialogInterface
dialogInterface
,
int
i
)
{
Uri
uri
=
Uri
.
parse
(
"market://details?id="
+
BS_PACKAGE
);
Intent
intent
=
new
Intent
(
Intent
.
ACTION_VIEW
,
uri
);
try
{
activity
.
startActivity
(
intent
);
}
catch
(
ActivityNotFoundException
anfe
)
{
// Hmm, market is not installed
Log
.
w
(
TAG
,
"Android Market is not installed; cannot install Barcode Scanner"
);
}
}
});
downloadDialog
.
setNegativeButton
(
buttonNo
,
new
DialogInterface
.
OnClickListener
()
{
@Override
public
void
onClick
(
DialogInterface
dialogInterface
,
int
i
)
{
}
});
return
downloadDialog
.
show
();
}
/**
* <p>Call this from your {@link Activity}'s
* {@link Activity#onActivityResult(int, int, Intent)} method.</p>
*
* @return null if the event handled here was not related to this class, or
* else an {@link IntentResult} containing the result of the scan. If the user cancelled scanning,
* the fields will be null.
*/
public
static
IntentResult
parseActivityResult
(
int
requestCode
,
int
resultCode
,
Intent
intent
)
{
if
(
requestCode
==
REQUEST_CODE
)
{
if
(
resultCode
==
Activity
.
RESULT_OK
)
{
String
contents
=
intent
.
getStringExtra
(
"SCAN_RESULT"
);
String
formatName
=
intent
.
getStringExtra
(
"SCAN_RESULT_FORMAT"
);
byte
[]
rawBytes
=
intent
.
getByteArrayExtra
(
"SCAN_RESULT_BYTES"
);
int
intentOrientation
=
intent
.
getIntExtra
(
"SCAN_RESULT_ORIENTATION"
,
Integer
.
MIN_VALUE
);
Integer
orientation
=
intentOrientation
==
Integer
.
MIN_VALUE
?
null
:
intentOrientation
;
String
errorCorrectionLevel
=
intent
.
getStringExtra
(
"SCAN_RESULT_ERROR_CORRECTION_LEVEL"
);
return
new
IntentResult
(
contents
,
formatName
,
rawBytes
,
orientation
,
errorCorrectionLevel
);
}
return
new
IntentResult
();
}
return
null
;
}
/**
* Defaults to type "TEXT_TYPE".
*
* @see #shareText(CharSequence, CharSequence)
*/
public
AlertDialog
shareText
(
CharSequence
text
)
{
return
shareText
(
text
,
"TEXT_TYPE"
);
}
/**
* Shares the given text by encoding it as a barcode, such that another user can
* scan the text off the screen of the device.
*
* @param text the text string to encode as a barcode
* @param type type of data to encode. See {@code com.google.zxing.client.android.Contents.Type} constants.
* @return the {@link AlertDialog} that was shown to the user prompting them to download the app
* if a prompt was needed, or null otherwise
*/
public
AlertDialog
shareText
(
CharSequence
text
,
CharSequence
type
)
{
Intent
intent
=
new
Intent
();
intent
.
addCategory
(
Intent
.
CATEGORY_DEFAULT
);
intent
.
setAction
(
BS_PACKAGE
+
".ENCODE"
);
intent
.
putExtra
(
"ENCODE_TYPE"
,
type
);
intent
.
putExtra
(
"ENCODE_DATA"
,
text
);
String
targetAppPackage
=
findTargetAppPackage
(
intent
);
if
(
targetAppPackage
==
null
)
{
return
showDownloadDialog
();
}
// intent.setPackage(targetAppPackage);
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_CLEAR_TOP
);
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET
);
attachMoreExtras
(
intent
);
activity
.
startActivity
(
intent
);
return
null
;
}
private
static
Collection
<
String
>
list
(
String
...
values
)
{
return
Collections
.
unmodifiableCollection
(
Arrays
.
asList
(
values
));
}
private
void
attachMoreExtras
(
Intent
intent
)
{
for
(
Map
.
Entry
<
String
,
Object
>
entry
:
moreExtras
.
entrySet
())
{
String
key
=
entry
.
getKey
();
Object
value
=
entry
.
getValue
();
// Kind of hacky
if
(
value
instanceof
Integer
)
{
intent
.
putExtra
(
key
,
(
Integer
)
value
);
}
else
if
(
value
instanceof
Long
)
{
intent
.
putExtra
(
key
,
(
Long
)
value
);
}
else
if
(
value
instanceof
Boolean
)
{
intent
.
putExtra
(
key
,
(
Boolean
)
value
);
}
else
if
(
value
instanceof
Double
)
{
intent
.
putExtra
(
key
,
(
Double
)
value
);
}
else
if
(
value
instanceof
Float
)
{
intent
.
putExtra
(
key
,
(
Float
)
value
);
}
else
if
(
value
instanceof
Bundle
)
{
intent
.
putExtra
(
key
,
(
Bundle
)
value
);
}
else
{
intent
.
putExtra
(
key
,
value
.
toString
());
}
}
}
}
app/src/main/java/com/google/zxing/integration/android/IntentResult.java
deleted
100644 → 0
View file @
747224c4
/*
* Copyright 2009 ZXing authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
com
.
google
.
zxing
.
integration
.
android
;
/**
* <p>Encapsulates the result of a barcode scan invoked through {@link IntentIntegrator}.</p>
*
* @author Sean Owen
*/
public
final
class
IntentResult
{
private
final
String
contents
;
private
final
String
formatName
;
private
final
byte
[]
rawBytes
;
private
final
Integer
orientation
;
private
final
String
errorCorrectionLevel
;
IntentResult
()
{
this
(
null
,
null
,
null
,
null
,
null
);
}
IntentResult
(
String
contents
,
String
formatName
,
byte
[]
rawBytes
,
Integer
orientation
,
String
errorCorrectionLevel
)
{
this
.
contents
=
contents
;
this
.
formatName
=
formatName
;
this
.
rawBytes
=
rawBytes
;
this
.
orientation
=
orientation
;
this
.
errorCorrectionLevel
=
errorCorrectionLevel
;
}
/**
* @return raw content of barcode
*/
public
String
getContents
()
{
return
contents
;
}
/**
* @return name of format, like "QR_CODE", "UPC_A". See {@code BarcodeFormat} for more format names.
*/
public
String
getFormatName
()
{
return
formatName
;
}
/**
* @return raw bytes of the barcode content, if applicable, or null otherwise
*/
public
byte
[]
getRawBytes
()
{
return
rawBytes
;
}
/**
* @return rotation of the image, in degrees, which resulted in a successful scan. May be null.
*/
public
Integer
getOrientation
()
{
return
orientation
;
}
/**
* @return name of the error correction level used in the barcode, if applicable
*/
public
String
getErrorCorrectionLevel
()
{
return
errorCorrectionLevel
;
}
@Override
public
String
toString
()
{
StringBuilder
dialogText
=
new
StringBuilder
(
100
);
dialogText
.
append
(
"Format: "
).
append
(
formatName
).
append
(
'\n'
);
dialogText
.
append
(
"Contents: "
).
append
(
contents
).
append
(
'\n'
);
int
rawBytesLength
=
rawBytes
==
null
?
0
:
rawBytes
.
length
;
dialogText
.
append
(
"Raw bytes: ("
).
append
(
rawBytesLength
).
append
(
" bytes)\n"
);
dialogText
.
append
(
"Orientation: "
).
append
(
orientation
).
append
(
'\n'
);
dialogText
.
append
(
"EC level: "
).
append
(
errorCorrectionLevel
).
append
(
'\n'
);
return
dialogText
.
toString
();
}
}
app/src/main/java/com/xabber/android/ui/FingerprintViewer.java
View file @
5581d92e
...
...
@@ -15,11 +15,8 @@
package
com
.
xabber
.
android
.
ui
;
import
android.app.AlertDialog
;
import
android.app.Dialog
;
import
android.content.ActivityNotFoundException
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.net.Uri
;
import
android.os.Bundle
;
import
android.support.v7.widget.Toolbar
;
import
android.text.ClipboardManager
;
...
...
@@ -44,11 +41,6 @@ import com.xabber.android.data.intent.EntityIntentBuilder;
import
com.xabber.android.data.roster.AbstractContact
;
import
com.xabber.android.data.roster.OnContactChangedListener
;
import
com.xabber.android.data.roster.RosterManager
;
import
com.xabber.android.ui.dialog.ConfirmDialogBuilder
;
import
com.xabber.android.ui.dialog.ConfirmDialogListener
;
import
com.xabber.android.ui.dialog.DialogBuilder
;
import
com.xabber.android.ui.dialog.NotificationDialogBuilder
;
import
com.xabber.android.ui.dialog.NotificationDialogListener
;
import
com.xabber.android.ui.helper.ContactTitleActionBarInflater
;
import
com.xabber.android.ui.helper.ManagedActivity
;
import
com.xabber.xmpp.address.Jid
;
...
...
@@ -57,8 +49,7 @@ import java.util.Collection;
public
class
FingerprintViewer
extends
ManagedActivity
implements
OnCheckedChangeListener
,
OnAccountChangedListener
,
OnContactChangedListener
,
OnClickListener
,
ConfirmDialogListener
,
NotificationDialogListener
{
OnContactChangedListener
,
OnClickListener
{
private
static
final
String
SAVED_REMOTE_FINGERPRINT
=
"com.xabber.android.ui.FingerprintViewer.SAVED_REMOTE_FINGERPRINT"
;
private
static
final
String
SAVED_LOCAL_FINGERPRINT
=
"com.xabber.android.ui.FingerprintViewer.SAVED_LOCAL_FINGERPRINT"
;
...
...
@@ -170,11 +161,15 @@ public class FingerprintViewer extends ManagedActivity implements
String
code
=
scanResult
.
getContents
();
boolean
equals
=
code
!=
null
&&
code
.
equals
(
remoteFingerprint
);
verifiedView
.
setChecked
(
equals
);
int
dialogMessageId
;
if
(
equals
)
{
showDialog
(
R
.
string
.
action_otr_smp_verified
)
;
dialogMessageId
=
R
.
string
.
action_otr_smp_verified
;
}
else
{
showDialog
(
R
.
string
.
action_otr_smp_unverified
)
;
dialogMessageId
=
R
.
string
.
action_otr_smp_unverified
;
}
new
AlertDialog
.
Builder
(
this
).
setMessage
(
dialogMessageId
)
.
setNeutralButton
(
android
.
R
.
string
.
ok
,
null
).
show
();
}
}
...
...
@@ -209,27 +204,14 @@ public class FingerprintViewer extends ManagedActivity implements
}
}
/**
* Show native dialog instead of provided by ZXing.
*
* @param alertDialog
*/
private
void
wrapInstallDialog
(
AlertDialog
alertDialog
)
{
if
(
alertDialog
==
null
)
{
return
;
}
alertDialog
.
dismiss
();
showDialog
(
R
.
string
.
zxing_install_message
);
}
@Override
@Override
public
void
onClick
(
View
view
)
{
switch
(
view
.
getId
())
{
case
R
.
id
.
scan
:
wrapInstallDialog
(
integrator
.
initiateScan
(
IntentIntegrator
.
QR_CODE_TYPES
)
);
integrator
.
initiateScan
(
IntentIntegrator
.
QR_CODE_TYPES
);
break
;
case
R
.
id
.
show
:
wrapInstallDialog
(
integrator
.
shareText
(
localFingerprint
)
);
integrator
.
shareText
(
localFingerprint
);
break
;
case
R
.
id
.
copy
:
((
ClipboardManager
)
getSystemService
(
CLIPBOARD_SERVICE
))
...
...
@@ -240,52 +222,6 @@ public class FingerprintViewer extends ManagedActivity implements
}
}
@Override
protected
Dialog
onCreateDialog
(
int
id
)
{
switch
(
id
)
{
case
R
.
string
.
zxing_install_message
:
return
new
ConfirmDialogBuilder
(
this
,
id
,
this
)
.
setMessage
(
R
.
string
.
zxing_install_message
).
create
();
case
R
.
string
.
zxing_install_fail
:
return
new
NotificationDialogBuilder
(
this
,
id
,
this
)
.
setMessage
(
R
.
string
.
zxing_install_fail
).
create
();
case
R
.
string
.
action_otr_smp_verified
:
return
new
NotificationDialogBuilder
(
this
,
id
,
this
)
.
setMessage
(
R
.
string
.
action_otr_smp_verified
).
create
();
case
R
.
string
.
action_otr_smp_unverified
:
return
new
NotificationDialogBuilder
(
this
,
id
,
this
)
.
setMessage
(
R
.
string
.
action_otr_smp_unverified
).
create
();
default
:
return
super
.
onCreateDialog
(
id
);
}
}
@Override
public
void
onAccept
(
DialogBuilder
dialogBuilder
)
{
switch
(
dialogBuilder
.
getDialogId
())
{
case
R
.
string
.
zxing_install_message
:
Uri
uri
=
Uri
.
parse
(
"market://details?id="
+
IntentIntegrator
.
BS_PACKAGE
);
Intent
intent
=
new
Intent
(
Intent
.
ACTION_VIEW
,
uri
);
try
{
startActivity
(
intent
);
}
catch
(
ActivityNotFoundException
anfe
)
{
showDialog
(
R
.
string
.
zxing_install_fail
);
break
;
}
break
;
default
:
break
;
}
}
@Override
public
void
onDecline
(
DialogBuilder
dialogBuilder
)
{
}
@Override
public
void
onCancel
(
DialogBuilder
dialogBuilder
)
{
}
private
void
update
()
{
isUpdating
=
true
;
AbstractContact
abstractContact
=
RosterManager
.
getInstance
().
getBestContact
(
account
,
user
);
...
...
app/src/main/res/values/fingerprint_viewer.xml
View file @
5581d92e
...
...
@@ -6,7 +6,5 @@
<string
name=
"otr_remote_fingerprint"
>
Your opponent\'s fingerprint:
</string>
<string
name=
"otr_scan_fingerprint"
>
Scan QR code with opponent\'s fingerprint
</string>
<string
name=
"otr_show_fingerprint"
>
Show QR code with your fingerprint
</string>
<string
name=
"zxing_install_fail"
>
There is no Google Play installed. Please install Barcode Scanner manually.
</string>
<string
name=
"zxing_install_message"
>
This application requires Barcode Scanner. Would you like to install it?
</string>
<string
name=
"otr_copy_fingerprint"
>
Copy your fingerprint to clipboard
</string>
</resources>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment