Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
yotta
/
pictogram
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
60
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
9a26e5af
authored
Dec 09, 2016
by
Arturo Montejo Ráez
Browse files
Options
_('Browse Files')
Download
Plain Diff
Merge branch 'develop' of
http://scm.ujaen.es/softuno/pictogram
into develop
parents
b626c1dc
739c69d1
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
325 additions
and
226 deletions
android/Pictogram/commonlibrary/src/main/java/com/yottacode/pictogram/dao/User.java
android/Pictogram/commonlibrary/src/main/java/com/yottacode/pictogram/tts/TTSHelper.java
android/Pictogram/commonlibrary/src/main/res/values-en/strings.xml
android/Pictogram/commonlibrary/src/main/res/values-es/strings.xml
android/Pictogram/commonlibrary/src/main/res/values/strings.xml
android/Pictogram/supervisor_tablet/supervisor_tablet.iml
android/Pictogram/tabletlibrary/src/main/java/com/yottacode/pictogram/tabletlibrary/gui/PictoItemViewGenerator.java
android/Pictogram/tabletlibrary/src/main/java/com/yottacode/pictogram/tabletlibrary/gui/PictogramActivity.java
android/Pictogram/tabletlibrary/src/main/java/com/yottacode/pictogram/tabletlibrary/gui/SerialActivity.java
android/Pictogram/tabletlibrary/src/main/java/com/yottacode/pictogram/tabletlibrary/gui/TapeAdapter.java
android/Pictogram/tabletlibrary/src/main/res/drawable-hdpi/application_offline.png
android/Pictogram/tabletlibrary/src/main/res/drawable-hdpi/application_online.png
android/Pictogram/tabletlibrary/tabletlibrary.iml
android/Pictogram/yotta_tablet/yotta_tablet.iml
android/Pictogram/commonlibrary/src/main/java/com/yottacode/pictogram/dao/User.java
View file @
9a26e5af
...
...
@@ -26,12 +26,18 @@ public class User {
public
final
static
class
JSON_STUDENT_ATTTRS
{
static
String
CATEGORIES
=
"categories"
;
static
String
INPUT_FEEDBACK
=
"input
feedback"
;
static
String
INPUT_FEEDBACK
=
"input
_
feedback"
;
static
String
INPUT_SELECTION
=
"input selection"
;
static
String
PICTOGRAM_SIZE
=
"pictogram size"
;
static
String
TTS_ENGINE
=
"tts engine"
;
static
String
TTS_VOICE
=
"tts voice"
;
}
public
final
static
class
JSON_STUDENT_INPUT_FEEDBACK
{
public
static
String
VIBRATION
=
"vibration"
;
public
static
String
BEEP
=
"beep"
;
public
static
String
READ
=
"read"
;
public
static
String
HIGHLIGHT
=
"highlight"
;
}
private
Img
img_stu
;
private
String
nickname_stu
,
pwd_stu
,
name_stu
,
surname_stu
,
gender_stu
,
lang_stu
;
private
JSONObject
attributes_stu
;
...
...
@@ -244,11 +250,11 @@ public class User {
*
* @return input feedback of the student configuration (default: "vibration")
*/
public
String
get_input_feedback
(
)
{
public
boolean
input_feedback_on
(
String
input_feedback
)
{
try
{
return
this
.
attributes_stu
.
get
String
(
JSON_STUDENT_ATTTRS
.
INPUT_FEEDBACK
);
return
this
.
attributes_stu
.
get
JSONObject
(
JSON_STUDENT_ATTTRS
.
INPUT_FEEDBACK
).
getBoolean
(
input_feedback
);
}
catch
(
JSONException
e
)
{
return
"vibration"
;
return
false
;
}
}
...
...
@@ -268,11 +274,11 @@ public class User {
/**
*
* @return pictogram size of the student configuration (default: "
normal
")
* @return pictogram size of the student configuration (default: "
big
")
*/
public
boolean
is_picto_size_big
()
{
try
{
return
!
get_json_attr
(
JSON_STUDENT_ATTTRS
.
PICTOGRAM_SIZE
).
equals
(
"
norma
l"
);
return
!
get_json_attr
(
JSON_STUDENT_ATTTRS
.
PICTOGRAM_SIZE
).
equals
(
"
smal
l"
);
}
catch
(
Exception
e
)
{
return
true
;
}
...
...
android/Pictogram/commonlibrary/src/main/java/com/yottacode/pictogram/tts/TTSHelper.java
View file @
9a26e5af
package
com
.
yottacode
.
pictogram
.
tts
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Locale
;
import
java.util.Set
;
import
android.annotation.TargetApi
;
import
android.content.Context
;
import
android.os.Build
;
import
android.os.Bundle
;
import
android.speech.tts.TextToSpeech
;
import
android.
content.Context
;
import
android.
speech.tts.UtteranceProgressListener
;
import
android.speech.tts.Voice
;
import
android.util.Log
;
import
android.widget.ArrayAdapter
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Locale
;
import
java.util.Set
;
/**
* PCB TTS service
* @author Fernando Martinez Santiago
* @version 1.0
*/
public
class
TTSHelper
{
public
class
TTSHelper
{
TextToSpeech
ttobj
;
public
boolean
engine_ok
;
public
boolean
voice_ok
=
true
;
Voice
voice
;
boolean
voice_ok
;
public
void
createTTS
(
Context
context
,
String
engine
)
{
this
.
destroy
();
/* this.ttobj = new TextToSpeech(
context,
new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if (status != TextToSpeech.ERROR) {
ttobj.setLanguage(Locale.getDefault());
}
}
}, engine);*/
this
.
engine_ok
=
true
;
Log
.
e
(
context
.
getApplicationInfo
().
processName
,
"TTS engine "
+
engine
+
" loaded"
);
}
public
TTSHelper
(
Context
context
)
{
createTTS
(
context
,
null
);
}
public
void
createTTS
(
final
Context
context
,
String
engine
,
final
Locale
locale
,
final
String
voice
)
{
public
TTSHelper
(
Context
context
,
String
engine
)
{
try
{
createTTS
(
context
,
engine
);
}
catch
(
Exception
e
)
{
createTTS
(
context
,
null
);
Log
.
e
(
context
.
getApplicationInfo
().
processName
,
"Engine "
+
engine
+
" error"
,
e
);
this
.
engine_ok
=
false
;
this
.
ttobj
=
new
TextToSpeech
(
context
,
new
TextToSpeech
.
OnInitListener
()
{
public
void
onInit
(
int
status
)
{
Log
.
e
(
this
.
getClass
().
getCanonicalName
(),
"TTS engine "
+
status
);
if
(
status
==
TextToSpeech
.
SUCCESS
)
{
ttobj
.
setLanguage
(
locale
);
setVoice
(
context
,
voice
);
}
}},
engine
);
}
public
TTSHelper
(
Context
context
,
String
engine
,
Locale
locale
,
String
voice
)
{
createTTS
(
context
,
engine
,
locale
,
voice
);
}
}
public
void
setOnUtteranceProgressListener
(
UtteranceProgressListener
listener
)
{
this
.
ttobj
.
setOnUtteranceProgressListener
(
listener
);
}
@TargetApi
(
Build
.
VERSION_CODES
.
LOLLIPOP
)
public
void
setVoice
(
Context
context
,
String
voice
)
{
...
...
@@ -62,11 +55,10 @@ public class TTSHelper {
Set
<
Voice
>
voices
=
this
.
ttobj
.
getVoices
();
if
(
voices
!=
null
)
for
(
Voice
avoice
:
voices
)
{
Log
.
e
(
context
.
getApplicationInfo
().
processName
,
"Voice name "
+
avoice
.
getName
());
if
(
avoice
.
getName
().
compareTo
(
voice
)
==
0
)
{
if
(
avoice
.
getName
().
equalsIgnoreCase
(
voice
))
{
this
.
ttobj
.
setVoice
(
avoice
);
this
.
voice_ok
=
true
;
Log
.
e
(
context
.
getApplicationInfo
().
processName
,
"Voice "
+
voice
+
" loaded"
);
Log
.
i
(
context
.
getApplicationInfo
().
processName
,
"Voice "
+
voice
+
" loaded"
);
break
;
}
}
...
...
@@ -79,7 +71,7 @@ public class TTSHelper {
}
public
boolean
isVoice_ok
()
{
return
this
.
voice_ok
;}
public
boolean
isEngine_ok
()
{
return
this
.
engine_ok
;}
@TargetApi
(
Build
.
VERSION_CODES
.
LOLLIPOP
)
public
void
speakText
(
String
toSpeak
){
this
.
ttobj
.
speak
(
toSpeak
,
TextToSpeech
.
QUEUE_FLUSH
,
null
,
toSpeak
.
hashCode
()+
""
);
...
...
@@ -110,6 +102,29 @@ public class TTSHelper {
}
}
public
void
show
(
)
{
int
i
=
0
;
List
<
TextToSpeech
.
EngineInfo
>
engines
=
this
.
ttobj
.
getEngines
();
for
(
Iterator
<
TextToSpeech
.
EngineInfo
>
iter
=
engines
.
iterator
();
iter
.
hasNext
();
)
{
TextToSpeech
.
EngineInfo
element
=
iter
.
next
();
Log
.
i
(
"TTSHelper"
,
"TTS: "
+
element
.
name
+
" label:"
+
element
.
label
);
}
if
(
this
.
ttobj
.
getVoice
()!=
null
)
{
Log
.
i
(
"TTSHelper"
,
"Default voice:"
+
this
.
ttobj
.
getDefaultVoice
().
getName
());
Set
<
Voice
>
voices
=
this
.
ttobj
.
getVoices
();
if
(
voices
!=
null
)
for
(
Voice
voice
:
voices
)
{
Log
.
i
(
"TTSHelper"
,
"Voice: "
+
voice
.
getName
()
+
" locale:"
+
voice
.
getLocale
()+
" features:"
+
voice
.
getFeatures
());
}
}
}
public
void
destroy
()
{
if
(
ttobj
!=
null
){
...
...
@@ -119,4 +134,10 @@ public class TTSHelper {
this
.
ttobj
=
null
;
}
}
\ No newline at end of file
public
void
play
(
String
input
)
{
Bundle
params
=
new
Bundle
();
params
.
putString
(
TextToSpeech
.
Engine
.
KEY_PARAM_VOLUME
,
"1"
);
params
.
putString
(
TextToSpeech
.
Engine
.
KEY_PARAM_UTTERANCE_ID
,
"TAPE_READ"
);
ttobj
.
speak
(
input
,
TextToSpeech
.
QUEUE_FLUSH
,
params
,
"TAPE_READ"
);
}
}
android/Pictogram/commonlibrary/src/main/res/values-en/strings.xml
View file @
9a26e5af
...
...
@@ -63,4 +63,9 @@
<!--mirror mode-->
<string
name=
"mirror_mode_off"
>
Mirror mode off
</string>
<string
name=
"mirror_mode_on"
>
Mirror mode on
</string>
<!--default tts engine and voice-->
<string
name=
"default_tts_engine"
>
com.google.android.tts
</string>
<string
name=
"default_tts_voice_male"
>
en-gb-x-rjs#male_1-local
</string>
<string
name=
"default_tts_voice_female"
>
en-gb-x-fis#female_1-local
</string>
</resources>
android/Pictogram/commonlibrary/src/main/res/values-es/strings.xml
View file @
9a26e5af
...
...
@@ -64,5 +64,10 @@
<string
name=
"mirror_mode_off"
>
Modo espejo desactivado
</string>
<string
name=
"mirror_mode_on"
>
Modo espejo activado
</string>
<!--default tts engine and voice-->
<string
name=
"default_tts_engine"
>
com.google.android.tts
</string>
<string
name=
"default_tts_voice_male"
>
es-es-x-ana#male_1-local
</string>
<string
name=
"default_tts_voice_female"
>
es-es-x-ana#female_2-local
</string>
</resources>
android/Pictogram/commonlibrary/src/main/res/values/strings.xml
View file @
9a26e5af
...
...
@@ -79,4 +79,9 @@
<!--mirror mode-->
<string
name=
"mirror_mode_off"
>
Modo espejo desactivado
</string>
<string
name=
"mirror_mode_on"
>
Modo espejo activado
</string>
<!--default tts engine and voice-->
<string
name=
"default_tts_engine"
>
com.google.android.tts
</string>
<string
name=
"default_tts_voice_male"
>
en-gb-x-rjs#male_1-local
</string>
<string
name=
"default_tts_voice_female"
>
en-gb-x-fis#female_1-local
</string>
</resources>
android/Pictogram/supervisor_tablet/supervisor_tablet.iml
View file @
9a26e5af
...
...
@@ -106,14 +106,6 @@
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/jni"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/rs"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/shaders"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/res"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/resources"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/assets"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/aidl"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/java"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/jni"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/rs"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/shaders"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/res"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/resources"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/assets"
type=
"java-test-resource"
/>
...
...
@@ -122,8 +114,17 @@
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/jni"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/rs"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/shaders"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/res"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/resources"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/assets"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/aidl"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/java"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/jni"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/rs"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/shaders"
isTestSource=
"true"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/build/intermediates/assets"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/build/intermediates/blame"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/build/intermediates/builds"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/build/intermediates/classes"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/build/intermediates/dependency-cache"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/animated-vector-drawable/24.2.1/jars"
/>
...
...
android/Pictogram/tabletlibrary/src/main/java/com/yottacode/pictogram/tabletlibrary/gui/PictoItemViewGenerator.java
View file @
9a26e5af
...
...
@@ -22,8 +22,10 @@ public class PictoItemViewGenerator {
public
static
final
int
LAYOUT
=
R
.
layout
.
picto_grid_item
;
public
static
final
int
LAYOUT_BIG
=
R
.
layout
.
picto_grid_item_big
;
public
static
int
mirror_color
=
0
;
public
static
View
getPictoView
(
Picto
picto
,
View
convertView
,
ViewGroup
parent
)
{
return
getPictoView
(
picto
,
convertView
,
parent
,
false
);
}
public
static
View
getPictoView
(
Picto
picto
,
View
convertView
,
ViewGroup
parent
,
boolean
preventMirror
)
{
if
(
convertView
==
null
)
{
convertView
=
LayoutInflater
.
from
(
parent
.
getContext
()).
inflate
(
PCBcontext
.
getPcbdb
().
getCurrentUser
().
is_picto_size_big
()
?
LAYOUT_BIG
:
LAYOUT
,
parent
,
false
);
}
...
...
@@ -86,10 +88,10 @@ public class PictoItemViewGenerator {
layout
.
setBackgroundColor
(
picto
.
get_color
());
}
if
(
picto
.
is_mirror
())
{
if
(
picto
.
is_mirror
()
&&
!
preventMirror
)
{
int
color
[]={
Color
.
WHITE
,
Color
.
LTGRAY
,
Color
.
GRAY
,
Color
.
DKGRAY
,
Color
.
BLACK
,
Color
.
DKGRAY
,
Color
.
GRAY
,
Color
.
LTGRAY
,
Color
.
WHITE
};
float
scale
[]={
1
f
,
1.1f
,
1.2f
,
1.3f
,
1.4f
,
1.
6
f
,
1.3f
,
1.2f
,
1.1f
};
float
scale
[]={
1
f
,
1.1f
,
1.2f
,
1.3f
,
1.4f
,
1.
5f
,
1.4
f
,
1.3f
,
1.2f
,
1.1f
};
mirror_color
++;
pictoImage
.
setScaleX
(
scale
[
mirror_color
%
scale
.
length
]);
pictoImage
.
setScaleY
(
scale
[
mirror_color
%
scale
.
length
]);
...
...
android/Pictogram/tabletlibrary/src/main/java/com/yottacode/pictogram/tabletlibrary/gui/PictogramActivity.java
View file @
9a26e5af
...
...
@@ -7,16 +7,19 @@ import android.content.ClipDescription;
import
android.content.DialogInterface
;
import
android.content.Intent
;
import
android.database.Cursor
;
import
android.media.Ringtone
;
import
android.media.RingtoneManager
;
import
android.net.Uri
;
import
android.os.Bundle
;
import
android.provider.MediaStore
;
import
android.speech.tts.TextToSpeech
;
import
android.speech.tts.UtteranceProgressListener
;
import
android.text.InputType
;
import
android.util.DisplayMetrics
;
import
android.util.Log
;
import
android.view.DragEvent
;
import
android.view.HapticFeedbackConstants
;
import
android.view.KeyEvent
;
import
android.view.MotionEvent
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.view.Window
;
...
...
@@ -44,6 +47,7 @@ import com.yottacode.pictogram.net.iImgDownloaderListener;
import
com.yottacode.pictogram.tabletlibrary.R
;
import
com.yottacode.pictogram.tools.Img
;
import
com.yottacode.pictogram.tools.PCBcontext
;
import
com.yottacode.pictogram.tts.TTSHelper
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
...
...
@@ -54,12 +58,11 @@ import java.util.Arrays;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.Locale
;
import
java.util.concurrent.ScheduledFuture
;
import
java.util.concurrent.ScheduledThreadPoolExecutor
;
import
java.util.concurrent.TimeUnit
;
public
class
PictogramActivity
extends
Activity
implements
iVocabularyListener
,
TextToSpeech
.
OnInitListener
{
public
class
PictogramActivity
extends
Activity
implements
iVocabularyListener
{
public
static
final
String
PREFS_NAME
=
"MyPrefsFile"
;
// Main layout for this activity
...
...
@@ -79,7 +82,7 @@ public class PictogramActivity extends Activity implements iVocabularyListener,
// Current picto category, if not null the corresponding category grid will be shown
Picto
currentCategory
;
// Object used for reading text
T
extToSpeech
tts
;
T
TSHelper
tts
;
// Element used for loading new pictos (while changing categories)
Vocabulary
vocabulary
;
// TODO describe this variable
...
...
@@ -99,11 +102,12 @@ public class PictogramActivity extends Activity implements iVocabularyListener,
int
maxColumns
,
maxRows
,
maxInTape
;
ScheduledThreadPoolExecutor
exec_mirror
=
null
;
private
boolean
feedback_read
;
private
boolean
feedback_highlight
;
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
if
(
PCBcontext
.
getPcbdb
().
getCurrentUser
().
is_picto_size_big
())
{
maxColumns
=
getResources
().
getInteger
(
R
.
integer
.
columns_big
);
maxRows
=
getResources
().
getInteger
(
R
.
integer
.
rows_big
);
...
...
@@ -141,7 +145,7 @@ public class PictogramActivity extends Activity implements iVocabularyListener,
}
exec_mirror
=
new
ScheduledThreadPoolExecutor
(
1
);
prev
=
picto
;
ScheduledFuture
s
=
exec_mirror
.
scheduleAtFixedRate
(
new
Runnable
()
{
exec_mirror
.
scheduleAtFixedRate
(
new
Runnable
()
{
int
repeating
=
0
;
@Override
public
void
run
()
{
...
...
@@ -185,7 +189,6 @@ public class PictogramActivity extends Activity implements iVocabularyListener,
this
.
pictoMainGridAdapter
=
new
PictoGridAdapter
(
new
LinkedList
<
Picto
>());
this
.
pictoMainGridView
=
(
GridView
)
this
.
findViewById
(
R
.
id
.
picto_main_grid_view
);
this
.
pictoMainGridView
.
setAdapter
(
this
.
pictoMainGridAdapter
);
this
.
pictoCategoryGridAdapter
=
new
PictoGridAdapter
(
new
LinkedList
<
Picto
>());
this
.
pictoCategoryGridView
=
(
GridView
)
this
.
findViewById
(
R
.
id
.
picto_category_grid_view
);
this
.
pictoCategoryGridView
.
setAdapter
(
this
.
pictoCategoryGridAdapter
);
...
...
@@ -193,25 +196,20 @@ public class PictogramActivity extends Activity implements iVocabularyListener,
this
.
pictoMainGridView
.
setNumColumns
(
this
.
maxColumns
);
this
.
pictoCategoryGridView
.
setNumColumns
(
this
.
maxColumns
);
// tts = new TextToSpeech(this, this, "IVONA Text-to-Speech HQ");
tts
=
new
TextToSpeech
(
this
,
this
);
tts
.
setOnUtteranceProgressListener
(
new
OnTTSEndListener
());
startTTS
();
this
.
tapeGridView
.
setOnDragListener
(
new
OnPictoDragListener
());
this
.
tapeGridView
.
setOnItem
LongClickListener
(
new
AdapterView
.
OnItemLong
ClickListener
()
{
this
.
tapeGridView
.
setOnItem
ClickListener
(
new
AdapterView
.
OnItem
ClickListener
()
{
@Override
public
boolean
onItemLong
Click
(
AdapterView
<?>
parent
,
View
view
,
int
position
,
long
id
)
{
public
void
onItem
Click
(
AdapterView
<?>
parent
,
View
view
,
int
position
,
long
id
)
{
Log
.
i
(
this
.
getClass
().
getCanonicalName
(),
" Delete item "
+
position
+
"("
+
PictogramActivity
.
this
.
tapeAdapter
.
getItem
(
position
).
get_translation
()+
")"
);
PCBcontext
.
getActionLog
().
log
(
new
TalkAction
(
TalkAction
.
DELETE
,
PictogramActivity
.
this
.
tapeAdapter
.
getItem
(
position
)));
PictogramActivity
.
this
.
tapeAdapter
.
deleteItem
(
position
);
PictogramActivity
.
this
.
tapeAdapter
.
notifyDataSetChanged
();
return
true
;
}
});
Log
.
e
(
this
.
getClass
().
getCanonicalName
(),
this
.
tapeGridView
.
isClickable
()+
" "
+
this
.
tapeGridView
.
isLongClickable
()+
":"
+
this
.
tapeGridView
.
getOnItemLongClickListener
());
this
.
pictoMainGridView
.
setOnDragListener
(
new
OnPictoDragListener
());
this
.
pictoCategoryGridView
.
setOnDragListener
(
new
OnPictoDragListener
());
...
...
@@ -232,7 +230,6 @@ public class PictogramActivity extends Activity implements iVocabularyListener,
int
res_id
=
PCBcontext
.
getPcbdb
().
getCurrentUser
().
alter_mirror_mode
()==
true
?
R
.
string
.
mirror_mode_on
:
R
.
string
.
mirror_mode_off
;
Toast
.
makeText
(
PictogramActivity
.
this
,
res_id
,
Toast
.
LENGTH_SHORT
).
show
();
}
return
true
;
}
});
...
...
@@ -248,14 +245,90 @@ public class PictogramActivity extends Activity implements iVocabularyListener,
}
else
{
this
.
showPictoMainGridView
();
}
setFeedback
(
new
View
[]
{
deleteButton
,
ttsButton
,
this
.
showPictoCategoriesViewButton
,
this
.
pictoCategoryGridView
,
this
.
pictoMainGridView
});
}
private
void
setFeedback
(
View
views
[])
{
boolean
vibration
=
PCBcontext
.
getPcbdb
().
getCurrentUser
().
input_feedback_on
(
User
.
JSON_STUDENT_INPUT_FEEDBACK
.
VIBRATION
);
boolean
click
=
PCBcontext
.
getPcbdb
().
getCurrentUser
().
input_feedback_on
(
User
.
JSON_STUDENT_INPUT_FEEDBACK
.
BEEP
);
this
.
feedback_read
=
PCBcontext
.
getPcbdb
().
getCurrentUser
().
input_feedback_on
(
User
.
JSON_STUDENT_INPUT_FEEDBACK
.
READ
);
this
.
feedback_highlight
=
PCBcontext
.
getPcbdb
().
getCurrentUser
().
input_feedback_on
(
User
.
JSON_STUDENT_INPUT_FEEDBACK
.
HIGHLIGHT
);
Log
.
i
(
this
.
getClass
().
getCanonicalName
(),
"Feedback:"
+
" vibration:"
+
vibration
+
" Beep:"
+
click
+
" Read:"
+
feedback_read
+
" Highlight:"
+
feedback_highlight
);
ArrayList
<
View
.
OnTouchListener
>
touchListeners
=
new
ArrayList
<>();
if
(
vibration
)
touchListeners
.
add
(
new
View
.
OnTouchListener
()
{
@Override
public
boolean
onTouch
(
View
v
,
MotionEvent
event
)
{
v
.
performHapticFeedback
(
HapticFeedbackConstants
.
LONG_PRESS
,
HapticFeedbackConstants
.
FLAG_IGNORE_GLOBAL_SETTING
);
return
false
;
}
});
if
(
click
)
touchListeners
.
add
(
new
View
.
OnTouchListener
()
{
@Override
public
boolean
onTouch
(
View
v
,
MotionEvent
event
)
{
try
{
Uri
notification
=
RingtoneManager
.
getDefaultUri
(
RingtoneManager
.
TYPE_NOTIFICATION
);
Ringtone
r
=
RingtoneManager
.
getRingtone
(
getApplicationContext
(),
notification
);
r
.
play
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
false
;
}
});
for
(
View
.
OnTouchListener
touchListener:
touchListeners
)
for
(
View
view
:
views
)
view
.
setOnTouchListener
(
touchListener
);
}
@Override
public
void
onInit
(
int
status
)
{
if
(
status
==
TextToSpeech
.
SUCCESS
)
{
tts
.
setLanguage
(
Locale
.
getDefault
());
}
public
void
startTTS
()
{
String
engine
=
PCBcontext
.
getPcbdb
().
getCurrentUser
().
get_tts_engine_sup
()==
null
?
getString
(
R
.
string
.
default_tts_engine
)
:
PCBcontext
.
getPcbdb
().
getCurrentUser
().
get_tts_engine_sup
();
String
tts_voice
=
PCBcontext
.
getPcbdb
().
getCurrentUser
().
get_json_attr
(
"tts voice"
)==
null
?
PCBcontext
.
getPcbdb
().
getCurrentUser
().
get_gender_stu
().
charAt
(
0
)==
'M'
?
getString
(
R
.
string
.
default_tts_voice_male
)
:
getString
(
R
.
string
.
default_tts_voice_female
)
:
PCBcontext
.
getPcbdb
().
getCurrentUser
().
get_json_attr
(
"tts voice"
);
tts
=
new
TTSHelper
(
this
,
engine
,
new
Locale
(
PCBcontext
.
getPcbdb
().
getCurrentUser
().
get_lang_stu
()),
tts_voice
);
tts
.
setOnUtteranceProgressListener
(
new
UtteranceProgressListener
()
{
@Override
public
void
onStart
(
String
utteranceId
)
{
Log
.
d
(
LOG_TAG
,
"TTS tape read start"
+
utteranceId
);
}
@Override
public
void
onDone
(
String
utteranceId
)
{
Log
.
d
(
LOG_TAG
,
"TTS tape read end"
);
this
.
finishSpeech
();
}
@Override
public
void
onError
(
String
utteranceId
)
{
Log
.
d
(
LOG_TAG
,
"TTS tape read error"
);
this
.
finishSpeech
();
}
private
void
finishSpeech
()
{
runOnUiThread
(
new
Runnable
()
{
@Override
public
void
run
()
{
if
(
tapeAdapter
.
play
())
{
tapeAdapter
.
endPlay
();
tapeAdapter
.
notifyDataSetChanged
();
showPictoMainGridView
();
}
}
});
}
});
}
@Override
protected
void
onStop
()
{
...
...
@@ -267,7 +340,7 @@ public class PictogramActivity extends Activity implements iVocabularyListener,
protected
void
onDestroy
()
{
super
.
onDestroy
();
if
(
tts
!=
null
){
tts
.
shutdown
();
tts
.
destroy
();
}
}
...
...
@@ -603,16 +676,12 @@ public class PictogramActivity extends Activity implements iVocabularyListener,
// if the view is the tape_grid_view, we accept the drag item
// Destino tape_grid_view y origen panel_grid_view
if
(
v
==
findViewById
(
R
.
id
.
tape_grid_view
)
&&
viewgroup
==
findViewById
(
R
.
id
.
picto_category_grid_view
))
{
Log
.
d
(
"Drag:"
,
"Posición: "
+
position
);
Picto
p
=
pictoCategoryGridAdapter
.
getItem
(
position
);
if
(!
p
.
is_category
())
{
currentCategory
=
null
;
tapeAdapter
.
addItem
(
p
);
tapeAdapter
.
notifyDataSetChanged
();
showPictoMainGridView
();
PCBcontext
.
getActionLog
().
log
(
new
TalkAction
(
TalkAction
.
ADD
,
p
));
}
if
(
v
==
findViewById
(
R
.
id
.
tape_grid_view
)
&&
(
viewgroup
==
findViewById
(
R
.
id
.
picto_category_grid_view
)
||
viewgroup
==
findViewById
(
R
.
id
.
picto_main_grid_view
)))
{
Picto
p
=
viewgroup
==
findViewById
(
R
.
id
.
picto_category_grid_view
)
?
pictoCategoryGridAdapter
.
getItem
(
position
)
:
pictoMainGridAdapter
.
getItem
(
position
);
Log
.
d
(
"Drag:"
,
"Posición: "
+
position
+
" es categoria:"
+
p
.
is_category
());
if
(!
p
.
is_category
()
)
addPictoWord
(
p
);
}
// Si el destino es el panel y el origen la cinta de frase
...
...
@@ -644,17 +713,14 @@ public class PictogramActivity extends Activity implements iVocabularyListener,
@Override
public
void
onItemClick
(
AdapterView
<?>
parent
,
View
view
,
int
position
,
long
id
)
{
Picto
p
=
getCurrentPictoGridAdapter
().
getItem
(
position
);
p
.
set_mirror
(
false
);
if
(
p
!=
null
&&
!
p
.
is_invisible
()
&&
p
.
is_enabled
())
{
Log
.
d
(
LOG_TAG
,
"Clic en picto: "
+
p
.
toString
());
//Log.d(LOG_TAG, "STATUS: " + p.get_status());
//QUITAR PARA QUE HABLE pictoCategoryGridAdapter.ttsPicto(p, tts);
if
(
PictogramActivity
.
this
.
feedback_read
)
PictogramActivity
.
this
.
tts
.
play
(
p
.
get_translation
());
// If is not the blank picto, it isn't invisible or disabled
if
(
p
.
get_id
()
!=
0
&&
!
p
.
get_status
().
equalsIgnoreCase
(
"invisible"
)
&&
!
p
.
get_status
().
equalsIgnoreCase
(
"disabled"
))
{
if
(
p
!=
null
&&
p
.
get_id
()
!=
0
&&
!
p
.
is_invisible
()
&&
p
.
is_enabled
())
{
Log
.
d
(
LOG_TAG
,
"Clic en picto: "
+
p
.
toString
());
LinkedList
<
Picto
>
ll
=
sort
(
PCBcontext
.
getVocabulary
().
next
(
p
));
//LinkedList<Picto> ll = vocabulary.next(p);
...
...
@@ -668,16 +734,39 @@ public class PictogramActivity extends Activity implements iVocabularyListener,
hidePictoMainGridView
();
}
else
if
(
tapeAdapter
.
getCount
()
<
PictogramActivity
.
this
.
maxInTape
)
{
currentCategory
=
null
;
tapeAdapter
.
addItem
(
p
);
tapeAdapter
.
notifyDataSetChanged
();
PCBcontext
.
getActionLog
().
log
(
new
TalkAction
(
TalkAction
.
ADD
,
p
));
showPictoMainGridView
();
addPictoWord
(
p
);
}
}
}
}
}
private
void
addPictoWord
(
Picto
p
)
{
currentCategory
=
null
;
tapeAdapter
.
addItem
(
p
);
tapeAdapter
.
notifyDataSetChanged
();
showPictoMainGridView
();
PCBcontext
.
getActionLog
().
log
(
new
TalkAction
(
TalkAction
.
ADD
,
p
));
if
(
PictogramActivity
.
this
.
feedback_read
)
PictogramActivity
.
this
.
tts
.
play
(
p
.
get_translation
());
if
(
PictogramActivity
.
this
.
feedback_highlight
)
execHighligthFeeback
(
p
);
}
private
void
execHighligthFeeback
(
final
Picto
picto
)
{
final
ScheduledThreadPoolExecutor
exec_HighligthFeeback
=
new
ScheduledThreadPoolExecutor
(
1
);
picto
.
set_mirror
(
true
);
exec_HighligthFeeback
.
scheduleAtFixedRate
(
new
Runnable
()
{
int
repeating
=
0
;
@Override
public
void
run
()
{
refresh
();
if
(
repeating
++==
5
)
{
picto
.
set_mirror
(
false
);
if
(
exec_mirror
!=
null
)
{
exec_mirror
.
shutdown
();
exec_mirror
=
null
;
}
}
}
},
0
,
500
,
TimeUnit
.
MILLISECONDS
);
}
/**
* Class used for long pressing on pictos (start drag)
...
...
@@ -741,39 +830,6 @@ public class PictogramActivity extends Activity implements iVocabularyListener,
}
}
/**
* Class for listening the TTS start/end/error events.
* It clears the tape and shows the category grid when the speech has finished or errored.
*/
private
class
OnTTSEndListener
extends
UtteranceProgressListener
{
@Override
public
void
onStart
(
String
utteranceId
)
{
Log
.
d
(
LOG_TAG
,
"TTS tape read start"
);
}
@Override
public
void
onDone
(
String
utteranceId
)
{
Log
.
d
(
LOG_TAG
,
"TTS tape read end"
);
this
.
finishSpeech
();
}
@Override
public
void
onError
(
String
utteranceId
)
{
Log
.
d
(
LOG_TAG
,
"TTS tape read error"
);
this
.
finishSpeech
();
}
private
void
finishSpeech
()
{
runOnUiThread
(
new
Runnable
()
{
@Override
public
void
run
()
{
tapeAdapter
.
deleteAll
();
tapeAdapter
.
notifyDataSetChanged
();
showPictoMainGridView
();
}
});
}
}
/**
* Class used for canceling a list of pictos on the tape
...
...
android/Pictogram/tabletlibrary/src/main/java/com/yottacode/pictogram/tabletlibrary/gui/SerialActivity.java
View file @
9a26e5af
...
...
@@ -4,7 +4,6 @@ import android.app.Activity;
import
android.content.Intent
;
import
android.content.SharedPreferences
;
import
android.os.Bundle
;
import
android.util.Log
;
import
android.view.View
;
import
android.view.View.OnClickListener
;
import
android.view.Window
;
...
...
@@ -70,7 +69,6 @@ public class SerialActivity extends Activity {
// Escribo el último valor indicado de username
mSerialViewMail
.
setText
(
username
);
Log
.
e
(
this
.
getClass
().
getCanonicalName
(),
"resetPrevUser:"
+
getIntent
().
getBooleanExtra
(
"resetPrevUser"
,
true
));
if
(!
username
.
equals
(
""
)
&&
!
password
.
equals
(
""
)
&&
!
getIntent
().
getBooleanExtra
(
"resetPrevUser"
,
true
))
new
UserLogin
().
login
(
username
,
password
,
SerialActivity
.
this
,
PictogramActivity
.
class
,
LoginActivity
.
class
);
Button
mEntrarButton
=
(
Button
)
findViewById
(
R
.
id
.
entrar_button
);
...
...
android/Pictogram/tabletlibrary/src/main/java/com/yottacode/pictogram/tabletlibrary/gui/TapeAdapter.java
View file @
9a26e5af
...
...
@@ -3,14 +3,13 @@ package com.yottacode.pictogram.tabletlibrary.gui;
import
android.annotation.TargetApi
;
import
android.os.Build
;
import
android.os.Bundle
;
import
android.speech.tts.TextToSpeech
;
import
android.util.Log
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.BaseAdapter
;
import
com.yottacode.pictogram.dao.Picto
;
import
com.yottacode.pictogram.tts.TTSHelper
;
import
java.util.Iterator
;
import
java.util.LinkedList
;
...
...
@@ -19,6 +18,7 @@ public class TapeAdapter extends BaseAdapter {
//private Context mContext;
private
LinkedList
<
Picto
>
pictoLinkedList
;
private
boolean
play
=
false
;
public
TapeAdapter
(){
//mContext = c;
...
...
@@ -63,8 +63,9 @@ public class TapeAdapter extends BaseAdapter {
}
// ELIMINAR TODOS LOS ITEMS DEL ADAPTADOR
public
void
deleteAll
(){
public
void
endPlay
(){
pictoLinkedList
.
clear
();
play
=
false
;
}
// DEVUELVE TODOS LOS ELEMENTOS
...
...
@@ -98,16 +99,17 @@ public class TapeAdapter extends BaseAdapter {
return
PictoItemViewGenerator
.
getPictoView
(
this
.
pictoLinkedList
.
get
(
position
),
convertView
,
parent
);
parent
,
true
);
}
@TargetApi
(
Build
.
VERSION_CODES
.
LOLLIPOP
)
public
void
ttsAllNew
(
TextToSpeech
tts
)
{
public
void
ttsAllNew
(
TTSHelper
tts
)
{
this
.
play
=
true
;
String
input
=
getAllAsString
();
Bundle
params
=
new
Bundle
();
params
.
putString
(
TextToSpeech
.
Engine
.
KEY_PARAM_VOLUME
,
"1"
);
params
.
putString
(
TextToSpeech
.
Engine
.
KEY_PARAM_UTTERANCE_ID
,
"TAPE_READ"
);
tts
.
speak
(
input
,
TextToSpeech
.
QUEUE_FLUSH
,
params
,
"TAPE_READ"
);
tts
.
play
(
input
);
}
public
boolean
play
()
{
return
this
.
play
;
}
}
android/Pictogram/tabletlibrary/src/main/res/drawable-hdpi/application_offline.png
View file @
9a26e5af
26.9 KB
|
W:
|
H:
4.83 KB
|
W:
|
H:
2-up
Swipe
Onion skin
android/Pictogram/tabletlibrary/src/main/res/drawable-hdpi/application_online.png
View file @
9a26e5af
14.6 KB
|
W:
|
H:
4.44 KB
|
W:
|
H:
2-up
Swipe
Onion skin
android/Pictogram/tabletlibrary/tabletlibrary.iml
View file @
9a26e5af
...
...
@@ -73,14 +73,6 @@
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/jni"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/rs"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/shaders"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/res"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/resources"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/assets"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/aidl"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/java"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/jni"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/rs"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/shaders"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/res"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/resources"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/assets"
type=
"java-test-resource"
/>
...
...
@@ -89,6 +81,14 @@
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/jni"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/rs"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/shaders"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/res"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/resources"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/assets"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/aidl"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/java"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/jni"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/rs"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/shaders"
isTestSource=
"true"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/build/intermediates/annotations"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/build/intermediates/blame"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/build/intermediates/bundles"
/>
...
...
android/Pictogram/yotta_tablet/yotta_tablet.iml
View file @
9a26e5af
...
...
@@ -8,12 +8,12 @@
</facet>
<facet
type=
"android"
name=
"Android"
>
<configuration>
<option
name=
"SELECTED_BUILD_VARIANT"
value=
"
Pre
FlavorDebug"
/>
<option
name=
"SELECTED_BUILD_VARIANT"
value=
"
CI
FlavorDebug"
/>
<option
name=
"SELECTED_TEST_ARTIFACT"
value=
"_android_test_"
/>
<option
name=
"ASSEMBLE_TASK_NAME"
value=
"assemble
Pre
FlavorDebug"
/>
<option
name=
"COMPILE_JAVA_TASK_NAME"
value=
"compile
Pre
FlavorDebugSources"
/>
<option
name=
"ASSEMBLE_TASK_NAME"
value=
"assemble
CI
FlavorDebug"
/>
<option
name=
"COMPILE_JAVA_TASK_NAME"
value=
"compile
CI
FlavorDebugSources"
/>
<afterSyncTasks>
<task>
generate
Pre
FlavorDebugSources
</task>
<task>
generate
CI
FlavorDebugSources
</task>
</afterSyncTasks>
<option
name=
"ALLOW_USER_CONFIGURATION"
value=
"false"
/>
<option
name=
"MANIFEST_FILE_RELATIVE_PATH"
value=
"/src/main/AndroidManifest.xml"
/>
...
...
@@ -24,64 +24,64 @@
</facet>
</component>
<component
name=
"NewModuleRootManager"
LANGUAGE_LEVEL=
"JDK_1_7"
inherit-compiler-output=
"false"
>
<output
url=
"file://$MODULE_DIR$/build/intermediates/classes/
Pre
Flavor/debug"
/>
<output-test
url=
"file://$MODULE_DIR$/build/intermediates/classes/test/
Pre
Flavor/debug"
/>
<output
url=
"file://$MODULE_DIR$/build/intermediates/classes/
CI
Flavor/debug"
/>
<output-test
url=
"file://$MODULE_DIR$/build/intermediates/classes/test/
CI
Flavor/debug"
/>
<exclude-output
/>
<content
url=
"file://$MODULE_DIR$"
>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/source/r/
Pre
Flavor/debug"
isTestSource=
"false"
generated=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/source/aidl/
Pre
Flavor/debug"
isTestSource=
"false"
generated=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/source/buildConfig/
Pre
Flavor/debug"
isTestSource=
"false"
generated=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/source/rs/
Pre
Flavor/debug"
isTestSource=
"false"
generated=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/source/apt/
Pre
Flavor/debug"
isTestSource=
"false"
generated=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/res/rs/
Pre
Flavor/debug"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/res/resValues/
Pre
Flavor/debug"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
Pre
FlavorDebug/res"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
Pre
FlavorDebug/resources"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
Pre
FlavorDebug/assets"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
Pre
FlavorDebug/aidl"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
Pre
FlavorDebug/java"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
Pre
FlavorDebug/jni"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
Pre
FlavorDebug/rs"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
Pre
FlavorDebug/shaders"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/source/r/androidTest/
Pre
Flavor/debug"
isTestSource=
"true"
generated=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/source/aidl/androidTest/
Pre
Flavor/debug"
isTestSource=
"true"
generated=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/
Pre
Flavor/debug"
isTestSource=
"true"
generated=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/source/rs/androidTest/
Pre
Flavor/debug"
isTestSource=
"true"
generated=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/source/apt/androidTest/
Pre
Flavor/debug"
isTestSource=
"true"
generated=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/res/rs/androidTest/
Pre
Flavor/debug"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/res/resValues/androidTest/
Pre
Flavor/debug"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test
Pre
FlavorDebug/res"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test
Pre
FlavorDebug/resources"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test
Pre
FlavorDebug/assets"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test
Pre
FlavorDebug/aidl"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test
Pre
FlavorDebug/java"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test
Pre
FlavorDebug/jni"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test
Pre
FlavorDebug/rs"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test
Pre
FlavorDebug/shaders"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
Pre
Flavor/res"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
Pre
Flavor/resources"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
Pre
Flavor/assets"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
Pre
Flavor/aidl"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
Pre
Flavor/java"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
Pre
Flavor/jni"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
Pre
Flavor/rs"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
Pre
Flavor/shaders"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
androidTestPre
Flavor/res"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
androidTestPre
Flavor/resources"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
androidTestPre
Flavor/assets"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
androidTestPre
Flavor/aidl"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
androidTestPre
Flavor/java"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
androidTestPre
Flavor/jni"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
androidTestPre
Flavor/rs"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
androidTestPre
Flavor/shaders"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
testPre
Flavor/res"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
testPre
Flavor/resources"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
testPre
Flavor/assets"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
testPre
Flavor/aidl"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
testPre
Flavor/java"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
testPre
Flavor/jni"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
testPre
Flavor/rs"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
testPre
Flavor/shaders"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/source/r/
CI
Flavor/debug"
isTestSource=
"false"
generated=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/source/aidl/
CI
Flavor/debug"
isTestSource=
"false"
generated=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/source/buildConfig/
CI
Flavor/debug"
isTestSource=
"false"
generated=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/source/rs/
CI
Flavor/debug"
isTestSource=
"false"
generated=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/source/apt/
CI
Flavor/debug"
isTestSource=
"false"
generated=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/res/rs/
CI
Flavor/debug"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/res/resValues/
CI
Flavor/debug"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
CI
FlavorDebug/res"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
CI
FlavorDebug/resources"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
CI
FlavorDebug/assets"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
CI
FlavorDebug/aidl"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
CI
FlavorDebug/java"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
CI
FlavorDebug/jni"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
CI
FlavorDebug/rs"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
CI
FlavorDebug/shaders"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/source/r/androidTest/
CI
Flavor/debug"
isTestSource=
"true"
generated=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/source/aidl/androidTest/
CI
Flavor/debug"
isTestSource=
"true"
generated=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/
CI
Flavor/debug"
isTestSource=
"true"
generated=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/source/rs/androidTest/
CI
Flavor/debug"
isTestSource=
"true"
generated=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/source/apt/androidTest/
CI
Flavor/debug"
isTestSource=
"true"
generated=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/res/rs/androidTest/
CI
Flavor/debug"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/build/generated/res/resValues/androidTest/
CI
Flavor/debug"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test
CI
FlavorDebug/res"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test
CI
FlavorDebug/resources"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test
CI
FlavorDebug/assets"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test
CI
FlavorDebug/aidl"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test
CI
FlavorDebug/java"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test
CI
FlavorDebug/jni"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test
CI
FlavorDebug/rs"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test
CI
FlavorDebug/shaders"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
CI
Flavor/res"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
CI
Flavor/resources"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
CI
Flavor/assets"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
CI
Flavor/aidl"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
CI
Flavor/java"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
CI
Flavor/jni"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
CI
Flavor/rs"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
CI
Flavor/shaders"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
testCI
Flavor/res"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
testCI
Flavor/resources"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
testCI
Flavor/assets"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
testCI
Flavor/aidl"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
testCI
Flavor/java"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
testCI
Flavor/jni"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
testCI
Flavor/rs"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
testCI
Flavor/shaders"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
androidTestCI
Flavor/res"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
androidTestCI
Flavor/resources"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
androidTestCI
Flavor/assets"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
androidTestCI
Flavor/aidl"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
androidTestCI
Flavor/java"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
androidTestCI
Flavor/jni"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
androidTestCI
Flavor/rs"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/
androidTestCI
Flavor/shaders"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/debug/res"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/debug/resources"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/debug/assets"
type=
"java-resource"
/>
...
...
@@ -106,14 +106,6 @@
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/jni"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/rs"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/shaders"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/res"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/resources"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/assets"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/aidl"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/java"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/jni"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/rs"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/shaders"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/res"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/resources"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/assets"
type=
"java-test-resource"
/>
...
...
@@ -122,6 +114,14 @@
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/jni"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/rs"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/androidTest/shaders"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/res"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/resources"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/assets"
type=
"java-test-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/aidl"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/java"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/jni"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/rs"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/shaders"
isTestSource=
"true"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/build/intermediates/assets"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/build/intermediates/blame"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/build/intermediates/builds"
/>
...
...
@@ -145,7 +145,6 @@
<excludeFolder
url=
"file://$MODULE_DIR$/build/intermediates/instant-run-support"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/build/intermediates/jniLibs"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/build/intermediates/manifests"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/build/intermediates/pre-dexed"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/build/intermediates/reload-dex"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/build/intermediates/res"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/build/intermediates/restart-dex"
/>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment