Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
123 commits
Select commit Hold shift + click to select a range
132c4de
Frist Commit
vinaymanchundiya Mar 2, 2019
093547d
Safe commit
vinaymanchundiya Apr 6, 2019
a6a76f3
Double Buffer implemented for touch data entry
vinaymanchundiya Apr 21, 2019
d900ded
adding gradle dependencies for room
sbaner23 Apr 22, 2019
3535816
Accelerometer data added, not checked on real device yet
vinaymanchundiya Apr 22, 2019
e809b31
Merge branch 'master' of https://github.com/vinaymanchundiya/AnySoftK…
vinaymanchundiya Apr 22, 2019
f2440b5
Adding Db Models, DAO
sbaner23 Apr 22, 2019
3c56e3b
Create DB
sbaner23 Apr 22, 2019
22a494d
Room implementation
sbaner23 Apr 22, 2019
27f6468
.
sbaner23 Apr 22, 2019
6eec0e7
DB end to end
sbaner23 Apr 22, 2019
65ec089
Safe
vinaymanchundiya Apr 24, 2019
b5edc8d
Biaffect DataBase models and DAO
sbaner23 Apr 24, 2019
9934825
end to end for touchdata
sbaner23 Apr 26, 2019
5414945
.
sbaner23 Apr 26, 2019
f7a891d
DB MAnager and interface complete set of APIs
sbaner23 Apr 26, 2019
2ab9521
session function added to biamanager
sbaner23 Apr 26, 2019
5f20e01
Safe
vinaymanchundiya Apr 26, 2019
175622c
.error fixes
vinaymanchundiya Apr 26, 2019
9065b34
Safe
vinaymanchundiya Apr 26, 2019
8735e98
updated Db classes for touch
sbaner23 Apr 26, 2019
979e4b1
safe
vinaymanchundiya Apr 26, 2019
825c35f
safe
vinaymanchundiya Apr 26, 2019
14b8d8b
dB code for key
sbaner23 Apr 26, 2019
cfd5c60
safe
vinaymanchundiya Apr 26, 2019
8e6641e
session end to end
sbaner23 Apr 26, 2019
0cfb600
back end implementation for touch,key,session
sbaner23 Apr 26, 2019
acd7795
.
sbaner23 Apr 26, 2019
0ca9318
safe
vinaymanchundiya Apr 26, 2019
41efc2f
safe
vinaymanchundiya Apr 26, 2019
9735e3e
.
vinaymanchundiya Apr 26, 2019
5b17123
safe
vinaymanchundiya Apr 26, 2019
996771f
safe
vinaymanchundiya Apr 27, 2019
ec82b1b
Final Working Commit
vinaymanchundiya Apr 27, 2019
fd013f2
Time stamps adjusted
vinaymanchundiya Apr 27, 2019
7c0cca8
Code Final With multi touches being handled properly
vinaymanchundiya May 3, 2019
814a7a4
.
sbaner23 May 3, 2019
d807858
Merge branch 'FinalTry' of https://github.com/vinaymanchundiya/AnySof…
sbaner23 May 3, 2019
4856cad
commented and cleaned up Data base code
sbaner23 May 3, 2019
0e1d397
put in logic to handle violation of unique or PKey in transaction
sbaner23 May 3, 2019
44eaadf
.
sbaner23 May 8, 2019
6ea89b6
Solve data saving problem
Jul 22, 2019
497cfd1
update log
ag009 Jul 22, 2019
6004445
Add an empty first after first page
ag009 Jul 22, 2019
749c228
Add 2 button of Login page, todo: logic
Jul 23, 2019
7bb300e
Set new logging as page
ag009 Jul 26, 2019
8c57f1d
Add a login page and the jumping logic and exiting
Jul 26, 2019
115edd2
restore the layout of login page
Jul 26, 2019
02138d2
Move to button to buttom
ag009 Jul 26, 2019
ce0204d
Add placeholder version of BiAffectBridge
hikaritenchi Jul 30, 2019
ed0e817
Update the Login xml
Jul 30, 2019
8741be5
Hard code for the situation user have logged in
Jul 30, 2019
76a46ab
Making the loggin page style is similar to ios
ag009 Jul 30, 2019
567bb47
Deleted commented code
Jul 30, 2019
eae54eb
Keeping login state even after the app closes
ag009 Aug 5, 2019
89dd0af
If user changes the keyboard, asking them to login again
ag009 Aug 5, 2019
4e2fb8e
Login screen reject empty fields
ag009 Aug 5, 2019
ebbf275
Add the mapping system
Aug 6, 2019
7a8b62d
Merge branch 'Development' of https://github.com/BiAffect/AnySoftKeyb…
Aug 6, 2019
d1b30d1
Email validation
ag009 Aug 7, 2019
66d05c4
change and add some comments
Aug 9, 2019
76efa69
merge alphanumeric and numbers together into a Alpha-Numeric category
Aug 9, 2019
cc46da4
add punctuations comment
Aug 9, 2019
bf72d50
Remove logining requirement while user changes the keyboard
ag009 Aug 9, 2019
f263209
Update gradle plugin to latest version (3.4.2)
hikaritenchi Aug 10, 2019
8cebf60
Update repositories to include Sage's maven repo
hikaritenchi Aug 10, 2019
781db51
Update dependencies to include all required dependencies for the Brid…
hikaritenchi Aug 10, 2019
bf41ae4
Update min SDK to 19 as required by Bridge Android SDK
hikaritenchi Aug 10, 2019
e571eb0
Replace the android:label tag because we want to override the one giv…
hikaritenchi Aug 10, 2019
5ba4619
Switch AnyApplication to extend BridgeApplication as required by Brid…
hikaritenchi Aug 10, 2019
5a22922
Add configuration files required by Bridge Android SDK
hikaritenchi Aug 10, 2019
1a58171
Update BiAffectBridge to replace placeholder methods with actual ones
hikaritenchi Aug 10, 2019
79eba8a
Update the category
Aug 12, 2019
646ec64
Merge branch 'Development' of https://github.com/BiAffect/AnySoftKeyb…
Aug 12, 2019
5336eb5
Update LoggingPage.java
ag009 Aug 12, 2019
416df98
Add the consent page before login page
Aug 12, 2019
08ce3c7
Merge branch 'Development' of https://github.com/BiAffect/AnySoftKeyb…
Aug 12, 2019
e9362cd
Use Bridge to authenticate the user account
Aug 13, 2019
5f12397
Finished the action after successfully login
Aug 14, 2019
9ddff23
Show the message after the user login in successfully
Aug 14, 2019
5b4cce0
Save autosuggestion data
ag009 Aug 15, 2019
3c78ed0
Finished the error handling
Aug 15, 2019
9ff771b
Merge branch 'Development' of https://github.com/BiAffect/AnySoftKeyb…
Aug 15, 2019
a8830a0
Save keyTypeData and touchTypeDate of autosuggestion
ag009 Aug 16, 2019
2ad6c6d
Change eventAction from int to String
ag009 Aug 17, 2019
ab4d956
Solved the auto login bug
Aug 20, 2019
0574d32
add the switchToNumber and switchToLetter conditions
Aug 22, 2019
b400ae6
Use actionDownTime as autosuggestion eventTime
ag009 Aug 26, 2019
13b166c
Update gradle plugin to support Android Studio 3.5
hikaritenchi Aug 27, 2019
dd4b6e3
Enable multidex for project
hikaritenchi Aug 27, 2019
f9c312e
Add additional .gitignore for AS 3.5
hikaritenchi Aug 27, 2019
c5d35f0
Update gradle wrapper to minimum supported version (5.4.1)
hikaritenchi Aug 27, 2019
66e3c85
Add additional imports to build.gradle for compilation
hikaritenchi Aug 27, 2019
49894b2
Add dummy data upload code for helping debug
hikaritenchi Aug 27, 2019
5479eac
add a wiki image repo
Aug 27, 2019
0e31465
update wiki image
Aug 27, 2019
1c714fa
update wiki image
Aug 27, 2019
e5b7a33
Add files via upload
ag009 Aug 27, 2019
ad0e722
Get build working
liujoshua Aug 29, 2019
4b10e5a
Merge pull request #1 from liujoshua/sage_debugging
hikaritenchi Sep 8, 2019
e58ca7b
Remove unnecessary imports in build.gradle
hikaritenchi Sep 8, 2019
bc8adaf
Merge pull request #2 from BiAffect/sage_debugging
hikaritenchi Sep 8, 2019
508e494
Delete problematic filename for Windows
hikaritenchi Sep 8, 2019
66c189b
Add file with Windows-compatible filename
hikaritenchi Sep 8, 2019
960c43b
Merge pull request #3 from BiAffect/rename-wiki-file
hikaritenchi Sep 8, 2019
f205042
Remove temporary placeholder methods for isUserLoggedIn and login
hikaritenchi Sep 8, 2019
e1ef2eb
Add query to get device data from the DB
hikaritenchi Sep 15, 2019
f2ecea5
Add query to get accelerometer data from the DB
hikaritenchi Sep 15, 2019
83a1434
Add query to get key type data from the DB
hikaritenchi Sep 15, 2019
f7e0e9b
Add query to get touch type data from the DB
hikaritenchi Sep 15, 2019
05f72bc
Update Session JSON object to match upload format, as well as methods…
hikaritenchi Sep 15, 2019
1c764cf
Updates Finalizer to queue Session data upload when the session ends
hikaritenchi Sep 15, 2019
7bf3357
Add BridgeWorker so WorkManager can handle the timing of processing u…
hikaritenchi Sep 16, 2019
c2be4bb
Add WorkManager request queue when user logs in or opens the app
hikaritenchi Sep 16, 2019
ca3d642
Fix issue with timestamp being the incorrect data type
hikaritenchi Sep 16, 2019
4bd3ceb
Disable gesture typing (swiping)
hikaritenchi Oct 14, 2019
253462c
Fix soft crash when logging in with the keyboard already enabled
hikaritenchi Oct 14, 2019
601031b
Modify upload structure to associate touches with keys
hikaritenchi Oct 14, 2019
1ff0761
Update to new app and device version info for upload
hikaritenchi Oct 14, 2019
c8b3afc
Bypass consent
hikaritenchi Oct 14, 2019
d4304b1
Add single upload to "about" menu item
hikaritenchi Oct 14, 2019
d1c45a1
update app icon to BiAffect icon
peterekhator Feb 6, 2020
bd58a17
BiAffect App Icon update
faraz-hussain Feb 27, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,6 @@ local.properties
.project
.settings/
.classpath
.vscode/
.vscode/
NDK_14b/
.cxx/
71 changes: 67 additions & 4 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,20 @@ buildscript {
}

