[Android Apps and Games] remi0s:
thank you for ur answer, i appreciate it. My problem is the extreme size ( in site it says you will need 100gb for checkout and 150gb extra for building, in total the least 250gb) and my slow internet connection. I will find the way tho, maybe using an external hard drive.

One last question thats more spesific and has reference from your code:

I need to take timestamps everytime a key is pressed or released. I managed to do it by adding the bold code bellow at LatinIME.java.

@Override
public void onPressKey(final int primaryCode, final int repeatCount,
final boolean isSinglePointer) {
[B] sessionData.DownTime.add(Calendar.getInstance().getTime());
Log.d("sessionData", "Key pressed: "+sessionData.DownTime.get((sessionData.DownTime.size()-1)));
if(primaryCode==Constants.CODE_DELETE){
sessionData.NumDels+=1;
Log.d("sessionData", "Backspace pressed: "+sessionData.NumDels);
}[/B]
mKeyboardSwitcher.onPressKey(primaryCode, isSinglePointer, getCurrentAutoCapsState(),
getCurrentRecapitalizeState());
hapticAndAudioFeedback(primaryCode, repeatCount);
}

// Callback of the {@link KeyboardActionListener}. This is called when a key is released;
// press matching call is {@link #onPressKey(int,int,boolean)} above.
@Override
public void onReleaseKey(final int primaryCode, final boolean withSliding) {
[B] sessionData.UpTime.add(Calendar.getInstance().getTime());
Log.d("sessionData", "Key released: "+sessionData.UpTime.get((sessionData.UpTime.size()-1)));[/B]
mKeyboardSwitcher.onReleaseKey(primaryCode, withSliding, getCurrentAutoCapsState(),
getCurrentRecapitalizeState());
}

It works fine except when a key is long pressed. Whenever it is longpressed it doesnt return an onReleaseKey and my log data look like that

04-25 16:29:08.284 30499-30499/typeofmood.ime.latin D/sessionData: Key pressed: Wed Apr 25 16:29:08 GMT+00:00 2018

//[after pressing key H]

04-25 16:29:08.373 30499-30499/typeofmood.ime.latin D/sessionData: Key released: Wed Apr 25 16:29:08 GMT+00:00 2018

// [after realeasing key H]

04-25 16:29:11.028 30499-30499/typeofmood.ime.latin D/sessionData: Key pressed: Wed Apr 25 16:29:11 GMT+00:00

//[ after long press key e->3]

//[..... here missing the release for longpress key e]

04-25 16:30:43.739 30499-30499/typeofmood.ime.latin D/sessionData: Key pressed: Wed Apr 25 16:30:43 GMT+00:00 2018

//[after pressing key o]

04-25 16:30:43.812 30499-30499/typeofmood.ime.latin D/sessionData: Key released: Wed Apr 25 16:30:43 GMT+00:00

//[after releasing key o]

i need to have release time as well for longpressed keys, but i didnt find how to apply it. Do you have anyidea?

Thank you again for your time, you are very kind!

Edit:

i found the answer my self.

in MoreKeysKeyboardView.java had to add the bolded code in order for it to work.

protected void onKeyInput(final Key key, final int x, final int y) {
final int code = key.getCode();
if (code == Constants.CODE_OUTPUT_TEXT) {
mListener.onTextInput(mCurrentKey.getOutputText());
} else if (code != Constants.CODE_UNSPECIFIED) {
if (getKeyboard().hasProximityCharsCorrection(code)) {
mListener.onCodeInput(code, x, y, false /* isKeyRepeat */);
} else {
mListener.onCodeInput(code, Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE,
false /* isKeyRepeat */);
[B]mListener.onReleaseKey(code,false);[/B]
}
}
}