├── .gitignore
├── ImageFilterApp
├── app
│ ├── build.gradle
│ ├── libs
│ │ ├── imagefilter-v1.0.1.jar
│ │ └── sdk-v1.0.0.jar
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── akexorcist
│ │ │ └── imagefilterapp
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── akexorcist
│ │ │ │ └── imagefilterapp
│ │ │ │ └── MainActivity.java
│ │ ├── jniLibs
│ │ │ └── armeabi
│ │ │ │ └── libImageFilterLibs.so
│ │ └── res
│ │ │ ├── drawable-nodpi
│ │ │ └── sample.jpg
│ │ │ ├── layout
│ │ │ └── activity_main.xml
│ │ │ ├── mipmap-hdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── values-w820dp
│ │ │ └── dimens.xml
│ │ │ └── values
│ │ │ ├── colors.xml
│ │ │ ├── dimens.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── akexorcist
│ │ └── imagefilterapp
│ │ └── ExampleUnitTest.java
├── build.gradle
├── gradle.properties
└── settings.gradle
├── KNOXGeofencingApp
├── app
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── akexorcist
│ │ │ └── knoxgeofencingapp
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── akexorcist
│ │ │ │ └── knoxgeofencingapp
│ │ │ │ ├── ActivationActivity.java
│ │ │ │ ├── DoSomethingActivity.java
│ │ │ │ ├── GeofencingReceiver.java
│ │ │ │ ├── bus
│ │ │ │ ├── BusProvider.java
│ │ │ │ └── event
│ │ │ │ │ ├── InsideGeofenceEvent.java
│ │ │ │ │ ├── LocationUnavailableEvent.java
│ │ │ │ │ └── OutsideGeofenceEvent.java
│ │ │ │ └── manager
│ │ │ │ ├── DialogManager.java
│ │ │ │ ├── SharedPreferenceManager.java
│ │ │ │ └── ToastManager.java
│ │ └── res
│ │ │ ├── drawable-hdpi
│ │ │ └── ic_launcher_geofencing.png
│ │ │ ├── drawable-mdpi
│ │ │ └── ic_launcher_geofencing.png
│ │ │ ├── drawable-xhdpi
│ │ │ └── ic_launcher_geofencing.png
│ │ │ ├── drawable-xxhdpi
│ │ │ └── ic_launcher_geofencing.png
│ │ │ ├── drawable-xxxhdpi
│ │ │ └── ic_launcher_geofencing.png
│ │ │ ├── drawable
│ │ │ ├── selector_round_button_accent.xml
│ │ │ ├── shape_round_button_accent_disable.xml
│ │ │ ├── shape_round_button_accent_normal.xml
│ │ │ └── shape_round_button_accent_pressed.xml
│ │ │ ├── layout
│ │ │ ├── activity_activation.xml
│ │ │ └── activity_do_something.xml
│ │ │ └── values
│ │ │ ├── colors.xml
│ │ │ ├── dimens.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── akexorcist
│ │ └── knoxgeofencingapp
│ │ └── ExampleUnitTest.java
├── build.gradle
├── gradle.properties
├── knoxActivator
│ ├── build.gradle
│ ├── libs
│ │ ├── edm.jar
│ │ ├── license.jar
│ │ └── rc.jar
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── akexorcist
│ │ │ └── knoxactivator
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── akexorcist
│ │ │ │ └── knoxactivator
│ │ │ │ ├── ActivationCallback.java
│ │ │ │ ├── KnoxActivationBus.java
│ │ │ │ ├── KnoxActivationManager.java
│ │ │ │ ├── event
│ │ │ │ ├── AdminDeactivatedEvent.java
│ │ │ │ ├── LicenseActivatedEvent.java
│ │ │ │ └── LicenseActivationFailedEvent.java
│ │ │ │ └── receiver
│ │ │ │ ├── AdminActivationReceiver.java
│ │ │ │ └── LicenseActivationReceiver.java
│ │ └── res
│ │ │ ├── values
│ │ │ └── strings.xml
│ │ │ └── xml
│ │ │ └── enterprise_device_admin.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── akexorcist
│ │ └── knoxactivator
│ │ └── ExampleUnitTest.java
└── settings.gradle
├── KNOXKioskApp
├── app
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── akexorcist
│ │ │ └── knoxkioskapp
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── akexorcist
│ │ │ │ └── knoxkioskapp
│ │ │ │ ├── ActivationActivity.java
│ │ │ │ ├── DoSomethingActivity.java
│ │ │ │ ├── KIOSKReceiver.java
│ │ │ │ └── manager
│ │ │ │ ├── DialogManager.java
│ │ │ │ ├── SharedPreferenceManager.java
│ │ │ │ └── ToastManager.java
│ │ └── res
│ │ │ ├── drawable-hdpi
│ │ │ └── ic_launcher_kiosk.png
│ │ │ ├── drawable-mdpi
│ │ │ └── ic_launcher_kiosk.png
│ │ │ ├── drawable-xhdpi
│ │ │ └── ic_launcher_kiosk.png
│ │ │ ├── drawable-xxhdpi
│ │ │ └── ic_launcher_kiosk.png
│ │ │ ├── drawable-xxxhdpi
│ │ │ └── ic_launcher_kiosk.png
│ │ │ ├── drawable
│ │ │ ├── selector_round_button_accent.xml
│ │ │ ├── shape_round_button_accent_disable.xml
│ │ │ ├── shape_round_button_accent_normal.xml
│ │ │ └── shape_round_button_accent_pressed.xml
│ │ │ ├── layout
│ │ │ ├── activity_activation.xml
│ │ │ └── activity_do_something.xml
│ │ │ └── values
│ │ │ ├── colors.xml
│ │ │ ├── dimens.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── akexorcist
│ │ └── knoxkioskapp
│ │ └── ExampleUnitTest.java
├── build.gradle
├── gradle.properties
├── knoxActivator
│ ├── build.gradle
│ ├── libs
│ │ ├── edm.jar
│ │ ├── license.jar
│ │ └── rc.jar
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── akexorcist
│ │ │ └── knoxactivator
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── akexorcist
│ │ │ │ └── knoxactivator
│ │ │ │ ├── ActivationCallback.java
│ │ │ │ ├── KnoxActivationBus.java
│ │ │ │ ├── KnoxActivationManager.java
│ │ │ │ ├── event
│ │ │ │ ├── AdminDeactivatedEvent.java
│ │ │ │ ├── LicenseActivatedEvent.java
│ │ │ │ └── LicenseActivationFailedEvent.java
│ │ │ │ └── receiver
│ │ │ │ ├── AdminActivationReceiver.java
│ │ │ │ └── LicenseActivationReceiver.java
│ │ └── res
│ │ │ ├── values
│ │ │ └── strings.xml
│ │ │ └── xml
│ │ │ └── enterprise_device_admin.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── akexorcist
│ │ └── knoxactivator
│ │ └── ExampleUnitTest.java
└── settings.gradle
├── KNOXLSOApp
├── app
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── akexorcist
│ │ │ └── knoxgeofencingapp
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── assets
│ │ │ └── akexorcist_logo.png
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── akexorcist
│ │ │ │ └── knoxlsoapp
│ │ │ │ ├── ActivationActivity.java
│ │ │ │ ├── DoSomethingActivity.java
│ │ │ │ └── manager
│ │ │ │ ├── DialogManager.java
│ │ │ │ ├── FileAssetManager.java
│ │ │ │ ├── SharedPreferenceManager.java
│ │ │ │ └── ToastManager.java
│ │ └── res
│ │ │ ├── drawable-hdpi
│ │ │ └── ic_launcher_lso.png
│ │ │ ├── drawable-mdpi
│ │ │ └── ic_launcher_lso.png
│ │ │ ├── drawable-xhdpi
│ │ │ └── ic_launcher_lso.png
│ │ │ ├── drawable-xxhdpi
│ │ │ └── ic_launcher_lso.png
│ │ │ ├── drawable-xxxhdpi
│ │ │ └── ic_launcher_lso.png
│ │ │ ├── drawable
│ │ │ ├── selector_round_button_accent.xml
│ │ │ ├── shape_round_button_accent_disable.xml
│ │ │ ├── shape_round_button_accent_normal.xml
│ │ │ └── shape_round_button_accent_pressed.xml
│ │ │ ├── layout
│ │ │ ├── activity_activation.xml
│ │ │ └── activity_do_something.xml
│ │ │ └── values
│ │ │ ├── colors.xml
│ │ │ ├── dimens.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── akexorcist
│ │ └── knoxgeofencingapp
│ │ └── ExampleUnitTest.java
├── build.gradle
├── gradle.properties
├── knoxActivator
│ ├── build.gradle
│ ├── libs
│ │ ├── edm.jar
│ │ ├── license.jar
│ │ └── rc.jar
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── akexorcist
│ │ │ └── knoxactivator
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── akexorcist
│ │ │ │ └── knoxactivator
│ │ │ │ ├── ActivationCallback.java
│ │ │ │ ├── KnoxActivationBus.java
│ │ │ │ ├── KnoxActivationManager.java
│ │ │ │ ├── event
│ │ │ │ ├── AdminDeactivatedEvent.java
│ │ │ │ ├── LicenseActivatedEvent.java
│ │ │ │ └── LicenseActivationFailedEvent.java
│ │ │ │ └── receiver
│ │ │ │ ├── AdminActivationReceiver.java
│ │ │ │ └── LicenseActivationReceiver.java
│ │ └── res
│ │ │ ├── values
│ │ │ └── strings.xml
│ │ │ └── xml
│ │ │ └── enterprise_device_admin.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── akexorcist
│ │ └── knoxactivator
│ │ └── ExampleUnitTest.java
└── settings.gradle
├── KNOXPolicyApp
├── app
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── akexorcist
│ │ │ └── knoxpolicyapp
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── akexorcist
│ │ │ │ └── knoxpolicyapp
│ │ │ │ ├── ActivationActivity.java
│ │ │ │ ├── DoSomethingActivity.java
│ │ │ │ └── manager
│ │ │ │ ├── DialogManager.java
│ │ │ │ ├── SharedPreferenceManager.java
│ │ │ │ └── ToastManager.java
│ │ └── res
│ │ │ ├── drawable
│ │ │ ├── selector_round_button_accent.xml
│ │ │ ├── shape_round_button_accent_disable.xml
│ │ │ ├── shape_round_button_accent_normal.xml
│ │ │ └── shape_round_button_accent_pressed.xml
│ │ │ ├── layout
│ │ │ ├── activity_activation.xml
│ │ │ └── activity_do_something.xml
│ │ │ ├── mipmap-hdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ └── ic_launcher.png
│ │ │ └── values
│ │ │ ├── colors.xml
│ │ │ ├── dimens.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── akexorcist
│ │ └── knoxpolicyapp
│ │ └── ExampleUnitTest.java
├── build.gradle
├── gradle.properties
├── knoxActivator
│ ├── build.gradle
│ ├── libs
│ │ ├── edm.jar
│ │ ├── license.jar
│ │ └── rc.jar
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── akexorcist
│ │ │ └── knoxactivator
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── akexorcist
│ │ │ │ └── knoxactivator
│ │ │ │ ├── ActivationCallback.java
│ │ │ │ ├── KnoxActivationBus.java
│ │ │ │ ├── KnoxActivationManager.java
│ │ │ │ ├── event
│ │ │ │ ├── AdminDeactivatedEvent.java
│ │ │ │ ├── LicenseActivatedEvent.java
│ │ │ │ └── LicenseActivationFailedEvent.java
│ │ │ │ └── receiver
│ │ │ │ ├── AdminActivationReceiver.java
│ │ │ │ └── LicenseActivationReceiver.java
│ │ └── res
│ │ │ ├── values
│ │ │ └── strings.xml
│ │ │ └── xml
│ │ │ └── enterprise_device_admin.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── akexorcist
│ │ └── knoxactivator
│ │ └── ExampleUnitTest.java
└── settings.gradle
├── KNOXSampleApp
├── app
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── akexorcist
│ │ │ └── knoxsampleapp
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── akexorcist
│ │ │ │ └── knoxsampleapp
│ │ │ │ ├── ActivationActivity.java
│ │ │ │ ├── DoSomethingActivity.java
│ │ │ │ └── manager
│ │ │ │ ├── DialogManager.java
│ │ │ │ ├── SharedPreferenceManager.java
│ │ │ │ └── ToastManager.java
│ │ └── res
│ │ │ ├── drawable-hdpi
│ │ │ └── ic_launcher_activation.png
│ │ │ ├── drawable-mdpi
│ │ │ └── ic_launcher_activation.png
│ │ │ ├── drawable-xhdpi
│ │ │ └── ic_launcher_activation.png
│ │ │ ├── drawable-xxhdpi
│ │ │ └── ic_launcher_activation.png
│ │ │ ├── drawable-xxxhdpi
│ │ │ └── ic_launcher_activation.png
│ │ │ ├── layout
│ │ │ ├── activity_activation.xml
│ │ │ └── activity_do_something.xml
│ │ │ └── values
│ │ │ ├── colors.xml
│ │ │ ├── dimens.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── akexorcist
│ │ └── knoxsampleapp
│ │ └── ExampleUnitTest.java
├── build.gradle
├── gradle.properties
├── knoxActivator
│ ├── build.gradle
│ ├── libs
│ │ ├── edm.jar
│ │ ├── license.jar
│ │ └── rc.jar
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── akexorcist
│ │ │ └── knoxactivator
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── akexorcist
│ │ │ │ └── knoxactivator
│ │ │ │ ├── ActivationCallback.java
│ │ │ │ ├── KnoxActivationBus.java
│ │ │ │ ├── KnoxActivationManager.java
│ │ │ │ ├── event
│ │ │ │ ├── AdminDeactivatedEvent.java
│ │ │ │ ├── LicenseActivatedEvent.java
│ │ │ │ └── LicenseActivationFailedEvent.java
│ │ │ │ └── receiver
│ │ │ │ ├── AdminActivationReceiver.java
│ │ │ │ └── LicenseActivationReceiver.java
│ │ └── res
│ │ │ ├── values
│ │ │ └── strings.xml
│ │ │ └── xml
│ │ │ └── enterprise_device_admin.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── akexorcist
│ │ └── knoxactivator
│ │ └── ExampleUnitTest.java
└── settings.gradle
├── LICENSE
├── MultiWindowApp
├── app
│ ├── build.gradle
│ ├── libs
│ │ ├── multiwindow-v1.3.1.jar
│ │ └── sdk-v1.0.0.jar
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── akexorcist
│ │ │ └── myapplication
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── akexorcist
│ │ │ │ └── myapplication
│ │ │ │ └── MainActivity.java
│ │ └── res
│ │ │ ├── animator
│ │ │ ├── animator_scale_default.xml
│ │ │ └── animator_scale_down.xml
│ │ │ ├── drawable-hdpi
│ │ │ ├── android_logo.png
│ │ │ └── ic_launcher_multi_window.png
│ │ │ ├── drawable-mdpi
│ │ │ ├── android_logo.png
│ │ │ └── ic_launcher_multi_window.png
│ │ │ ├── drawable-xhdpi
│ │ │ ├── android_logo.png
│ │ │ └── ic_launcher_multi_window.png
│ │ │ ├── drawable-xxhdpi
│ │ │ ├── android_logo.png
│ │ │ └── ic_launcher_multi_window.png
│ │ │ ├── layout
│ │ │ └── activity_main.xml
│ │ │ ├── values-w820dp
│ │ │ └── dimens.xml
│ │ │ └── values
│ │ │ ├── colors.xml
│ │ │ ├── dimens.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── akexorcist
│ │ └── myapplication
│ │ └── ExampleUnitTest.java
├── build.gradle
├── gradle.properties
└── settings.gradle
├── PassApp
├── app
│ ├── build.gradle
│ ├── libs
│ │ ├── pass-v1.2.1.jar
│ │ └── sdk-v1.0.0.jar
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── akexorcist
│ │ │ └── passapp
│ │ │ └── ApplicationTest.java
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── akexorcist
│ │ │ │ └── passapp
│ │ │ │ ├── InfoActivity.java
│ │ │ │ └── MainActivity.java
│ │ └── res
│ │ │ ├── drawable-hdpi
│ │ │ └── ic_launcher_pass.png
│ │ │ ├── drawable-mdpi
│ │ │ └── ic_launcher_pass.png
│ │ │ ├── drawable-xhdpi
│ │ │ └── ic_launcher_pass.png
│ │ │ ├── drawable-xxhdpi
│ │ │ └── ic_launcher_pass.png
│ │ │ ├── drawable-xxxhdpi
│ │ │ └── ic_launcher_pass.png
│ │ │ ├── drawable
│ │ │ ├── selector_button_accent.xml
│ │ │ ├── shape_button_accent_disable.xml
│ │ │ ├── shape_button_accent_normal.xml
│ │ │ └── shape_button_accent_pressed.xml
│ │ │ ├── layout
│ │ │ ├── activity_info.xml
│ │ │ └── activity_main.xml
│ │ │ └── values
│ │ │ ├── colors.xml
│ │ │ ├── dimens.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── akexorcist
│ │ └── passapp
│ │ └── ExampleUnitTest.java
├── build.gradle
├── gradle.properties
└── settings.gradle
├── README.md
└── SPenApp
├── app
├── build.gradle
├── libs
│ ├── pen-v4.1.0_light.aar
│ └── sdk-v1.0.0.jar
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── akexorcist
│ │ └── spenapp
│ │ └── ApplicationTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── akexorcist
│ │ │ └── spenapp
│ │ │ └── MainActivity.java
│ └── res
│ │ ├── drawable-hdpi
│ │ ├── ic_launcher_pen.png
│ │ └── ic_pen_settings.png
│ │ ├── drawable-mdpi
│ │ ├── ic_launcher_pen.png
│ │ └── ic_pen_settings.png
│ │ ├── drawable-xhdpi
│ │ ├── ic_launcher_pen.png
│ │ └── ic_pen_settings.png
│ │ ├── drawable-xxhdpi
│ │ ├── ic_launcher_pen.png
│ │ └── ic_pen_settings.png
│ │ ├── drawable-xxxhdpi
│ │ ├── ic_launcher_pen.png
│ │ └── ic_pen_settings.png
│ │ ├── drawable
│ │ ├── selector_circle_button_accent.xml
│ │ ├── selector_square_button_accent.xml
│ │ ├── shape_circle_button_accent_disable.xml
│ │ ├── shape_circle_button_accent_normal.xml
│ │ ├── shape_circle_button_accent_pressed.xml
│ │ ├── shape_square_button_accent_disable.xml
│ │ ├── shape_square_button_accent_normal.xml
│ │ └── shape_square_button_accent_pressed.xml
│ │ ├── layout
│ │ └── activity_main.xml
│ │ └── values
│ │ ├── colors.xml
│ │ ├── dimens.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── akexorcist
│ └── spenapp
│ └── ExampleUnitTest.java
├── build.gradle
├── gradle.properties
└── settings.gradle
/.gitignore:
--------------------------------------------------------------------------------
1 | # Built application files
2 | *.apk
3 | *.ap_
4 |
5 | # Files for the Dalvik VM
6 | *.dex
7 |
8 | # Java class files
9 | *.class
10 |
11 | # Generated files
12 | bin/
13 | gen/
14 |
15 | # Gradle files
16 | .gradle/
17 | build/
18 |
19 | # Local configuration file (sdk path, etc)
20 | local.properties
21 |
22 | # Proguard folder generated by Eclipse
23 | proguard/
24 |
25 | # Log Files
26 | *.log
27 |
28 | # Android Studio Navigation editor temp files
29 | .navigation/
30 |
31 | # Android Studio captures folder
32 | captures/
33 |
--------------------------------------------------------------------------------
/ImageFilterApp/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 23
5 | buildToolsVersion "23.0.3"
6 |
7 | defaultConfig {
8 | applicationId "com.akexorcist.imagefilterapp"
9 | minSdkVersion 16
10 | targetSdkVersion 23
11 | versionCode 1
12 | versionName "1.0"
13 | }
14 | buildTypes {
15 | release {
16 | minifyEnabled false
17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18 | }
19 | }
20 | }
21 |
22 | dependencies {
23 | compile fileTree(dir: 'libs', include: ['*.jar'])
24 | testCompile 'junit:junit:4.12'
25 | compile 'com.android.support:appcompat-v7:23.3.0'
26 | }
27 |
--------------------------------------------------------------------------------
/ImageFilterApp/app/libs/imagefilter-v1.0.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/ImageFilterApp/app/libs/imagefilter-v1.0.1.jar
--------------------------------------------------------------------------------
/ImageFilterApp/app/libs/sdk-v1.0.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/ImageFilterApp/app/libs/sdk-v1.0.0.jar
--------------------------------------------------------------------------------
/ImageFilterApp/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Applications/ADT/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/ImageFilterApp/app/src/androidTest/java/com/akexorcist/imagefilterapp/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.imagefilterapp;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/ImageFilterApp/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/ImageFilterApp/app/src/main/jniLibs/armeabi/libImageFilterLibs.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/ImageFilterApp/app/src/main/jniLibs/armeabi/libImageFilterLibs.so
--------------------------------------------------------------------------------
/ImageFilterApp/app/src/main/res/drawable-nodpi/sample.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/ImageFilterApp/app/src/main/res/drawable-nodpi/sample.jpg
--------------------------------------------------------------------------------
/ImageFilterApp/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/ImageFilterApp/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ImageFilterApp/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/ImageFilterApp/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ImageFilterApp/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/ImageFilterApp/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ImageFilterApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/ImageFilterApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ImageFilterApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/ImageFilterApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ImageFilterApp/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/ImageFilterApp/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/ImageFilterApp/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 |
6 |
--------------------------------------------------------------------------------
/ImageFilterApp/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Image Filter App
3 | Original
4 | Sepia
5 | Vintage
6 | Pastel Sketch
7 | Size : %d x %d px
8 | Convert Time : %d ms
9 |
10 |
--------------------------------------------------------------------------------
/ImageFilterApp/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/ImageFilterApp/app/src/test/java/com/akexorcist/imagefilterapp/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.imagefilterapp;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * To work on unit tests, switch the Test Artifact in the Build Variants view.
9 | */
10 | public class ExampleUnitTest {
11 | @Test
12 | public void addition_isCorrect() throws Exception {
13 | assertEquals(4, 2 + 2);
14 | }
15 | }
--------------------------------------------------------------------------------
/ImageFilterApp/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | jcenter()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:2.1.0'
9 |
10 | // NOTE: Do not place your application dependencies here; they belong
11 | // in the individual module build.gradle files
12 | }
13 | }
14 |
15 | allprojects {
16 | repositories {
17 | jcenter()
18 | }
19 | }
20 |
21 | task clean(type: Delete) {
22 | delete rootProject.buildDir
23 | }
24 |
--------------------------------------------------------------------------------
/ImageFilterApp/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
--------------------------------------------------------------------------------
/ImageFilterApp/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 23
5 | buildToolsVersion "23.0.3"
6 |
7 | defaultConfig {
8 | applicationId "com.akexorcist.knoxgeofencingapp"
9 | minSdkVersion 16
10 | targetSdkVersion 23
11 | versionCode 1
12 | versionName "1.0"
13 | }
14 | buildTypes {
15 | release {
16 | minifyEnabled false
17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18 | }
19 | }
20 | }
21 |
22 | dependencies {
23 | compile fileTree(include: ['*.jar'], dir: 'libs')
24 | compile project(':knoxActivator')
25 | testCompile 'junit:junit:4.12'
26 | compile 'com.android.support:appcompat-v7:23.3.0'
27 | compile 'com.squareup:otto:1.3.8'
28 | compile('com.github.afollestad.material-dialogs:core:0.8.5.8@aar') {
29 | transitive = true
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Applications/ADT/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/androidTest/java/com/akexorcist/knoxgeofencingapp/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxgeofencingapp;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/main/java/com/akexorcist/knoxgeofencingapp/GeofencingReceiver.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxgeofencingapp;
2 |
3 | import android.app.enterprise.geofencing.Geofence;
4 | import android.app.enterprise.geofencing.Geofencing;
5 | import android.content.BroadcastReceiver;
6 | import android.content.Context;
7 | import android.content.Intent;
8 |
9 | import com.akexorcist.knoxgeofencingapp.bus.BusProvider;
10 | import com.akexorcist.knoxgeofencingapp.bus.event.InsideGeofenceEvent;
11 | import com.akexorcist.knoxgeofencingapp.bus.event.LocationUnavailableEvent;
12 | import com.akexorcist.knoxgeofencingapp.bus.event.OutsideGeofenceEvent;
13 |
14 | /**
15 | * Created by Akexorcist on 5/10/16 AD.
16 | */
17 |
18 | public class GeofencingReceiver extends BroadcastReceiver {
19 | @Override
20 | public void onReceive(Context context, Intent intent) {
21 | String action = intent.getAction();
22 | if (action.equalsIgnoreCase(Geofencing.ACTION_DEVICE_INSIDE_GEOFENCE)) {
23 | int[] geofenceIdList = intent.getIntArrayExtra(Geofencing.INTENT_EXTRA_ID);
24 | BusProvider.getProvider().post(new InsideGeofenceEvent(geofenceIdList));
25 | } else if (action.equalsIgnoreCase(Geofencing.ACTION_DEVICE_OUTSIDE_GEOFENCE)) {
26 | int[] geofenceIdList = intent.getIntArrayExtra(Geofencing.INTENT_EXTRA_ID);
27 | BusProvider.getProvider().post(new OutsideGeofenceEvent(geofenceIdList));
28 | } else if (action.equalsIgnoreCase(Geofencing.ACTION_DEVICE_LOCATION_UNAVAILABLE)) {
29 | BusProvider.getProvider().post(new LocationUnavailableEvent());
30 | }
31 | }
32 |
33 | private Geofence getGeofenceById(Context context, int id) {
34 | Geofencing geofencingService = Geofencing.getInstance(context);
35 | if (geofencingService.getGeofences() != null) {
36 | for (Geofence geofence : geofencingService.getGeofences()) {
37 | if (geofence.id == id) {
38 | return geofence;
39 | }
40 | }
41 | }
42 | return null;
43 | }
44 | }
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/main/java/com/akexorcist/knoxgeofencingapp/bus/BusProvider.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxgeofencingapp.bus;
2 |
3 | import com.squareup.otto.Bus;
4 |
5 | /**
6 | * Created by Akexorcist on 6/10/16 AD.
7 | */
8 | public class BusProvider {
9 | private static Bus bus;
10 |
11 | public static Bus getProvider() {
12 | if (bus == null) {
13 | bus = new Bus();
14 | }
15 | return bus;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/main/java/com/akexorcist/knoxgeofencingapp/bus/event/InsideGeofenceEvent.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxgeofencingapp.bus.event;
2 |
3 | /**
4 | * Created by Akexorcist on 6/10/16 AD.
5 | */
6 | public class InsideGeofenceEvent {
7 | int[] geofenceIdList;
8 |
9 | public InsideGeofenceEvent() {
10 | }
11 |
12 | public InsideGeofenceEvent(int[] geofenceIdList) {
13 | this.geofenceIdList = geofenceIdList;
14 | }
15 |
16 | public int[] getGeofenceIdList() {
17 | return geofenceIdList;
18 | }
19 |
20 | public void setGeofenceIdList(int[] geofenceIdList) {
21 | this.geofenceIdList = geofenceIdList;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/main/java/com/akexorcist/knoxgeofencingapp/bus/event/LocationUnavailableEvent.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxgeofencingapp.bus.event;
2 |
3 | /**
4 | * Created by Akexorcist on 6/10/16 AD.
5 | */
6 | public class LocationUnavailableEvent {
7 |
8 | }
9 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/main/java/com/akexorcist/knoxgeofencingapp/bus/event/OutsideGeofenceEvent.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxgeofencingapp.bus.event;
2 |
3 | /**
4 | * Created by Akexorcist on 6/10/16 AD.
5 | */
6 | public class OutsideGeofenceEvent {
7 | int[] geofenceIdList;
8 |
9 | public OutsideGeofenceEvent() {
10 | }
11 |
12 | public OutsideGeofenceEvent(int[] geofenceIdList) {
13 | this.geofenceIdList = geofenceIdList;
14 | }
15 |
16 | public int[] getGeofenceIdList() {
17 | return geofenceIdList;
18 | }
19 |
20 | public void setGeofenceIdList(int[] geofenceIdList) {
21 | this.geofenceIdList = geofenceIdList;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/main/java/com/akexorcist/knoxgeofencingapp/manager/SharedPreferenceManager.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxgeofencingapp.manager;
2 |
3 | import android.content.Context;
4 |
5 | /**
6 | * Created by Akexorcist on 6/9/16 AD.
7 | */
8 | public class SharedPreferenceManager {
9 | private static final String PREFERENCE_STATE = "preference_state";
10 | private static final String KEY_LICENSE_ACTIVATED = "key_license_activated";
11 |
12 | public static void setLicenseActivated(Context context) {
13 | context.getSharedPreferences(PREFERENCE_STATE, Context.MODE_PRIVATE)
14 | .edit()
15 | .putBoolean(KEY_LICENSE_ACTIVATED, true)
16 | .apply();
17 | }
18 |
19 | public static boolean isLicenseActivated(Context context) {
20 | return context.getSharedPreferences(PREFERENCE_STATE, Context.MODE_PRIVATE)
21 | .getBoolean(KEY_LICENSE_ACTIVATED, false);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/main/java/com/akexorcist/knoxgeofencingapp/manager/ToastManager.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxgeofencingapp.manager;
2 |
3 | import android.content.Context;
4 | import android.widget.Toast;
5 |
6 | import com.akexorcist.knoxgeofencingapp.R;
7 |
8 | /**
9 | * Created by Akexorcist on 4/22/2016 AD.
10 | */
11 | public class ToastManager {
12 | public static void showLicenseActivationSuccess(Context context) {
13 | showToast(context, R.string.license_activation_success);
14 | }
15 |
16 | public static void showDeviceAdminActivationSuccess(Context context) {
17 | showToast(context, R.string.device_admin_activation_success);
18 | }
19 |
20 | public static void showToast(Context context, int message) {
21 | Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/main/res/drawable-hdpi/ic_launcher_geofencing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXGeofencingApp/app/src/main/res/drawable-hdpi/ic_launcher_geofencing.png
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/main/res/drawable-mdpi/ic_launcher_geofencing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXGeofencingApp/app/src/main/res/drawable-mdpi/ic_launcher_geofencing.png
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/main/res/drawable-xhdpi/ic_launcher_geofencing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXGeofencingApp/app/src/main/res/drawable-xhdpi/ic_launcher_geofencing.png
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/main/res/drawable-xxhdpi/ic_launcher_geofencing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXGeofencingApp/app/src/main/res/drawable-xxhdpi/ic_launcher_geofencing.png
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/main/res/drawable-xxxhdpi/ic_launcher_geofencing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXGeofencingApp/app/src/main/res/drawable-xxxhdpi/ic_launcher_geofencing.png
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/main/res/drawable/selector_round_button_accent.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/main/res/drawable/shape_round_button_accent_disable.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/main/res/drawable/shape_round_button_accent_normal.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/main/res/drawable/shape_round_button_accent_pressed.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/main/res/layout/activity_activation.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
18 |
19 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 | #D91F5E
7 | #838383
8 | #FFFFFF
9 |
10 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 | 8dp
3 | 4dp
4 | 16dp
5 | 16sp
6 | 12sp
7 | 20sp
8 | 30sp
9 |
10 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | KNOX Geofencing Example
3 | Auto license and device admin activation will start immediately
4 | Setup Problem
5 | Device Administrator is required to enable. Please enable it to use this app.
6 | License Activation Problem
7 | Something wrong while license activation.\n Code : %s (%s)
8 | Device Problem
9 | This device isn\'t support by KNOX Standard SDK.
10 | Cancel
11 | Retry
12 | OK
13 | Device admin activation success
14 | KNOX license activation success
15 | License Activating
16 | Loading…
17 | Stop Geofencing
18 | Start Geofencing
19 | Create Geofencing
20 | Clear Geofencing
21 | This geofence is already exists.
22 | Geofence id %s was created.
23 |
24 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/app/src/test/java/com/akexorcist/knoxgeofencingapp/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxgeofencingapp;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * To work on unit tests, switch the Test Artifact in the Build Variants view.
9 | */
10 | public class ExampleUnitTest {
11 | @Test
12 | public void addition_isCorrect() throws Exception {
13 | assertEquals(4, 2 + 2);
14 | }
15 | }
--------------------------------------------------------------------------------
/KNOXGeofencingApp/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | jcenter()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:2.1.0'
9 |
10 | // NOTE: Do not place your application dependencies here; they belong
11 | // in the individual module build.gradle files
12 | }
13 | }
14 |
15 | allprojects {
16 | repositories {
17 | jcenter()
18 | maven {
19 | url "https://jitpack.io"
20 | }
21 | }
22 | }
23 |
24 | task clean(type: Delete) {
25 | delete rootProject.buildDir
26 | }
27 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
--------------------------------------------------------------------------------
/KNOXGeofencingApp/knoxActivator/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 23
5 | buildToolsVersion "23.0.3"
6 |
7 | defaultConfig {
8 | minSdkVersion 14
9 | targetSdkVersion 23
10 | versionCode 1
11 | versionName "1.0"
12 | }
13 | buildTypes {
14 | release {
15 | minifyEnabled false
16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
17 | }
18 | }
19 | }
20 |
21 | dependencies {
22 | compile fileTree(dir: 'libs', include: ['*.jar'])
23 | testCompile 'junit:junit:4.12'
24 | compile 'com.squareup:otto:1.3.8'
25 | }
26 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/knoxActivator/libs/edm.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXGeofencingApp/knoxActivator/libs/edm.jar
--------------------------------------------------------------------------------
/KNOXGeofencingApp/knoxActivator/libs/license.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXGeofencingApp/knoxActivator/libs/license.jar
--------------------------------------------------------------------------------
/KNOXGeofencingApp/knoxActivator/libs/rc.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXGeofencingApp/knoxActivator/libs/rc.jar
--------------------------------------------------------------------------------
/KNOXGeofencingApp/knoxActivator/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Applications/ADT/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/knoxActivator/src/androidTest/java/com/akexorcist/knoxactivator/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/KNOXGeofencingApp/knoxActivator/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
10 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/ActivationCallback.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator;
2 |
3 | /**
4 | * Created by Akexorcist on 4/20/2016 AD.
5 | */
6 | public interface ActivationCallback {
7 | void onDeviceAdminActivated();
8 |
9 | void onDeviceAdminActivationCancelled();
10 |
11 | void onDeviceAdminDeactivated();
12 |
13 | void onLicenseActivated();
14 |
15 | void onLicenseActivateFailed(int errorType, String errorMessage);
16 | }
17 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/KnoxActivationBus.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator;
2 |
3 | import com.squareup.otto.Bus;
4 |
5 | /**
6 | * Created by Akexorcist on 4/21/2016 AD.
7 | */
8 | public class KnoxActivationBus {
9 | private static KnoxActivationBus knoxActivationBus;
10 |
11 | public static KnoxActivationBus getInstance() {
12 | if (knoxActivationBus == null) {
13 | knoxActivationBus = new KnoxActivationBus();
14 | }
15 | return knoxActivationBus;
16 | }
17 |
18 | private Bus bus;
19 |
20 | public Bus getBus() {
21 | if (bus == null) {
22 | bus = new Bus();
23 | }
24 | return bus;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/event/AdminDeactivatedEvent.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator.event;
2 |
3 | /**
4 | * Created by Akexorcist on 4/21/2016 AD.
5 | */
6 | public class AdminDeactivatedEvent { }
7 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/event/LicenseActivatedEvent.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator.event;
2 |
3 | /**
4 | * Created by Akexorcist on 4/21/2016 AD.
5 | */
6 | public class LicenseActivatedEvent { }
7 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/event/LicenseActivationFailedEvent.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator.event;
2 |
3 | /**
4 | * Created by Akexorcist on 4/21/2016 AD.
5 | */
6 | public class LicenseActivationFailedEvent {
7 | int errorType;
8 |
9 | public LicenseActivationFailedEvent(int errorType) {
10 | this.errorType = errorType;
11 | }
12 |
13 | public int getErrorType() {
14 | return errorType;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/knoxActivator/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Do you want to disable the administrator?
5 |
6 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/knoxActivator/src/main/res/xml/enterprise_device_admin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
--------------------------------------------------------------------------------
/KNOXGeofencingApp/knoxActivator/src/test/java/com/akexorcist/knoxactivator/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * To work on unit tests, switch the Test Artifact in the Build Variants view.
9 | */
10 | public class ExampleUnitTest {
11 | @Test
12 | public void addition_isCorrect() throws Exception {
13 | assertEquals(4, 2 + 2);
14 | }
15 | }
--------------------------------------------------------------------------------
/KNOXGeofencingApp/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app', ':knoxActivator'
2 |
--------------------------------------------------------------------------------
/KNOXKioskApp/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 23
5 | buildToolsVersion "23.0.3"
6 |
7 | defaultConfig {
8 | applicationId "com.akexorcist.knoxkioskapp"
9 | minSdkVersion 16
10 | targetSdkVersion 23
11 | versionCode 1
12 | versionName "1.0"
13 | }
14 | buildTypes {
15 | release {
16 | minifyEnabled false
17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18 | }
19 | }
20 | }
21 |
22 | dependencies {
23 | compile fileTree(include: ['*.jar'], dir: 'libs')
24 | compile project(':knoxActivator')
25 | testCompile 'junit:junit:4.12'
26 | compile 'com.android.support:appcompat-v7:23.3.0'
27 | compile('com.github.afollestad.material-dialogs:core:0.8.5.8@aar') {
28 | transitive = true
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/KNOXKioskApp/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Applications/ADT/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/KNOXKioskApp/app/src/androidTest/java/com/akexorcist/knoxkioskapp/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxkioskapp;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/KNOXKioskApp/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/KNOXKioskApp/app/src/main/java/com/akexorcist/knoxkioskapp/DoSomethingActivity.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxkioskapp;
2 |
3 | import android.app.enterprise.kioskmode.KioskMode;
4 | import android.os.Bundle;
5 | import android.support.v7.app.AppCompatActivity;
6 | import android.view.KeyEvent;
7 | import android.view.View;
8 | import android.widget.Button;
9 |
10 | import java.util.Arrays;
11 | import java.util.List;
12 |
13 | public class DoSomethingActivity extends AppCompatActivity implements View.OnClickListener {
14 | private Button btnKioskStart;
15 | private Button btnKioskStop;
16 |
17 | private KioskMode kioskModeService;
18 |
19 | @Override
20 | protected void onCreate(Bundle savedInstanceState) {
21 | super.onCreate(savedInstanceState);
22 | setContentView(R.layout.activity_do_something);
23 |
24 | bindView();
25 | setupView();
26 | setupThing();
27 | }
28 |
29 | @Override
30 | protected void onDestroy() {
31 | super.onDestroy();
32 | }
33 |
34 | private void bindView() {
35 | btnKioskStart = (Button) findViewById(R.id.btn_kiosk_enable);
36 | btnKioskStop = (Button) findViewById(R.id.btn_kiosk_disable);
37 | }
38 |
39 | private void setupView() {
40 | btnKioskStart.setOnClickListener(this);
41 | btnKioskStop.setOnClickListener(this);
42 | }
43 |
44 | private void setupThing() {
45 | kioskModeService = KioskMode.getInstance(this);
46 | if (kioskModeService.isKioskModeEnabled()) {
47 | btnKioskStart.setEnabled(false);
48 | btnKioskStop.setEnabled(true);
49 | } else {
50 | btnKioskStart.setEnabled(true);
51 | btnKioskStop.setEnabled(false);
52 | }
53 | }
54 |
55 | @Override
56 | public void onClick(View v) {
57 | if (v == btnKioskStart) {
58 | enableKiosk();
59 | } else if (v == btnKioskStop) {
60 | disableKiosk();
61 | }
62 | }
63 |
64 | private void enableKiosk() {
65 | setKioskSettings(false);
66 | kioskModeService.enableKioskMode();
67 | }
68 |
69 | private void disableKiosk() {
70 | setKioskSettings(true);
71 | kioskModeService.disableKioskMode();
72 | }
73 |
74 | private void setKioskSettings(boolean state) {
75 | List keyList = Arrays.asList(KeyEvent.KEYCODE_HOME, KeyEvent.KEYCODE_BACK);
76 | kioskModeService.allowHardwareKeys(keyList, state);
77 | kioskModeService.allowMultiWindowMode(state);
78 | kioskModeService.allowTaskManager(state);
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/KNOXKioskApp/app/src/main/java/com/akexorcist/knoxkioskapp/KIOSKReceiver.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxkioskapp;
2 |
3 | import android.app.enterprise.ApplicationPolicy;
4 | import android.app.enterprise.EnterpriseDeviceManager;
5 | import android.app.enterprise.kioskmode.KioskMode;
6 | import android.content.BroadcastReceiver;
7 | import android.content.Context;
8 | import android.content.Intent;
9 |
10 | /**
11 | * Created by Akexorcist on 5/11/16 AD.
12 | */
13 | public class KIOSKReceiver extends BroadcastReceiver {
14 | @Override
15 | public void onReceive(Context context, Intent intent) {
16 | if (intent != null) {
17 | String action = intent.getAction();
18 | if (action.equals(KioskMode.ACTION_ENABLE_KIOSK_MODE_RESULT)) {
19 | // KIOSK enabled
20 | addApplicationShortcut(context, context.getPackageName());
21 | } else if (action.equals(KioskMode.ACTION_DISABLE_KIOSK_MODE_RESULT)) {
22 | // KIOSK disabled
23 | removeApplicationShortcut(context, context.getPackageName());
24 | } else if (action.equals(KioskMode.ACTION_UNEXPECTED_KIOSK_BEHAVIOR)) {
25 | // KIOSK unexpected error
26 | }
27 | }
28 | }
29 |
30 | @SuppressWarnings("WrongConstant")
31 | void addApplicationShortcut(Context context, String packageName) {
32 | EnterpriseDeviceManager edm = (EnterpriseDeviceManager) context.getSystemService(EnterpriseDeviceManager.ENTERPRISE_POLICY_SERVICE);
33 | ApplicationPolicy appPolicy = edm.getApplicationPolicy();
34 | String kioskPackageName = KioskMode.getInstance(context).getKioskHomePackage();
35 | appPolicy.addHomeShortcut(packageName, kioskPackageName);
36 | }
37 |
38 | @SuppressWarnings("WrongConstant")
39 | void removeApplicationShortcut(Context context, String packageName) {
40 | EnterpriseDeviceManager edm = (EnterpriseDeviceManager) context.getSystemService(EnterpriseDeviceManager.ENTERPRISE_POLICY_SERVICE);
41 | ApplicationPolicy appPolicy = edm.getApplicationPolicy();
42 | String kioskPackageName = KioskMode.getInstance(context).getKioskHomePackage();
43 | appPolicy.deleteHomeShortcut(packageName, kioskPackageName);
44 | }
45 | }
46 |
47 |
--------------------------------------------------------------------------------
/KNOXKioskApp/app/src/main/java/com/akexorcist/knoxkioskapp/manager/SharedPreferenceManager.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxkioskapp.manager;
2 |
3 | import android.content.Context;
4 |
5 | /**
6 | * Created by Akexorcist on 6/9/16 AD.
7 | */
8 | public class SharedPreferenceManager {
9 | private static final String PREFERENCE_STATE = "preference_state";
10 | private static final String KEY_LICENSE_ACTIVATED = "key_license_activated";
11 |
12 | public static void setLicenseActivated(Context context) {
13 | context.getSharedPreferences(PREFERENCE_STATE, Context.MODE_PRIVATE)
14 | .edit()
15 | .putBoolean(KEY_LICENSE_ACTIVATED, true)
16 | .apply();
17 | }
18 |
19 | public static boolean isLicenseActivated(Context context) {
20 | return context.getSharedPreferences(PREFERENCE_STATE, Context.MODE_PRIVATE)
21 | .getBoolean(KEY_LICENSE_ACTIVATED, false);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/KNOXKioskApp/app/src/main/java/com/akexorcist/knoxkioskapp/manager/ToastManager.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxkioskapp.manager;
2 |
3 | import android.content.Context;
4 | import android.widget.Toast;
5 |
6 | import com.akexorcist.knoxkioskapp.R;
7 |
8 | /**
9 | * Created by Akexorcist on 4/22/2016 AD.
10 | */
11 | public class ToastManager {
12 | public static void showLicenseActivationSuccess(Context context) {
13 | showToast(context, R.string.license_activation_success);
14 | }
15 |
16 | public static void showDeviceAdminActivationSuccess(Context context) {
17 | showToast(context, R.string.device_admin_activation_success);
18 | }
19 |
20 | public static void showToast(Context context, int message) {
21 | Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/KNOXKioskApp/app/src/main/res/drawable-hdpi/ic_launcher_kiosk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXKioskApp/app/src/main/res/drawable-hdpi/ic_launcher_kiosk.png
--------------------------------------------------------------------------------
/KNOXKioskApp/app/src/main/res/drawable-mdpi/ic_launcher_kiosk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXKioskApp/app/src/main/res/drawable-mdpi/ic_launcher_kiosk.png
--------------------------------------------------------------------------------
/KNOXKioskApp/app/src/main/res/drawable-xhdpi/ic_launcher_kiosk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXKioskApp/app/src/main/res/drawable-xhdpi/ic_launcher_kiosk.png
--------------------------------------------------------------------------------
/KNOXKioskApp/app/src/main/res/drawable-xxhdpi/ic_launcher_kiosk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXKioskApp/app/src/main/res/drawable-xxhdpi/ic_launcher_kiosk.png
--------------------------------------------------------------------------------
/KNOXKioskApp/app/src/main/res/drawable-xxxhdpi/ic_launcher_kiosk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXKioskApp/app/src/main/res/drawable-xxxhdpi/ic_launcher_kiosk.png
--------------------------------------------------------------------------------
/KNOXKioskApp/app/src/main/res/drawable/selector_round_button_accent.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/KNOXKioskApp/app/src/main/res/drawable/shape_round_button_accent_disable.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/KNOXKioskApp/app/src/main/res/drawable/shape_round_button_accent_normal.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/KNOXKioskApp/app/src/main/res/drawable/shape_round_button_accent_pressed.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/KNOXKioskApp/app/src/main/res/layout/activity_activation.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/KNOXKioskApp/app/src/main/res/layout/activity_do_something.xml:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
24 |
25 |
34 |
35 |
--------------------------------------------------------------------------------
/KNOXKioskApp/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 | #D91F5E
7 | #838383
8 | #FFFFFF
9 |
10 |
--------------------------------------------------------------------------------
/KNOXKioskApp/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 | 8dp
3 | 4dp
4 | 16dp
5 | 16sp
6 | 12sp
7 | 20sp
8 | 30sp
9 |
10 |
--------------------------------------------------------------------------------
/KNOXKioskApp/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | KNOX Kiosk App
3 | Setup Problem
4 | Device Administrator is required to enable. Please enable it to use this app.
5 | License Activation Problem
6 | Something wrong while license activation.\n Code : %s (%s)
7 | Device Problem
8 | This device isn\'t support by KNOX Standard SDK.
9 | Cancel
10 | Retry
11 | OK
12 | Device admin activation success
13 | KNOX license activation success
14 | License Activating
15 | Loading…
16 | Start Kiosk Mode
17 | Stop Kiosk Mode
18 |
19 |
--------------------------------------------------------------------------------
/KNOXKioskApp/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/KNOXKioskApp/app/src/test/java/com/akexorcist/knoxkioskapp/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxkioskapp;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * To work on unit tests, switch the Test Artifact in the Build Variants view.
9 | */
10 | public class ExampleUnitTest {
11 | @Test
12 | public void addition_isCorrect() throws Exception {
13 | assertEquals(4, 2 + 2);
14 | }
15 | }
--------------------------------------------------------------------------------
/KNOXKioskApp/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | jcenter()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:2.1.0'
9 |
10 | // NOTE: Do not place your application dependencies here; they belong
11 | // in the individual module build.gradle files
12 | }
13 | }
14 |
15 | allprojects {
16 | repositories {
17 | jcenter()
18 | maven {
19 | url "https://jitpack.io"
20 | }
21 | }
22 | }
23 |
24 | task clean(type: Delete) {
25 | delete rootProject.buildDir
26 | }
27 |
--------------------------------------------------------------------------------
/KNOXKioskApp/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
--------------------------------------------------------------------------------
/KNOXKioskApp/knoxActivator/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 23
5 | buildToolsVersion "23.0.3"
6 |
7 | defaultConfig {
8 | minSdkVersion 14
9 | targetSdkVersion 23
10 | versionCode 1
11 | versionName "1.0"
12 | }
13 | buildTypes {
14 | release {
15 | minifyEnabled false
16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
17 | }
18 | }
19 | }
20 |
21 | dependencies {
22 | compile fileTree(dir: 'libs', include: ['*.jar'])
23 | testCompile 'junit:junit:4.12'
24 | compile 'com.squareup:otto:1.3.8'
25 | }
26 |
--------------------------------------------------------------------------------
/KNOXKioskApp/knoxActivator/libs/edm.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXKioskApp/knoxActivator/libs/edm.jar
--------------------------------------------------------------------------------
/KNOXKioskApp/knoxActivator/libs/license.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXKioskApp/knoxActivator/libs/license.jar
--------------------------------------------------------------------------------
/KNOXKioskApp/knoxActivator/libs/rc.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXKioskApp/knoxActivator/libs/rc.jar
--------------------------------------------------------------------------------
/KNOXKioskApp/knoxActivator/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Applications/ADT/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/KNOXKioskApp/knoxActivator/src/androidTest/java/com/akexorcist/knoxactivator/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/KNOXKioskApp/knoxActivator/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
10 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/KNOXKioskApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/ActivationCallback.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator;
2 |
3 | /**
4 | * Created by Akexorcist on 4/20/2016 AD.
5 | */
6 | public interface ActivationCallback {
7 | void onDeviceAdminActivated();
8 |
9 | void onDeviceAdminActivationCancelled();
10 |
11 | void onDeviceAdminDeactivated();
12 |
13 | void onLicenseActivated();
14 |
15 | void onLicenseActivateFailed(int errorType, String errorMessage);
16 | }
17 |
--------------------------------------------------------------------------------
/KNOXKioskApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/KnoxActivationBus.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator;
2 |
3 | import com.squareup.otto.Bus;
4 |
5 | /**
6 | * Created by Akexorcist on 4/21/2016 AD.
7 | */
8 | public class KnoxActivationBus {
9 | private static KnoxActivationBus knoxActivationBus;
10 |
11 | public static KnoxActivationBus getInstance() {
12 | if (knoxActivationBus == null) {
13 | knoxActivationBus = new KnoxActivationBus();
14 | }
15 | return knoxActivationBus;
16 | }
17 |
18 | private Bus bus;
19 |
20 | public Bus getBus() {
21 | if (bus == null) {
22 | bus = new Bus();
23 | }
24 | return bus;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/KNOXKioskApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/event/AdminDeactivatedEvent.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator.event;
2 |
3 | /**
4 | * Created by Akexorcist on 4/21/2016 AD.
5 | */
6 | public class AdminDeactivatedEvent { }
7 |
--------------------------------------------------------------------------------
/KNOXKioskApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/event/LicenseActivatedEvent.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator.event;
2 |
3 | /**
4 | * Created by Akexorcist on 4/21/2016 AD.
5 | */
6 | public class LicenseActivatedEvent { }
7 |
--------------------------------------------------------------------------------
/KNOXKioskApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/event/LicenseActivationFailedEvent.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator.event;
2 |
3 | /**
4 | * Created by Akexorcist on 4/21/2016 AD.
5 | */
6 | public class LicenseActivationFailedEvent {
7 | int errorType;
8 |
9 | public LicenseActivationFailedEvent(int errorType) {
10 | this.errorType = errorType;
11 | }
12 |
13 | public int getErrorType() {
14 | return errorType;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/KNOXKioskApp/knoxActivator/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Do you want to disable the administrator?
5 |
6 |
--------------------------------------------------------------------------------
/KNOXKioskApp/knoxActivator/src/main/res/xml/enterprise_device_admin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
--------------------------------------------------------------------------------
/KNOXKioskApp/knoxActivator/src/test/java/com/akexorcist/knoxactivator/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * To work on unit tests, switch the Test Artifact in the Build Variants view.
9 | */
10 | public class ExampleUnitTest {
11 | @Test
12 | public void addition_isCorrect() throws Exception {
13 | assertEquals(4, 2 + 2);
14 | }
15 | }
--------------------------------------------------------------------------------
/KNOXKioskApp/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app', ':knoxActivator'
2 |
--------------------------------------------------------------------------------
/KNOXLSOApp/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 23
5 | buildToolsVersion "23.0.3"
6 |
7 | defaultConfig {
8 | applicationId "com.akexorcist.knoxlsoapp"
9 | minSdkVersion 16
10 | targetSdkVersion 23
11 | versionCode 1
12 | versionName "1.0"
13 | }
14 | buildTypes {
15 | release {
16 | minifyEnabled false
17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18 | }
19 | }
20 | }
21 |
22 | dependencies {
23 | compile fileTree(include: ['*.jar'], dir: 'libs')
24 | compile project(':knoxActivator')
25 | testCompile 'junit:junit:4.12'
26 | compile 'com.android.support:appcompat-v7:23.3.0'
27 | compile 'com.squareup:otto:1.3.8'
28 | compile('com.github.afollestad.material-dialogs:core:0.8.5.8@aar') {
29 | transitive = true
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/KNOXLSOApp/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Applications/ADT/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/androidTest/java/com/akexorcist/knoxgeofencingapp/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxgeofencingapp;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/main/assets/akexorcist_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXLSOApp/app/src/main/assets/akexorcist_logo.png
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/main/java/com/akexorcist/knoxlsoapp/DoSomethingActivity.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxlsoapp;
2 |
3 | import android.app.enterprise.lso.LockscreenOverlay;
4 | import android.os.Bundle;
5 | import android.support.v7.app.AppCompatActivity;
6 | import android.view.View;
7 | import android.widget.Button;
8 |
9 | import com.akexorcist.knoxlsoapp.manager.FileAssetManager;
10 |
11 | public class DoSomethingActivity extends AppCompatActivity implements View.OnClickListener {
12 | private String logoFileName = "akexorcist_logo.png";
13 | private Button btnSetCustomLSO;
14 | private Button btnClearCustomLSO;
15 |
16 | private LockscreenOverlay lso;
17 |
18 | @Override
19 | protected void onCreate(Bundle savedInstanceState) {
20 | super.onCreate(savedInstanceState);
21 | setContentView(R.layout.activity_do_something);
22 |
23 | bindView();
24 | setupView();
25 | setupThing();
26 | }
27 |
28 | private void bindView() {
29 | btnSetCustomLSO = (Button) findViewById(R.id.btn_set_custom_lso);
30 | btnClearCustomLSO = (Button) findViewById(R.id.btn_clear_custom_lso);
31 | }
32 |
33 | private void setupView() {
34 | btnSetCustomLSO.setOnClickListener(this);
35 | btnClearCustomLSO.setOnClickListener(this);
36 | }
37 |
38 | private void setupThing() {
39 | FileAssetManager.copyFileFromAssetToStorage(this, logoFileName, getFilesDir().getAbsolutePath() + logoFileName);
40 | lso = LockscreenOverlay.getInstance(this);
41 | }
42 |
43 | @Override
44 | public void onClick(View v) {
45 | if (v == btnSetCustomLSO) {
46 | setCustomLSO();
47 | } else if (v == btnClearCustomLSO) {
48 | clearCustomLSO();
49 | }
50 | }
51 |
52 | private void setCustomLSO() {
53 | String name = "Sleeping For Less";
54 | String logo = getFilesDir().getAbsolutePath() + logoFileName;
55 | String address = "กรุงเทพมหานคร อมรรัตนโกสินทร์ มหินทรายุทธยา มหาดิลกภพ นพรัตนราชธานีบุรีรมย์...";
56 | String phone = "0987654321";
57 | lso.configure(name, logo, address, phone);
58 | }
59 |
60 | private void clearCustomLSO() {
61 | lso.resetAll();
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/main/java/com/akexorcist/knoxlsoapp/manager/DialogManager.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxlsoapp.manager;
2 |
3 | import android.content.Context;
4 |
5 | import com.afollestad.materialdialogs.MaterialDialog;
6 | import com.akexorcist.knoxlsoapp.R;
7 |
8 | /**
9 | * Created by Akexorcist on 4/22/2016 AD.
10 | */
11 | public class DialogManager {
12 | public static MaterialDialog showLicenseActivationLoading(Context context) {
13 | return new MaterialDialog.Builder(context)
14 | .title(R.string.license_activation_loading_title)
15 | .content(R.string.license_activation_loading_content)
16 | .progress(true, 0)
17 | .show();
18 | }
19 |
20 | public static void showDialog(Context context, String title, String content, String positive, String negative, MaterialDialog.SingleButtonCallback callback) {
21 | new MaterialDialog.Builder(context)
22 | .title(title)
23 | .content(content)
24 | .positiveText(positive)
25 | .negativeText(negative)
26 | .onNegative(callback)
27 | .onPositive(callback)
28 | .show();
29 | }
30 |
31 | public static void showDeviceUnsupportedProblem(Context context, MaterialDialog.SingleButtonCallback callback) {
32 | new MaterialDialog.Builder(context)
33 | .title(R.string.device_unsupported_title)
34 | .content(R.string.device_unsupported_content)
35 | .positiveText(R.string.ok)
36 | .onPositive(callback)
37 | .show();
38 | }
39 |
40 | public static void showDeviceAdminActivationProblem(Context context, MaterialDialog.SingleButtonCallback callback) {
41 | showDialog(context,
42 | context.getString(R.string.device_admin_cancelled_title),
43 | context.getString(R.string.device_admin_cancelled_content),
44 | context.getString(R.string.retry),
45 | context.getString(R.string.cancel),
46 | callback);
47 | }
48 |
49 | public static void showLicenseActivationProblem(Context context, int errorType, String errorMessage, MaterialDialog.SingleButtonCallback callback) {
50 | showDialog(context,
51 | context.getString(R.string.license_failed_title),
52 | context.getString(R.string.license_failed_content, errorMessage, errorType),
53 | context.getString(R.string.retry),
54 | context.getString(R.string.cancel),
55 | callback);
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/main/java/com/akexorcist/knoxlsoapp/manager/FileAssetManager.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxlsoapp.manager;
2 |
3 | import android.content.Context;
4 | import android.util.Log;
5 |
6 | import java.io.File;
7 | import java.io.FileOutputStream;
8 | import java.io.IOException;
9 | import java.io.InputStream;
10 | import java.io.OutputStream;
11 |
12 | /**
13 | * Created by Akexorcist on 6/10/16 AD.
14 | */
15 | public class FileAssetManager {
16 | public static void copyFileFromAssetToStorage(Context context, String assetFilePath, String filePath) {
17 | InputStream in = null;
18 | OutputStream out = null;
19 | try {
20 | in = context.getAssets().open(assetFilePath);
21 | File outFile = new File(filePath);
22 | out = new FileOutputStream(outFile);
23 | copyFile(in, out);
24 | } catch (IOException e) {
25 | Log.e("tag", "Failed to copy asset file: " + assetFilePath, e);
26 | } finally {
27 | if (in != null) {
28 | try {
29 | in.close();
30 | } catch (IOException e) {
31 | e.printStackTrace();
32 | }
33 | }
34 | if (out != null) {
35 | try {
36 | out.close();
37 | } catch (IOException e) {
38 | e.printStackTrace();
39 | }
40 | }
41 | }
42 | }
43 |
44 | private static void copyFile(InputStream in, OutputStream out) throws IOException {
45 | byte[] buffer = new byte[1024];
46 | int read;
47 | while ((read = in.read(buffer)) != -1) {
48 | out.write(buffer, 0, read);
49 | }
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/main/java/com/akexorcist/knoxlsoapp/manager/SharedPreferenceManager.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxlsoapp.manager;
2 |
3 | import android.content.Context;
4 |
5 | /**
6 | * Created by Akexorcist on 6/9/16 AD.
7 | */
8 | public class SharedPreferenceManager {
9 | private static final String PREFERENCE_STATE = "preference_state";
10 | private static final String KEY_LICENSE_ACTIVATED = "key_license_activated";
11 |
12 | public static void setLicenseActivated(Context context) {
13 | context.getSharedPreferences(PREFERENCE_STATE, Context.MODE_PRIVATE)
14 | .edit()
15 | .putBoolean(KEY_LICENSE_ACTIVATED, true)
16 | .apply();
17 | }
18 |
19 | public static boolean isLicenseActivated(Context context) {
20 | return context.getSharedPreferences(PREFERENCE_STATE, Context.MODE_PRIVATE)
21 | .getBoolean(KEY_LICENSE_ACTIVATED, false);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/main/java/com/akexorcist/knoxlsoapp/manager/ToastManager.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxlsoapp.manager;
2 |
3 | import android.content.Context;
4 | import android.widget.Toast;
5 |
6 | import com.akexorcist.knoxlsoapp.R;
7 |
8 | /**
9 | * Created by Akexorcist on 4/22/2016 AD.
10 | */
11 | public class ToastManager {
12 | public static void showLicenseActivationSuccess(Context context) {
13 | showToast(context, R.string.license_activation_success);
14 | }
15 |
16 | public static void showDeviceAdminActivationSuccess(Context context) {
17 | showToast(context, R.string.device_admin_activation_success);
18 | }
19 |
20 | public static void showToast(Context context, int message) {
21 | Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/main/res/drawable-hdpi/ic_launcher_lso.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXLSOApp/app/src/main/res/drawable-hdpi/ic_launcher_lso.png
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/main/res/drawable-mdpi/ic_launcher_lso.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXLSOApp/app/src/main/res/drawable-mdpi/ic_launcher_lso.png
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/main/res/drawable-xhdpi/ic_launcher_lso.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXLSOApp/app/src/main/res/drawable-xhdpi/ic_launcher_lso.png
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/main/res/drawable-xxhdpi/ic_launcher_lso.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXLSOApp/app/src/main/res/drawable-xxhdpi/ic_launcher_lso.png
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/main/res/drawable-xxxhdpi/ic_launcher_lso.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXLSOApp/app/src/main/res/drawable-xxxhdpi/ic_launcher_lso.png
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/main/res/drawable/selector_round_button_accent.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/main/res/drawable/shape_round_button_accent_disable.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/main/res/drawable/shape_round_button_accent_normal.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/main/res/drawable/shape_round_button_accent_pressed.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/main/res/layout/activity_activation.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
18 |
19 |
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/main/res/layout/activity_do_something.xml:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
24 |
25 |
34 |
35 |
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 | #D91F5E
7 | #838383
8 | #FFFFFF
9 |
10 |
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 | 8dp
3 | 4dp
4 | 16dp
5 | 16sp
6 | 12sp
7 | 20sp
8 | 30sp
9 |
10 |
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | KNOX LSO Example
3 | Auto license and device admin activation will start immediately
4 | Setup Problem
5 | Device Administrator is required to enable. Please enable it to use this app.
6 | License Activation Problem
7 | Something wrong while license activation.\n Code : %s (%s)
8 | Device Problem
9 | This device isn\'t support by KNOX Standard SDK.
10 | Cancel
11 | Retry
12 | OK
13 | Device admin activation success
14 | KNOX license activation success
15 | License Activating
16 | Loading…
17 | Set Custom LSO
18 | Clear Custom LSO
19 |
20 |
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/KNOXLSOApp/app/src/test/java/com/akexorcist/knoxgeofencingapp/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxgeofencingapp;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * To work on unit tests, switch the Test Artifact in the Build Variants view.
9 | */
10 | public class ExampleUnitTest {
11 | @Test
12 | public void addition_isCorrect() throws Exception {
13 | assertEquals(4, 2 + 2);
14 | }
15 | }
--------------------------------------------------------------------------------
/KNOXLSOApp/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | jcenter()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:2.1.0'
9 |
10 | // NOTE: Do not place your application dependencies here; they belong
11 | // in the individual module build.gradle files
12 | }
13 | }
14 |
15 | allprojects {
16 | repositories {
17 | jcenter()
18 | maven {
19 | url "https://jitpack.io"
20 | }
21 | }
22 | }
23 |
24 | task clean(type: Delete) {
25 | delete rootProject.buildDir
26 | }
27 |
--------------------------------------------------------------------------------
/KNOXLSOApp/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
--------------------------------------------------------------------------------
/KNOXLSOApp/knoxActivator/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 23
5 | buildToolsVersion "23.0.3"
6 |
7 | defaultConfig {
8 | minSdkVersion 14
9 | targetSdkVersion 23
10 | versionCode 1
11 | versionName "1.0"
12 | }
13 | buildTypes {
14 | release {
15 | minifyEnabled false
16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
17 | }
18 | }
19 | }
20 |
21 | dependencies {
22 | compile fileTree(dir: 'libs', include: ['*.jar'])
23 | testCompile 'junit:junit:4.12'
24 | compile 'com.squareup:otto:1.3.8'
25 | }
26 |
--------------------------------------------------------------------------------
/KNOXLSOApp/knoxActivator/libs/edm.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXLSOApp/knoxActivator/libs/edm.jar
--------------------------------------------------------------------------------
/KNOXLSOApp/knoxActivator/libs/license.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXLSOApp/knoxActivator/libs/license.jar
--------------------------------------------------------------------------------
/KNOXLSOApp/knoxActivator/libs/rc.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXLSOApp/knoxActivator/libs/rc.jar
--------------------------------------------------------------------------------
/KNOXLSOApp/knoxActivator/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Applications/ADT/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/KNOXLSOApp/knoxActivator/src/androidTest/java/com/akexorcist/knoxactivator/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/KNOXLSOApp/knoxActivator/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
10 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/KNOXLSOApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/ActivationCallback.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator;
2 |
3 | /**
4 | * Created by Akexorcist on 4/20/2016 AD.
5 | */
6 | public interface ActivationCallback {
7 | void onDeviceAdminActivated();
8 |
9 | void onDeviceAdminActivationCancelled();
10 |
11 | void onDeviceAdminDeactivated();
12 |
13 | void onLicenseActivated();
14 |
15 | void onLicenseActivateFailed(int errorType, String errorMessage);
16 | }
17 |
--------------------------------------------------------------------------------
/KNOXLSOApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/KnoxActivationBus.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator;
2 |
3 | import com.squareup.otto.Bus;
4 |
5 | /**
6 | * Created by Akexorcist on 4/21/2016 AD.
7 | */
8 | public class KnoxActivationBus {
9 | private static KnoxActivationBus knoxActivationBus;
10 |
11 | public static KnoxActivationBus getInstance() {
12 | if (knoxActivationBus == null) {
13 | knoxActivationBus = new KnoxActivationBus();
14 | }
15 | return knoxActivationBus;
16 | }
17 |
18 | private Bus bus;
19 |
20 | public Bus getBus() {
21 | if (bus == null) {
22 | bus = new Bus();
23 | }
24 | return bus;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/KNOXLSOApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/event/AdminDeactivatedEvent.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator.event;
2 |
3 | /**
4 | * Created by Akexorcist on 4/21/2016 AD.
5 | */
6 | public class AdminDeactivatedEvent { }
7 |
--------------------------------------------------------------------------------
/KNOXLSOApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/event/LicenseActivatedEvent.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator.event;
2 |
3 | /**
4 | * Created by Akexorcist on 4/21/2016 AD.
5 | */
6 | public class LicenseActivatedEvent { }
7 |
--------------------------------------------------------------------------------
/KNOXLSOApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/event/LicenseActivationFailedEvent.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator.event;
2 |
3 | /**
4 | * Created by Akexorcist on 4/21/2016 AD.
5 | */
6 | public class LicenseActivationFailedEvent {
7 | int errorType;
8 |
9 | public LicenseActivationFailedEvent(int errorType) {
10 | this.errorType = errorType;
11 | }
12 |
13 | public int getErrorType() {
14 | return errorType;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/KNOXLSOApp/knoxActivator/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Do you want to disable the administrator?
5 |
6 |
--------------------------------------------------------------------------------
/KNOXLSOApp/knoxActivator/src/main/res/xml/enterprise_device_admin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
--------------------------------------------------------------------------------
/KNOXLSOApp/knoxActivator/src/test/java/com/akexorcist/knoxactivator/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * To work on unit tests, switch the Test Artifact in the Build Variants view.
9 | */
10 | public class ExampleUnitTest {
11 | @Test
12 | public void addition_isCorrect() throws Exception {
13 | assertEquals(4, 2 + 2);
14 | }
15 | }
--------------------------------------------------------------------------------
/KNOXLSOApp/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app', ':knoxActivator'
2 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 23
5 | buildToolsVersion "23.0.3"
6 |
7 | defaultConfig {
8 | applicationId "com.akexorcist.knoxpolicyapp"
9 | minSdkVersion 16
10 | targetSdkVersion 23
11 | versionCode 1
12 | versionName "1.0"
13 | }
14 | buildTypes {
15 | release {
16 | minifyEnabled false
17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18 | }
19 | }
20 | }
21 |
22 | dependencies {
23 | compile fileTree(include: ['*.jar'], dir: 'libs')
24 | compile project(':knoxActivator')
25 | testCompile 'junit:junit:4.12'
26 | compile 'com.android.support:appcompat-v7:23.3.0'
27 | compile('com.github.afollestad.material-dialogs:core:0.8.5.8@aar') {
28 | transitive = true
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Applications/ADT/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/app/src/androidTest/java/com/akexorcist/knoxpolicyapp/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxpolicyapp;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/KNOXPolicyApp/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/app/src/main/java/com/akexorcist/knoxpolicyapp/manager/SharedPreferenceManager.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxpolicyapp.manager;
2 |
3 | import android.content.Context;
4 |
5 | /**
6 | * Created by Akexorcist on 6/9/16 AD.
7 | */
8 | public class SharedPreferenceManager {
9 | private static final String PREFERENCE_STATE = "preference_state";
10 | private static final String KEY_LICENSE_ACTIVATED = "key_license_activated";
11 |
12 | public static void setLicenseActivated(Context context) {
13 | context.getSharedPreferences(PREFERENCE_STATE, Context.MODE_PRIVATE)
14 | .edit()
15 | .putBoolean(KEY_LICENSE_ACTIVATED, true)
16 | .apply();
17 | }
18 |
19 | public static boolean isLicenseActivated(Context context) {
20 | return context.getSharedPreferences(PREFERENCE_STATE, Context.MODE_PRIVATE)
21 | .getBoolean(KEY_LICENSE_ACTIVATED, false);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/app/src/main/java/com/akexorcist/knoxpolicyapp/manager/ToastManager.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxpolicyapp.manager;
2 |
3 | import android.content.Context;
4 | import android.widget.Toast;
5 |
6 | import com.akexorcist.knoxpolicyapp.R;
7 |
8 | /**
9 | * Created by Akexorcist on 4/22/2016 AD.
10 | */
11 | public class ToastManager {
12 | public static void showLicenseActivationSuccess(Context context) {
13 | showToast(context, R.string.license_activation_success);
14 | }
15 |
16 | public static void showDeviceAdminActivationSuccess(Context context) {
17 | showToast(context, R.string.device_admin_activation_success);
18 | }
19 |
20 | public static void showToast(Context context, int message) {
21 | Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/app/src/main/res/drawable/selector_round_button_accent.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/app/src/main/res/drawable/shape_round_button_accent_disable.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/app/src/main/res/drawable/shape_round_button_accent_normal.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/app/src/main/res/drawable/shape_round_button_accent_pressed.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/app/src/main/res/layout/activity_activation.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXPolicyApp/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/KNOXPolicyApp/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXPolicyApp/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/KNOXPolicyApp/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXPolicyApp/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/KNOXPolicyApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXPolicyApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/KNOXPolicyApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXPolicyApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/KNOXPolicyApp/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 | #D91F5E
7 | #838383
8 | #FFFFFF
9 |
10 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 | 8dp
3 | 4dp
4 | 16dp
5 | 16sp
6 | 12sp
7 | 20sp
8 | 30sp
9 |
10 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | KNOX Policy App
3 | Setup Problem
4 | Device Administrator is required to enable. Please enable it to use this app.
5 | License Activation Problem
6 | Something wrong while license activation.\n Code : %s (%s)
7 | Device Problem
8 | This device isn\'t support by KNOX Standard SDK.
9 | Cancel
10 | Retry
11 | OK
12 | Device admin activation success
13 | KNOX license activation success
14 | License Activating
15 | Loading…
16 | Prevent Facebook App
17 | Prevent
18 | Clear
19 | Calculator App Name
20 | Change
21 | Enable/Disable YouTube App
22 | Disable
23 | Enable
24 | Enable/Disable Google Drive
25 | Start/Stop GPS
26 | Start
27 | Stop
28 | Enable/Disable Camera
29 | Enable/Disable Home Key
30 | Allow/Disallow Share List
31 | Disallow
32 | Allow
33 | Allow/Disallow Settings Changes
34 |
35 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/app/src/test/java/com/akexorcist/knoxpolicyapp/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxpolicyapp;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * To work on unit tests, switch the Test Artifact in the Build Variants view.
9 | */
10 | public class ExampleUnitTest {
11 | @Test
12 | public void addition_isCorrect() throws Exception {
13 | assertEquals(4, 2 + 2);
14 | }
15 | }
--------------------------------------------------------------------------------
/KNOXPolicyApp/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | jcenter()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:2.1.0'
9 |
10 | // NOTE: Do not place your application dependencies here; they belong
11 | // in the individual module build.gradle files
12 | }
13 | }
14 |
15 | allprojects {
16 | repositories {
17 | jcenter()
18 | maven {
19 | url "https://jitpack.io"
20 | }
21 | }
22 | }
23 |
24 | task clean(type: Delete) {
25 | delete rootProject.buildDir
26 | }
27 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
--------------------------------------------------------------------------------
/KNOXPolicyApp/knoxActivator/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 23
5 | buildToolsVersion "23.0.3"
6 |
7 | defaultConfig {
8 | minSdkVersion 14
9 | targetSdkVersion 23
10 | versionCode 1
11 | versionName "1.0"
12 | }
13 | buildTypes {
14 | release {
15 | minifyEnabled false
16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
17 | }
18 | }
19 | }
20 |
21 | dependencies {
22 | compile fileTree(dir: 'libs', include: ['*.jar'])
23 | testCompile 'junit:junit:4.12'
24 | compile 'com.squareup:otto:1.3.8'
25 | }
26 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/knoxActivator/libs/edm.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXPolicyApp/knoxActivator/libs/edm.jar
--------------------------------------------------------------------------------
/KNOXPolicyApp/knoxActivator/libs/license.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXPolicyApp/knoxActivator/libs/license.jar
--------------------------------------------------------------------------------
/KNOXPolicyApp/knoxActivator/libs/rc.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXPolicyApp/knoxActivator/libs/rc.jar
--------------------------------------------------------------------------------
/KNOXPolicyApp/knoxActivator/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Applications/ADT/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/knoxActivator/src/androidTest/java/com/akexorcist/knoxactivator/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/KNOXPolicyApp/knoxActivator/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
10 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/ActivationCallback.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator;
2 |
3 | /**
4 | * Created by Akexorcist on 4/20/2016 AD.
5 | */
6 | public interface ActivationCallback {
7 | void onDeviceAdminActivated();
8 |
9 | void onDeviceAdminActivationCancelled();
10 |
11 | void onDeviceAdminDeactivated();
12 |
13 | void onLicenseActivated();
14 |
15 | void onLicenseActivateFailed(int errorType, String errorMessage);
16 | }
17 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/KnoxActivationBus.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator;
2 |
3 | import com.squareup.otto.Bus;
4 |
5 | /**
6 | * Created by Akexorcist on 4/21/2016 AD.
7 | */
8 | public class KnoxActivationBus {
9 | private static KnoxActivationBus knoxActivationBus;
10 |
11 | public static KnoxActivationBus getInstance() {
12 | if (knoxActivationBus == null) {
13 | knoxActivationBus = new KnoxActivationBus();
14 | }
15 | return knoxActivationBus;
16 | }
17 |
18 | private Bus bus;
19 |
20 | public Bus getBus() {
21 | if (bus == null) {
22 | bus = new Bus();
23 | }
24 | return bus;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/event/AdminDeactivatedEvent.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator.event;
2 |
3 | /**
4 | * Created by Akexorcist on 4/21/2016 AD.
5 | */
6 | public class AdminDeactivatedEvent { }
7 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/event/LicenseActivatedEvent.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator.event;
2 |
3 | /**
4 | * Created by Akexorcist on 4/21/2016 AD.
5 | */
6 | public class LicenseActivatedEvent { }
7 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/event/LicenseActivationFailedEvent.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator.event;
2 |
3 | /**
4 | * Created by Akexorcist on 4/21/2016 AD.
5 | */
6 | public class LicenseActivationFailedEvent {
7 | int errorType;
8 |
9 | public LicenseActivationFailedEvent(int errorType) {
10 | this.errorType = errorType;
11 | }
12 |
13 | public int getErrorType() {
14 | return errorType;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/knoxActivator/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Do you want to disable the administrator?
5 |
6 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/knoxActivator/src/main/res/xml/enterprise_device_admin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
--------------------------------------------------------------------------------
/KNOXPolicyApp/knoxActivator/src/test/java/com/akexorcist/knoxactivator/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * To work on unit tests, switch the Test Artifact in the Build Variants view.
9 | */
10 | public class ExampleUnitTest {
11 | @Test
12 | public void addition_isCorrect() throws Exception {
13 | assertEquals(4, 2 + 2);
14 | }
15 | }
--------------------------------------------------------------------------------
/KNOXPolicyApp/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app', ':knoxActivator'
2 |
--------------------------------------------------------------------------------
/KNOXSampleApp/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 25
5 | buildToolsVersion "25.0.2"
6 |
7 | defaultConfig {
8 | applicationId "com.akexorcist.knoxsampleapp"
9 | minSdkVersion 16
10 | targetSdkVersion 25
11 | versionCode 1
12 | versionName "1.0"
13 | }
14 | buildTypes {
15 | release {
16 | minifyEnabled false
17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18 | }
19 | }
20 | }
21 |
22 | dependencies {
23 | compile fileTree(include: ['*.jar'], dir: 'libs')
24 | testCompile 'junit:junit:4.12'
25 | compile 'com.android.support:appcompat-v7:25.3.0'
26 | compile project(':knoxActivator')
27 | compile 'com.yarolegovich:lovely-dialog:1.0.7'
28 | // compile('com.github.afollestad.material-dialogs:core:0.8.5.8@aar') {
29 | // transitive = true
30 | // }
31 | }
32 |
--------------------------------------------------------------------------------
/KNOXSampleApp/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Applications/ADT/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/KNOXSampleApp/app/src/androidTest/java/com/akexorcist/knoxsampleapp/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxsampleapp;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/KNOXSampleApp/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/KNOXSampleApp/app/src/main/java/com/akexorcist/knoxsampleapp/DoSomethingActivity.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxsampleapp;
2 |
3 | import android.support.v7.app.AppCompatActivity;
4 | import android.os.Bundle;
5 |
6 | public class DoSomethingActivity extends AppCompatActivity {
7 |
8 | @Override
9 | protected void onCreate(Bundle savedInstanceState) {
10 | super.onCreate(savedInstanceState);
11 | setContentView(R.layout.activity_do_something);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/KNOXSampleApp/app/src/main/java/com/akexorcist/knoxsampleapp/manager/SharedPreferenceManager.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxsampleapp.manager;
2 |
3 | import android.content.Context;
4 |
5 | /**
6 | * Created by Akexorcist on 6/9/16 AD.
7 | */
8 | public class SharedPreferenceManager {
9 | private static final String PREFERENCE_STATE = "preference_state";
10 | private static final String KEY_LICENSE_ACTIVATED = "key_license_activated";
11 |
12 | public static void setLicenseActivated(Context context) {
13 | context.getSharedPreferences(PREFERENCE_STATE, Context.MODE_PRIVATE)
14 | .edit()
15 | .putBoolean(KEY_LICENSE_ACTIVATED, true)
16 | .apply();
17 | }
18 |
19 | public static boolean isLicenseActivated(Context context) {
20 | return context.getSharedPreferences(PREFERENCE_STATE, Context.MODE_PRIVATE)
21 | .getBoolean(KEY_LICENSE_ACTIVATED, false);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/KNOXSampleApp/app/src/main/java/com/akexorcist/knoxsampleapp/manager/ToastManager.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxsampleapp.manager;
2 |
3 | import android.content.Context;
4 | import android.widget.Toast;
5 |
6 | import com.akexorcist.knoxsampleapp.R;
7 |
8 | /**
9 | * Created by Akexorcist on 4/22/2016 AD.
10 | */
11 | public class ToastManager {
12 | public static void showLicenseActivationSuccess(Context context) {
13 | showToast(context, R.string.license_activation_success);
14 | }
15 |
16 | public static void showDeviceAdminActivationSuccess(Context context) {
17 | showToast(context, R.string.device_admin_activation_success);
18 | }
19 |
20 | public static void showToast(Context context, int message) {
21 | Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/KNOXSampleApp/app/src/main/res/drawable-hdpi/ic_launcher_activation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXSampleApp/app/src/main/res/drawable-hdpi/ic_launcher_activation.png
--------------------------------------------------------------------------------
/KNOXSampleApp/app/src/main/res/drawable-mdpi/ic_launcher_activation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXSampleApp/app/src/main/res/drawable-mdpi/ic_launcher_activation.png
--------------------------------------------------------------------------------
/KNOXSampleApp/app/src/main/res/drawable-xhdpi/ic_launcher_activation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXSampleApp/app/src/main/res/drawable-xhdpi/ic_launcher_activation.png
--------------------------------------------------------------------------------
/KNOXSampleApp/app/src/main/res/drawable-xxhdpi/ic_launcher_activation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXSampleApp/app/src/main/res/drawable-xxhdpi/ic_launcher_activation.png
--------------------------------------------------------------------------------
/KNOXSampleApp/app/src/main/res/drawable-xxxhdpi/ic_launcher_activation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXSampleApp/app/src/main/res/drawable-xxxhdpi/ic_launcher_activation.png
--------------------------------------------------------------------------------
/KNOXSampleApp/app/src/main/res/layout/activity_activation.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
18 |
19 |
--------------------------------------------------------------------------------
/KNOXSampleApp/app/src/main/res/layout/activity_do_something.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/KNOXSampleApp/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/KNOXSampleApp/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 | 8dp
3 | 4dp
4 | 16dp
5 | 16sp
6 | 12sp
7 | 20sp
8 | 30sp
9 |
10 |
--------------------------------------------------------------------------------
/KNOXSampleApp/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | KNOX Activation Example
3 | Auto license and device admin activation will start immediately
4 | Let\'s do something with Samsung KNOX Standard SDK
5 | Setup Problem
6 | Device Administrator is required to enable. Please enable it to use this app.
7 | License Activation Problem
8 | Something wrong while license activation.\n Code : %s (%d)
9 | Device Problem
10 | This device isn\'t support by KNOX Standard SDK.
11 | Cancel
12 | Retry
13 | OK
14 | Device admin activation success
15 | KNOX license activation success
16 | License Activating
17 | Loading…
18 |
19 |
--------------------------------------------------------------------------------
/KNOXSampleApp/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/KNOXSampleApp/app/src/test/java/com/akexorcist/knoxsampleapp/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxsampleapp;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * To work on unit tests, switch the Test Artifact in the Build Variants view.
9 | */
10 | public class ExampleUnitTest {
11 | @Test
12 | public void addition_isCorrect() throws Exception {
13 | assertEquals(4, 2 + 2);
14 | }
15 | }
--------------------------------------------------------------------------------
/KNOXSampleApp/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | jcenter()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:2.3.0'
9 |
10 | // NOTE: Do not place your application dependencies here; they belong
11 | // in the individual module build.gradle files
12 | }
13 | }
14 |
15 | allprojects {
16 | repositories {
17 | jcenter()
18 | }
19 | }
20 |
21 | task clean(type: Delete) {
22 | delete rootProject.buildDir
23 | }
24 |
--------------------------------------------------------------------------------
/KNOXSampleApp/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
--------------------------------------------------------------------------------
/KNOXSampleApp/knoxActivator/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 25
5 | buildToolsVersion "25.0.2"
6 |
7 | defaultConfig {
8 | minSdkVersion 14
9 | targetSdkVersion 25
10 | versionCode 1
11 | versionName "1.0"
12 | }
13 | buildTypes {
14 | release {
15 | minifyEnabled false
16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
17 | }
18 | }
19 | }
20 |
21 | dependencies {
22 | compile fileTree(dir: 'libs', include: ['*.jar'])
23 | testCompile 'junit:junit:4.12'
24 | compile 'com.squareup:otto:1.3.8'
25 | }
26 |
--------------------------------------------------------------------------------
/KNOXSampleApp/knoxActivator/libs/edm.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXSampleApp/knoxActivator/libs/edm.jar
--------------------------------------------------------------------------------
/KNOXSampleApp/knoxActivator/libs/license.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXSampleApp/knoxActivator/libs/license.jar
--------------------------------------------------------------------------------
/KNOXSampleApp/knoxActivator/libs/rc.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/KNOXSampleApp/knoxActivator/libs/rc.jar
--------------------------------------------------------------------------------
/KNOXSampleApp/knoxActivator/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Applications/ADT/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/KNOXSampleApp/knoxActivator/src/androidTest/java/com/akexorcist/knoxactivator/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/KNOXSampleApp/knoxActivator/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
10 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/KNOXSampleApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/ActivationCallback.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator;
2 |
3 | /**
4 | * Created by Akexorcist on 4/20/2016 AD.
5 | */
6 | public interface ActivationCallback {
7 | void onDeviceAdminActivated();
8 |
9 | void onDeviceAdminActivationCancelled();
10 |
11 | void onDeviceAdminDeactivated();
12 |
13 | void onLicenseActivated();
14 |
15 | void onLicenseActivateFailed(int errorType, String errorMessage);
16 | }
17 |
--------------------------------------------------------------------------------
/KNOXSampleApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/KnoxActivationBus.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator;
2 |
3 | import com.squareup.otto.Bus;
4 |
5 | /**
6 | * Created by Akexorcist on 4/21/2016 AD.
7 | */
8 | public class KnoxActivationBus {
9 | private static KnoxActivationBus knoxActivationBus;
10 |
11 | public static KnoxActivationBus getInstance() {
12 | if (knoxActivationBus == null) {
13 | knoxActivationBus = new KnoxActivationBus();
14 | }
15 | return knoxActivationBus;
16 | }
17 |
18 | private Bus bus;
19 |
20 | public Bus getBus() {
21 | if (bus == null) {
22 | bus = new Bus();
23 | }
24 | return bus;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/KNOXSampleApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/event/AdminDeactivatedEvent.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator.event;
2 |
3 | /**
4 | * Created by Akexorcist on 4/21/2016 AD.
5 | */
6 | public class AdminDeactivatedEvent { }
7 |
--------------------------------------------------------------------------------
/KNOXSampleApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/event/LicenseActivatedEvent.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator.event;
2 |
3 | /**
4 | * Created by Akexorcist on 4/21/2016 AD.
5 | */
6 | public class LicenseActivatedEvent { }
7 |
--------------------------------------------------------------------------------
/KNOXSampleApp/knoxActivator/src/main/java/com/akexorcist/knoxactivator/event/LicenseActivationFailedEvent.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator.event;
2 |
3 | /**
4 | * Created by Akexorcist on 4/21/2016 AD.
5 | */
6 | public class LicenseActivationFailedEvent {
7 | int errorType;
8 |
9 | public LicenseActivationFailedEvent(int errorType) {
10 | this.errorType = errorType;
11 | }
12 |
13 | public int getErrorType() {
14 | return errorType;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/KNOXSampleApp/knoxActivator/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Do you want to disable the administrator?
5 |
6 |
--------------------------------------------------------------------------------
/KNOXSampleApp/knoxActivator/src/main/res/xml/enterprise_device_admin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
--------------------------------------------------------------------------------
/KNOXSampleApp/knoxActivator/src/test/java/com/akexorcist/knoxactivator/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.knoxactivator;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * To work on unit tests, switch the Test Artifact in the Build Variants view.
9 | */
10 | public class ExampleUnitTest {
11 | @Test
12 | public void addition_isCorrect() throws Exception {
13 | assertEquals(4, 2 + 2);
14 | }
15 | }
--------------------------------------------------------------------------------
/KNOXSampleApp/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app', ':knoxActivator'
2 |
--------------------------------------------------------------------------------
/MultiWindowApp/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 23
5 | buildToolsVersion "23.0.3"
6 |
7 | defaultConfig {
8 | applicationId "com.akexorcist.myapplication"
9 | minSdkVersion 14
10 | targetSdkVersion 23
11 | versionCode 1
12 | versionName "1.0"
13 | }
14 | buildTypes {
15 | release {
16 | minifyEnabled false
17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18 | }
19 | }
20 | }
21 |
22 | dependencies {
23 | compile fileTree(include: ['*.jar'], dir: 'libs')
24 | testCompile 'junit:junit:4.12'
25 | compile 'com.android.support:appcompat-v7:23.3.0'
26 | }
27 |
--------------------------------------------------------------------------------
/MultiWindowApp/app/libs/multiwindow-v1.3.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/MultiWindowApp/app/libs/multiwindow-v1.3.1.jar
--------------------------------------------------------------------------------
/MultiWindowApp/app/libs/sdk-v1.0.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/MultiWindowApp/app/libs/sdk-v1.0.0.jar
--------------------------------------------------------------------------------
/MultiWindowApp/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Applications/ADT/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/MultiWindowApp/app/src/androidTest/java/com/akexorcist/myapplication/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.myapplication;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/MultiWindowApp/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/MultiWindowApp/app/src/main/java/com/akexorcist/myapplication/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.myapplication;
2 |
3 | import android.animation.Animator;
4 | import android.animation.AnimatorInflater;
5 | import android.os.Bundle;
6 | import android.support.v7.app.AppCompatActivity;
7 | import android.view.MotionEvent;
8 | import android.view.View;
9 | import android.widget.ImageView;
10 |
11 | public class MainActivity extends AppCompatActivity implements View.OnTouchListener {
12 | private ImageView ivAndroidLogo;
13 |
14 | @Override
15 | protected void onCreate(Bundle savedInstanceState) {
16 | super.onCreate(savedInstanceState);
17 | setContentView(R.layout.activity_main);
18 |
19 | // Multi window code is in AndroidManifest.xml, not here.
20 | ivAndroidLogo = (ImageView) findViewById(R.id.iv_android_logo);
21 | ivAndroidLogo.setOnTouchListener(this);
22 | }
23 |
24 | @Override
25 | public boolean onTouch(View v, MotionEvent event) {
26 | int action = event.getAction();
27 | if (action == MotionEvent.ACTION_DOWN) {
28 | scaleDown();
29 | } else if (action == MotionEvent.ACTION_UP) {
30 | scaleDefault();
31 | }
32 | return true;
33 | }
34 |
35 | private void scaleDown() {
36 | Animator animator = AnimatorInflater.loadAnimator(this, R.animator.animator_scale_down);
37 | animator.setTarget(ivAndroidLogo);
38 | animator.start();
39 | }
40 |
41 | private void scaleDefault() {
42 | Animator animator = AnimatorInflater.loadAnimator(this, R.animator.animator_scale_default);
43 | animator.setTarget(ivAndroidLogo);
44 | animator.start();
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/MultiWindowApp/app/src/main/res/animator/animator_scale_default.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
10 |
16 |
--------------------------------------------------------------------------------
/MultiWindowApp/app/src/main/res/animator/animator_scale_down.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
10 |
16 |
--------------------------------------------------------------------------------
/MultiWindowApp/app/src/main/res/drawable-hdpi/android_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/MultiWindowApp/app/src/main/res/drawable-hdpi/android_logo.png
--------------------------------------------------------------------------------
/MultiWindowApp/app/src/main/res/drawable-hdpi/ic_launcher_multi_window.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/MultiWindowApp/app/src/main/res/drawable-hdpi/ic_launcher_multi_window.png
--------------------------------------------------------------------------------
/MultiWindowApp/app/src/main/res/drawable-mdpi/android_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/MultiWindowApp/app/src/main/res/drawable-mdpi/android_logo.png
--------------------------------------------------------------------------------
/MultiWindowApp/app/src/main/res/drawable-mdpi/ic_launcher_multi_window.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/MultiWindowApp/app/src/main/res/drawable-mdpi/ic_launcher_multi_window.png
--------------------------------------------------------------------------------
/MultiWindowApp/app/src/main/res/drawable-xhdpi/android_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/MultiWindowApp/app/src/main/res/drawable-xhdpi/android_logo.png
--------------------------------------------------------------------------------
/MultiWindowApp/app/src/main/res/drawable-xhdpi/ic_launcher_multi_window.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/MultiWindowApp/app/src/main/res/drawable-xhdpi/ic_launcher_multi_window.png
--------------------------------------------------------------------------------
/MultiWindowApp/app/src/main/res/drawable-xxhdpi/android_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/MultiWindowApp/app/src/main/res/drawable-xxhdpi/android_logo.png
--------------------------------------------------------------------------------
/MultiWindowApp/app/src/main/res/drawable-xxhdpi/ic_launcher_multi_window.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/MultiWindowApp/app/src/main/res/drawable-xxhdpi/ic_launcher_multi_window.png
--------------------------------------------------------------------------------
/MultiWindowApp/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
21 |
22 |
--------------------------------------------------------------------------------
/MultiWindowApp/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/MultiWindowApp/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/MultiWindowApp/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 |
6 |
--------------------------------------------------------------------------------
/MultiWindowApp/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Multi Window Example
3 |
4 |
--------------------------------------------------------------------------------
/MultiWindowApp/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/MultiWindowApp/app/src/test/java/com/akexorcist/myapplication/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.myapplication;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * To work on unit tests, switch the Test Artifact in the Build Variants view.
9 | */
10 | public class ExampleUnitTest {
11 | @Test
12 | public void addition_isCorrect() throws Exception {
13 | assertEquals(4, 2 + 2);
14 | }
15 | }
--------------------------------------------------------------------------------
/MultiWindowApp/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | jcenter()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:2.1.0'
9 |
10 | // NOTE: Do not place your application dependencies here; they belong
11 | // in the individual module build.gradle files
12 | }
13 | }
14 |
15 | allprojects {
16 | repositories {
17 | jcenter()
18 | }
19 | }
20 |
21 | task clean(type: Delete) {
22 | delete rootProject.buildDir
23 | }
24 |
--------------------------------------------------------------------------------
/MultiWindowApp/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
--------------------------------------------------------------------------------
/MultiWindowApp/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
--------------------------------------------------------------------------------
/PassApp/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 23
5 | buildToolsVersion "23.0.3"
6 |
7 | defaultConfig {
8 | applicationId "com.akexorcist.passapp"
9 | minSdkVersion 14
10 | targetSdkVersion 23
11 | versionCode 1
12 | versionName "1.0"
13 | }
14 | buildTypes {
15 | release {
16 | minifyEnabled false
17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18 | }
19 | }
20 | }
21 |
22 | dependencies {
23 | compile fileTree(include: ['*.jar'], dir: 'libs')
24 | testCompile 'junit:junit:4.12'
25 | compile 'com.android.support:appcompat-v7:23.3.0'
26 | }
27 |
--------------------------------------------------------------------------------
/PassApp/app/libs/pass-v1.2.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/PassApp/app/libs/pass-v1.2.1.jar
--------------------------------------------------------------------------------
/PassApp/app/libs/sdk-v1.0.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/PassApp/app/libs/sdk-v1.0.0.jar
--------------------------------------------------------------------------------
/PassApp/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Applications/ADT/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/PassApp/app/src/androidTest/java/com/akexorcist/passapp/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.passapp;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/PassApp/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/PassApp/app/src/main/java/com/akexorcist/passapp/InfoActivity.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.passapp;
2 |
3 | import android.support.v7.app.AppCompatActivity;
4 | import android.os.Bundle;
5 |
6 | public class InfoActivity extends AppCompatActivity {
7 |
8 | @Override
9 | protected void onCreate(Bundle savedInstanceState) {
10 | super.onCreate(savedInstanceState);
11 | setContentView(R.layout.activity_info);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/PassApp/app/src/main/res/drawable-hdpi/ic_launcher_pass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/PassApp/app/src/main/res/drawable-hdpi/ic_launcher_pass.png
--------------------------------------------------------------------------------
/PassApp/app/src/main/res/drawable-mdpi/ic_launcher_pass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/PassApp/app/src/main/res/drawable-mdpi/ic_launcher_pass.png
--------------------------------------------------------------------------------
/PassApp/app/src/main/res/drawable-xhdpi/ic_launcher_pass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/PassApp/app/src/main/res/drawable-xhdpi/ic_launcher_pass.png
--------------------------------------------------------------------------------
/PassApp/app/src/main/res/drawable-xxhdpi/ic_launcher_pass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/PassApp/app/src/main/res/drawable-xxhdpi/ic_launcher_pass.png
--------------------------------------------------------------------------------
/PassApp/app/src/main/res/drawable-xxxhdpi/ic_launcher_pass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/PassApp/app/src/main/res/drawable-xxxhdpi/ic_launcher_pass.png
--------------------------------------------------------------------------------
/PassApp/app/src/main/res/drawable/selector_button_accent.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/PassApp/app/src/main/res/drawable/shape_button_accent_disable.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
--------------------------------------------------------------------------------
/PassApp/app/src/main/res/drawable/shape_button_accent_normal.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
--------------------------------------------------------------------------------
/PassApp/app/src/main/res/drawable/shape_button_accent_pressed.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
--------------------------------------------------------------------------------
/PassApp/app/src/main/res/layout/activity_info.xml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
19 |
20 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/PassApp/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
18 |
19 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/PassApp/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 | #F50057
7 | #828282
8 | #313131
9 | #FFFFFF
10 | #000000
11 |
12 |
--------------------------------------------------------------------------------
/PassApp/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 8dp
4 | 4dp
5 | 16dp
6 | 16sp
7 | 12sp
8 | 20sp
9 | 30sp
10 | 64dp
11 |
12 |
--------------------------------------------------------------------------------
/PassApp/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Pass Example
3 | Do anything as you want after login with fingerprint.
4 | Welcome
5 | Sign in with Fingerprint
6 | Please sign in with your fingerprint to use this application.
7 | Device doesn\'t support Pass SDK.
8 |
9 |
--------------------------------------------------------------------------------
/PassApp/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/PassApp/app/src/test/java/com/akexorcist/passapp/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.passapp;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * To work on unit tests, switch the Test Artifact in the Build Variants view.
9 | */
10 | public class ExampleUnitTest {
11 | @Test
12 | public void addition_isCorrect() throws Exception {
13 | assertEquals(4, 2 + 2);
14 | }
15 | }
--------------------------------------------------------------------------------
/PassApp/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | jcenter()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:2.1.0'
9 |
10 | // NOTE: Do not place your application dependencies here; they belong
11 | // in the individual module build.gradle files
12 | }
13 | }
14 |
15 | allprojects {
16 | repositories {
17 | jcenter()
18 | }
19 | }
20 |
21 | task clean(type: Delete) {
22 | delete rootProject.buildDir
23 | }
24 |
--------------------------------------------------------------------------------
/PassApp/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
--------------------------------------------------------------------------------
/PassApp/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Example-SamsungSDK
2 | Example of Samsung SDK and KNOX SDK in Android Application
3 |
--------------------------------------------------------------------------------
/SPenApp/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 23
5 | buildToolsVersion "23.0.3"
6 |
7 | defaultConfig {
8 | applicationId "com.akexorcist.spenapp"
9 | minSdkVersion 16
10 | targetSdkVersion 23
11 | versionCode 1
12 | versionName "1.0"
13 | }
14 | buildTypes {
15 | release {
16 | minifyEnabled false
17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18 | }
19 | }
20 | repositories {
21 | flatDir {
22 | dirs 'libs'
23 | }
24 | }
25 | }
26 |
27 | dependencies {
28 | compile fileTree(dir: 'libs', include: ['*.jar'])
29 | compile(name: 'pen-v4.1.0_light', ext: 'aar')
30 | testCompile 'junit:junit:4.12'
31 | compile 'com.android.support:appcompat-v7:23.3.0'
32 | }
33 |
--------------------------------------------------------------------------------
/SPenApp/app/libs/pen-v4.1.0_light.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/SPenApp/app/libs/pen-v4.1.0_light.aar
--------------------------------------------------------------------------------
/SPenApp/app/libs/sdk-v1.0.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/SPenApp/app/libs/sdk-v1.0.0.jar
--------------------------------------------------------------------------------
/SPenApp/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Applications/ADT/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/SPenApp/app/src/androidTest/java/com/akexorcist/spenapp/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.spenapp;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/SPenApp/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/SPenApp/app/src/main/res/drawable-hdpi/ic_launcher_pen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/SPenApp/app/src/main/res/drawable-hdpi/ic_launcher_pen.png
--------------------------------------------------------------------------------
/SPenApp/app/src/main/res/drawable-hdpi/ic_pen_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/SPenApp/app/src/main/res/drawable-hdpi/ic_pen_settings.png
--------------------------------------------------------------------------------
/SPenApp/app/src/main/res/drawable-mdpi/ic_launcher_pen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/SPenApp/app/src/main/res/drawable-mdpi/ic_launcher_pen.png
--------------------------------------------------------------------------------
/SPenApp/app/src/main/res/drawable-mdpi/ic_pen_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/SPenApp/app/src/main/res/drawable-mdpi/ic_pen_settings.png
--------------------------------------------------------------------------------
/SPenApp/app/src/main/res/drawable-xhdpi/ic_launcher_pen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/SPenApp/app/src/main/res/drawable-xhdpi/ic_launcher_pen.png
--------------------------------------------------------------------------------
/SPenApp/app/src/main/res/drawable-xhdpi/ic_pen_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/SPenApp/app/src/main/res/drawable-xhdpi/ic_pen_settings.png
--------------------------------------------------------------------------------
/SPenApp/app/src/main/res/drawable-xxhdpi/ic_launcher_pen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/SPenApp/app/src/main/res/drawable-xxhdpi/ic_launcher_pen.png
--------------------------------------------------------------------------------
/SPenApp/app/src/main/res/drawable-xxhdpi/ic_pen_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/SPenApp/app/src/main/res/drawable-xxhdpi/ic_pen_settings.png
--------------------------------------------------------------------------------
/SPenApp/app/src/main/res/drawable-xxxhdpi/ic_launcher_pen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/SPenApp/app/src/main/res/drawable-xxxhdpi/ic_launcher_pen.png
--------------------------------------------------------------------------------
/SPenApp/app/src/main/res/drawable-xxxhdpi/ic_pen_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/akexorcist/Example-SamsungSDK/9edb4882ff5bbd7af9d5ef816a8707e7bf3042d4/SPenApp/app/src/main/res/drawable-xxxhdpi/ic_pen_settings.png
--------------------------------------------------------------------------------
/SPenApp/app/src/main/res/drawable/selector_circle_button_accent.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/SPenApp/app/src/main/res/drawable/selector_square_button_accent.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/SPenApp/app/src/main/res/drawable/shape_circle_button_accent_disable.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
10 |
--------------------------------------------------------------------------------
/SPenApp/app/src/main/res/drawable/shape_circle_button_accent_normal.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
10 |
--------------------------------------------------------------------------------
/SPenApp/app/src/main/res/drawable/shape_circle_button_accent_pressed.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
10 |
--------------------------------------------------------------------------------
/SPenApp/app/src/main/res/drawable/shape_square_button_accent_disable.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
--------------------------------------------------------------------------------
/SPenApp/app/src/main/res/drawable/shape_square_button_accent_normal.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
--------------------------------------------------------------------------------
/SPenApp/app/src/main/res/drawable/shape_square_button_accent_pressed.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
--------------------------------------------------------------------------------
/SPenApp/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 | #F50057
7 | #828282
8 | #c7c7c7
9 | #313131
10 | #FFFFFF
11 | #000000
12 |
13 |
--------------------------------------------------------------------------------
/SPenApp/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 8dp
4 | 4dp
5 | 16dp
6 | 16sp
7 | 12sp
8 | 20sp
9 | 30sp
10 | 64dp
11 | 48dp
12 |
13 |
--------------------------------------------------------------------------------
/SPenApp/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | S Pen App
3 | Save
4 | Pen
5 | Device doesn\'t support S pen.
6 |
7 |
--------------------------------------------------------------------------------
/SPenApp/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/SPenApp/app/src/test/java/com/akexorcist/spenapp/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.akexorcist.spenapp;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * To work on unit tests, switch the Test Artifact in the Build Variants view.
9 | */
10 | public class ExampleUnitTest {
11 | @Test
12 | public void addition_isCorrect() throws Exception {
13 | assertEquals(4, 2 + 2);
14 | }
15 | }
--------------------------------------------------------------------------------
/SPenApp/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | jcenter()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:2.1.0'
9 |
10 | // NOTE: Do not place your application dependencies here; they belong
11 | // in the individual module build.gradle files
12 | }
13 | }
14 |
15 | allprojects {
16 | repositories {
17 | jcenter()
18 | }
19 | }
20 |
21 | task clean(type: Delete) {
22 | delete rootProject.buildDir
23 | }
24 |
--------------------------------------------------------------------------------
/SPenApp/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
--------------------------------------------------------------------------------
/SPenApp/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
--------------------------------------------------------------------------------