dependencies {
classpath 'com.github.menny:GradleVersion:0.0.3'
classpath 'net.evendanan.autoversion:gradle-plugin:0.1.7'
// classpath 'com.github.menny:GradleVersion:0.0.3'
//classpath 'com.android.tools.build:gradle:3.3.0'
}
}

apply plugin: 'com.android.application'
apply plugin: 'com.github.triplet.play'
apply plugin: 'net.evendanan.versiongenerator'
apply plugin: 'net.evendanan.autoversion'

def generators = [
new net.evendanan.versiongenerator.generators.EnvBuildVersionGenerator.CircleCi(
1650/*adding to version. Should not ever change*/,
-2575-2600 /*decrementing due to minor, every minor/major bump, this should be decremented*/),
-2575 - 2600 /*decrementing due to minor, every minor/major bump, this should be decremented*/),
new net.evendanan.versiongenerator.generators.StaticVersionGenerator()
]

Expand All @@ -31,6 +33,8 @@ apply from: "${rootDir}/gradle/android_general.gradle"
android {
defaultConfig {
applicationId 'com.menny.android.anysoftkeyboard'
minSdkVersion 19
multiDexEnabled true
versionCode versionData.versionCode
versionName versionData.versionName

Expand Down Expand Up @@ -86,6 +90,11 @@ android {
matchingFallbacks = ['release', 'debug']
}
}
sourceSets {
main {
java.srcDirs = ['src/main/java', 'src/main/java/com/menny/android/anysoftkeyboard/DAO_DB']
}
}
}

