• BlackBerry Dynamics
  • Runtime library for Android applications
  • 12.1.1.43
Package com.good.gd.widget

Secure Cut-Copy-Paste Operations. More...

Description

An end user can copy and move text within a mobile application, and between mobile applications, by using cut-copy-paste operations. The BlackBerry Dynamics runtime can secure these operations for and between BlackBerry Dynamics applications. Operations between BlackBerry Dynamics applications and other applications cannot be secured by the runtime, but can be blocked.

The runtime secures text by encrypting it when it is cut or copied to the device clipboard, and then decrypting it when it is pasted from the clipboard. Encryption of data in the clipboard buffer implicitly blocks the data from being pasted by an application that cannot decrypt the data.

Application Restrictions

The application code must observe the following restrictions in order to enable the runtime to secure or block cut-copy-paste operations.

AppCompat Widgets

New versions of the view class widgets are now available, that are subclassed from the AppCompat view classes. These are as follows:

These classes should be used in any app that uses AppCompatActivity.

Automatic Widget Substitution in AppCompat apps

Apps using a theme derived from AppCompat can install the provided GDAppCompatViewInflater in their theme as follows:

AppTheme viewInflaterClass declaration

<style name="AppTheme" parent="Theme.AppCompat">
<item name="viewInflaterClass">com.good.gd.app.GDAppCompatViewInflater</item>
</style>

This will automatically substitute the following classes in layout files:

Specified Widget Class Name

Replacement Class

TextView or
androidx.appcompat.widget.TextView or
GDAppCompatTextView

GDAppCompatTextView

CheckedTextView or
androidx.appcompat.widget.CheckedTextView or
GDAppCompatCheckedTextView

GDAppCompatCheckedTextView

AutoCompleteTextView or
androidx.appcompat.widget.AutoCompleteTextView or
GDAppCompatAutoCompleteTextView

GDAppCompatAutoCompleteTextView

MultiAutoCompleteTextView or
androidx.appcompat.widget.MultiAutoCompleteTextView or
GDAppCompatMultiAutoCompleteTextView

GDAppCompatMultiAutoCompleteTextView

EditText or
androidx.appcompat.widget.EditText or
GDAppCompatEditText

GDAppCompatEditText

androidx.appcompat.widget.SearchView or
GDAppCompatSearchView

GDAppCompatSearchView

Note, however:

  • This does not apply to programmatic creation of widgets, or to JetPack Compose
  • SearchView is included in this scheme, but only when the full class name of the AppCompat class is given. The reason for this is that the AppCompat Searchview widgetis not a subclass of the base Android class, so the Activity/Fragment code would have to be updated in any case.

Data Leakage Prevention Policy Settings

There are a number of policies for data leakage prevention (DLP) that may be set at an enterprise.

DLP Outbound. This policy setting specifies that data copied from within the application can only be pasted into:

  • The same application.
  • Another BlackBerry Dynamics application that was activated for the same end user in the same BlackBerry Dynamics deployment.

DLP Inbound. This policy setting specifies that data can only be pasted into the application from:

  • Within the same application.
  • Another BlackBerry Dynamics application that was activated for the same end user in the same BlackBerry Dynamics deployment.

Prevent Screen Capture. This policy setting specifies that screen capture isn't allowed. See the Screen Capture Control page for details.

Block Android Dictation. This policy setting specifies that the Android voice input feature cannot be used to enter text.

Single DLP. This is a policy setting from earlier versions of BlackBerry Dynamics and legacy Good Dynamics. It has the same meaning as a combination of DLP Outbound and Prevent Screen Capture, above. Good Control management console software before Good Dynamics 2.0 only had this setting, not separate DLP settings.

Each of these policy settings can be switched on or switched off. The current settings can be checked in the GDAndroid.getApplicationConfig collection.

Automatic Enforcement

The classes in this package enforce DLP policy settings automatically, as follows.

  • Classes other than GDWebView enforce the following policies, if switched on:
    • DLP Outbound, or Single DLP, depending on managment console version.
    • DLP Inbound.
    • Android Dictation.
  • The GDWebView class:
    • Blocks copying data, if DLP Outbound is switched on.
    • Is treated as an external source, if DLP Inbound is switched on. Data copied from a GDWebView control cannot be pasted into the same application, nor into another application activated by the same end user, if DLP Inbound is switched on.

If the relevant DLP policies are switched off, then instances of the classes in this package behave like the native equivalents.

Similar Features

There are a number of features that can result in data being shared between applications in a way that is similar to a cut-copy-paste operation. These features work differently in this package, as follows.

  • In classes other than GDWebView, the Android Smart Text Selection feature is blocked if DLP Outbound is switched on. (Smart Text Selection doesn't apply to GDWebView.)
  • Text data is blocked from being made available to the Android Autofill Framework. Also, text fields in this package are blocked from being populated by the Android Autofill Framework. Both of these blocks apply regardless of DLP settings.

Classes

class  GDAppCompatAutoCompleteTextView
 Replacement for native widget class. More...
 
class  GDAppCompatCheckedTextView
 Replacement for native widget class. More...
 
class  GDAppCompatEditText
 Replacement for native widget class. More...
 
class  GDAppCompatMultiAutoCompleteTextView
 Replacement for native widget class. More...
 
class  GDAppCompatSearchView
 Replacement for AppCompat widget class. More...
 
class  GDAppCompatTextView
 Replacement for native widget class. More...
 
class  GDAutoCompleteTextView
 Replacement for native widget class. More...
 
class  GDEditText
 Replacement for native widget class. More...
 
class  GDMultiAutoCompleteTextView
 Replacement for native widget class. More...
 
class  GDSearchView
 Replacement for native widget class. More...
 
class  GDTextView
 Replacement for native widget class. More...
 
class  GDWebView
 Replacement for native widget class. More...