play {
Expand All @@ -104,7 +113,7 @@ if (playStoreWhatsNewFile.text.length() > 500) {
println("Locale " + Locale.getDefault())
println("file encoding " + CharsetToolkit.defaultSystemCharset)
println("File contents:")
println("***" + playStoreWhatsNewFile.text + "***")
println("***" + playStoreWhatsNewFile.text + "***")
throw new IllegalStateException("whatsnew file can not be longer than 500 characters! Currently " + playStoreWhatsNewFile.text.length())
}

Expand All @@ -119,6 +128,21 @@ dependencies {
implementation project(':overlay')
implementation project(':pixel')

implementation('org.sagebionetworks.bridge:android-sdk:0.2.0') {
exclude group: 'com.google.code.findbugs'
}

//https://developer.android.com/jetpack/androidx/releases/work#declaring_dependencies
def work_version = "1.0.1"
implementation("android.arch.work:work-runtime:$work_version") {
exclude group: 'com.google.guava', module: 'listenablefuture'
}
implementation("android.arch.work:work-rxjava2:$work_version") {
exclude group: 'com.google.guava', module: 'listenablefuture'
}

implementation 'com.github.akarnokd:rxjava2-interop:0.13.2'

implementation "com.anysoftkeyboard.api:api:$AnySoftKeyboardApiVersion"
implementation "com.android.support:support-fragment:$supportLibVersion"
implementation "com.android.support:appcompat-v7:$supportLibVersion"
Expand All @@ -138,6 +162,45 @@ dependencies {
implementation 'com.anysoftkeybaord.languages:base:4.0.368@aar'
implementation 'com.anysoftkeybaord.languages.english:english:4.0.368@aar'

implementation 'com.android.support:support-annotations:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'android.arch.lifecycle:extensions:1.1.1'
testImplementation project(path: ':base-test')
testImplementation 'com.github.triplet.simpleprovider:simpleprovider:1.1.0'

// // Room components
/*
* Room depends on 26.1 of support library, SupportLibrary does not promise interop between versions.
* hence code breaking?
* Trying to resolve by excluding from group
* */
implementation("android.arch.persistence.room:runtime:$rootProject.roomVersion") {
exclude group: 'com.android.support'
}
annotationProcessor "android.arch.persistence.room:compiler:$rootProject.roomVersion"
// }
}

// trying to resolve the android version issues
//configurations.all {
// resolutionStrategy.eachDependency { DependencyResolveDetails details ->
// def requested = details.requested
// if (requested.group == 'com.android.support') {
// if (!requested.name.startsWith("multidex")) {
// details.useVersion '28.0.0'
// }
// }
// }
//
//

configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '25.4.0'
}
}
}
}
4 changes: 3 additions & 1 deletion app/src/debug/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,7 @@

<application
android:name="com.anysoftkeyboard.debug.DebugAnyApplication"
tools:replace="android:name" />
tools:replace="android:name" >
</application>

</manifest>
93 changes: 56 additions & 37 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,34 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.menny.android.anysoftkeyboard">
xmlns:tools="http://schemas.android.com/tools"
package="com.menny.android.anysoftkeyboard"> <!-- used in QuickTextViewFactory -->
<uses-sdk tools:overrideLibrary="com.astuetz.pagerslidingtabstrip,androidx.test,androidx.test.core" />

<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true"
tools:ignore="UnusedAttribute" />
<!-- http://d.android.com/guide/practices/screens_support.html read about legacy. -->

<uses-permission android:name="android.permission.VIBRATE" />
<!-- required for the user dictionary (long press a word in the suggestions bar) -->
tools:ignore="UnusedAttribute" /> <!-- http://d.android.com/guide/practices/screens_support.html read about legacy. -->
<uses-permission android:name="android.permission.VIBRATE" /> <!-- required for the user dictionary (long press a word in the suggestions bar) -->
<uses-permission android:name="android.permission.READ_USER_DICTIONARY" />
<uses-permission android:name="android.permission.WRITE_USER_DICTIONARY" />
<!-- REQUIRED FOR THE CONTACTS DICTIONARY -->
<uses-permission android:name="android.permission.READ_CONTACTS" />
<!-- REQUIRED BACKUP TO/RESTORE FROM SDCARD -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<!-- currently, only support touch and fake-touch devices -->
<uses-permission android:name="android.permission.WRITE_USER_DICTIONARY" /> <!-- REQUIRED FOR THE CONTACTS DICTIONARY -->
<uses-permission android:name="android.permission.READ_CONTACTS" /> <!-- REQUIRED BACKUP TO/RESTORE FROM SDCARD -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- currently, only support touch and fake-touch devices -->
<uses-feature android:name="android.hardware.faketouch" />
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false" />

<!-- used in QuickTextViewFactory -->
<uses-sdk tools:overrideLibrary="com.astuetz.pagerslidingtabstrip,androidx.test,androidx.test.core" />

<application
android:name=".AnyApplication"
android:hardwareAccelerated="true"
Expand All @@ -38,15 +30,41 @@
android:restoreAnyVersion="true"
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/Theme.AskApp"
tools:ignore="GoogleAppIndexingWarning,UnusedAttribute">
tools:ignore="GoogleAppIndexingWarning,UnusedAttribute"
tools:replace="android:label">
<activity
android:name="com.anysoftkeyboard.ui.settings.setup.ConsentPage"
android:icon="@mipmap/ic_launcher"
android:label="@string/ime_name"
android:launchMode="singleTop"
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/Theme.AskApp.NoTitle.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<!-- used to backup the settings and SQL to the cloud -->
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.anysoftkeyboard.ui.settings.setup.LoggingPage"
android:icon="@mipmap/ic_launcher"
android:label="@string/ime_name"
android:launchMode="singleTask"
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/Theme.AskApp.NoTitle.NoActionBar">
<!--<intent-filter>-->
<!--<action android:name="android.intent.action.MAIN" />-->

<!--<category android:name="android.intent.category.LAUNCHER" />-->
<!--</intent-filter>-->
</activity> <!-- <activity -->
<!-- android:name="ui.settings.setup.LoggingPage" -->
<!-- android:label="@string/title_activity_login" /> &lt;!&ndash; used to backup the settings and SQL to the cloud &ndash;&gt; -->
<!--
<meta-data
android:name="com.google.android.backup.api_key"
android:value="AEdPqrEAAAAILlrSpiqigog3iJt3BwYxzNXMUzqgGV_dJ1EPDQ"/>
-->

<!-- this is the IME with the pointer to the settings ui (xml/method) -->
<service
android:name=".SoftKeyboard"
Expand All @@ -58,24 +76,28 @@
<meta-data
android:name="android.view.im"
android:resource="@xml/method" />
</service>

<!-- ui activities -->
</service> <!-- ui activities -->
<!-- settings ui activities -->
<!-- this is just a proxy activity, it does nothing but direct to the actual setting ativity
I use this, so I can 'disable' this activity at runtime, and so remove ASK from the launcher's icons -->
<!--
this is just a proxy activity, it does nothing but direct to the actual setting ativity
I use this, so I can 'disable' this activity at runtime, and so remove ASK from the launcher's icons
-->
<!-- android:launchMode="singleTop" -->
<activity
android:name="com.menny.android.anysoftkeyboard.LauncherSettingsActivity"
android:name=".LauncherSettingsActivity"
android:icon="@mipmap/ic_launcher"
android:label="@string/ime_name"
android:launchMode="singleTop"
android:launchMode="singleTask"
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/Theme.AskApp">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!-- <intent-filter> -->
<!-- <action android:name="android.intent.action.MAIN" /> -->


<!-- <category android:name="android.intent.category.LAUNCHER" /> -->
<!-- </intent-filter> -->

<meta-data
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
Expand All @@ -96,23 +118,20 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/Theme.AskApp.NoTitle.NoActionBar"
android:windowSoftInputMode="adjustPan" />

<activity
android:name="com.anysoftkeyboard.ui.tutorials.TestersNoticeActivity"
android:icon="@mipmap/ic_launcher"
android:label="@string/testers_version"
android:launchMode="singleTop"
android:noHistory="true"
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/Theme.AskApp.Popup" />
<!-- ui when a crash happens -->
android:theme="@style/Theme.AskApp.Popup" /> <!-- ui when a crash happens -->
<activity
android:name="com.anysoftkeyboard.ui.SendBugReportUiActivity"
android:icon="@mipmap/ic_launcher"
android:label="@string/ime_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/Theme.AskApp.NoTitle" />
<!-- for voice -->
android:theme="@style/Theme.AskApp.NoTitle" /> <!-- for voice -->
<service android:name="com.google.android.voiceime.ServiceHelper" />

<activity
Expand All @@ -133,4 +152,4 @@
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
</application>

</manifest>
</manifest>
Loading