Moddat Hero/Legend/Desire tangentbord v27

Diskussion i 'Applikationsutveckling' startad av jonasl, 28 januari 2010.

  1. mixxno

    mixxno Adult Droid Medlem

    Blev medlem:
    11 augusti 2009
    Inlägg:
    829
    Mottagna gillanden:
    62
    Operatör:
    Vimla
    Telefon:
    Pixel 4a

    MINA ENHETER

    Operatör:
    Vimla
    Telefon:
    Pixel 4a
    ROM:
    Android 11
    Gjorde jag rätt när jag la in den nya? Jag installerade med Astro och fick frågan om jag ville uppdatera den gamla, vilket jag gjorde. Hur gjorde ni som fått det att funka?
     
  2. Frojd

    Frojd Adult Droid Medlem

    Blev medlem:
    5 juli 2009
    Inlägg:
    551
    Mottagna gillanden:
    7

    MINA ENHETER

    Jag tog bort den gamla först.
     
  3. jonasl

    jonasl Youth Droid Medlem

    Blev medlem:
    9 november 2009
    Inlägg:
    158
    Mottagna gillanden:
    0

    MINA ENHETER

    Jag har kikat på din logg och vet vad som är fel. Håll utkik efter en ny testversion om ett tag. Problemet är en klass som heter BackupManager som inte finns i din telefon. Oavsett hur du installerar så kommer det bli samma sak. Borde vara lösbart, men vi kommer nog få iterera ett par ggr. Risken är stor att någon mer klass saknas men det vet vi inte förrän det kraschar i nästa version :-)
     
  4. jonasl

    jonasl Youth Droid Medlem

    Blev medlem:
    9 november 2009
    Inlägg:
    158
    Mottagna gillanden:
    0

    MINA ENHETER

    @mixxno och andra med 1.5

    Testa denna. Jag har strippat bort referenserna till den systemklass som orsakade din FC. Kraschen skedde riktigt tidigt i initfasen, så det finns rätt många till som potentiellt kan ställa till problem. Det är för 2.1 trots allt, men med er hjälp så tror jag att jag kan få till stöd för 1.5 :)

    Enklast är om du avinstallerar nuvarande version först, men det går även att installera över med t.ex abd install -r .
     
  5. mixxno

    mixxno Adult Droid Medlem

    Blev medlem:
    11 augusti 2009
    Inlägg:
    829
    Mottagna gillanden:
    62
    Operatör:
    Vimla
    Telefon:
    Pixel 4a

    MINA ENHETER

    Operatör:
    Vimla
    Telefon:
    Pixel 4a
    ROM:
    Android 11
    Oj, det var snabbt. Ska testa genast, kanon! Imponerande hur man kan dra slutsatser av en sådan logg... Grekiska? Jag kunde inte det iaf :-).
     
  6. mixxno

    mixxno Adult Droid Medlem

    Blev medlem:
    11 augusti 2009
    Inlägg:
    829
    Mottagna gillanden:
    62
    Operatör:
    Vimla
    Telefon:
    Pixel 4a

    MINA ENHETER

    Operatör:
    Vimla
    Telefon:
    Pixel 4a
    ROM:
    Android 11
  7. jonasl

    jonasl Youth Droid Medlem

    Blev medlem:
    9 november 2009
    Inlägg:
    158
    Mottagna gillanden:
    0

    MINA ENHETER

    Det som är intressant i en sådan logg är den sk. Exception som orsakar krashen med tillhörande StackTrace (som talar om hur koden exekverat för att komma till stället där det skedde). I ditt fall så står det i klartext vad som hände:

    Kod:
    #
    I/ActivityManager( 1070): Start proc com.htc.android.htcime for service com.htc.android.htcime/.HTCIMEService: pid=5041 uid=10089 gids={}
    E/dalvikvm( 5041): Could not find class 'android.backup.BackupManager', referenced from method com.htc.android.htcime.HTCIMEService.execOnceAtBoot
    #
    W/dalvikvm( 5041): VFY: unable to resolve new-instance 21 (Landroid/backup/BackupManager;) in Lcom/htc/android/htcime/HTCIMEService;
    ....
    W/dalvikvm( 5041): VFY:  rejected Lcom/htc/android/htcime/HTCIMEService;.execOnceAtBoot ()V
    
    Det säger mig att klassen BackupManager inte kan hittas och att det var i metoden void execOnceAtBoot() som den söktes. Jag sökte upp alla referenser till klassen och kommenterade bort dem (#):

    Kod:
    #jonasl
    #    new-instance v0, Landroid/backup/BackupManager;
    
        invoke-virtual {p0}, Lcom/htc/android/htcime/HTCIMEService;->getBaseContext()Landroid/content/Context;
    
        move-result-object v1
    
    #jonasl
    #    invoke-direct {v0, v1}, Landroid/backup/BackupManager;-><init>(Landroid/content/Context;)V
    
    #jonasl
    #    sput-object v0, Lcom/htc/android/htcime/HTCIMMData;->sBackupManager:Landroid/backup/BackupManager;
    jonasl kommentaren lägger jag framför alla mina ändringar så man snabbt kan se vad jag gjort genom att söka på jonasl i alla assembler filer.

    BackupManager finns i nyare Android och backar upp saker till Googles servrar. Tanken är att om man skaffar ny likadan mobil (garanti etc) så skall man via sitt Google konto direkt få tillbaka alla inställningar. Detta funkar bara för applikationer som ligger i /system. Alltså har bara root-folk som lägger apkn i /system manuellt nytta av detta och enbart HTC's inställningar backas så det är ingen större förlust att skippa den. Din senaste FC är ny, det går framåt :)
    Den här gången är det skalning av Bitmap till bakgrunden av tangentbordet som går fel:

    Kod:
    unable to resolve direct method 204: Landroid/graphics/drawable/BitmapDrawable;.<init> (Landroid/content/res/Resources;Landroid/graphics/Bitmap;)V
    Det betyder att den överlagringen inte finns i 1.5. Ska se om jag kan hitta en som gör det som kan ge liknande funktionalitet. Kommer närmare för varje FC så håll utkik efter nya versioner :)
     
  8. mixxno

    mixxno Adult Droid Medlem

    Blev medlem:
    11 augusti 2009
    Inlägg:
    829
    Mottagna gillanden:
    62
    Operatör:
    Vimla
    Telefon:
    Pixel 4a

    MINA ENHETER

    Operatör:
    Vimla
    Telefon:
    Pixel 4a
    ROM:
    Android 11
    Vad kul att lära sig lite om hur du arbetar med problemen.
     
  9. matokt

    matokt Teen Droid Medlem

    Blev medlem:
    16 oktober 2009
    Inlägg:
    455
    Mottagna gillanden:
    26

    MINA ENHETER

    Funkar detta på Hero med 2.1? najs med smileysknapp
     
  10. jonasl

    jonasl Youth Droid Medlem

    Blev medlem:
    9 november 2009
    Inlägg:
    158
    Mottagna gillanden:
    0

    MINA ENHETER

    Så där. Det spökade i min kod. Skalningen av bakgrunden till min egna "candidates bar" som skjuter upp tangentbordet på så inte texten man editerar skyms av ordlistan var inte 1.5 kompatibel.

    v18b3 lowres

    Så här blev det istället: (forumet strippar typningen på Class och Constructor...)

    Kod:
    // Use reflection so we can support 1.5 that lacks the proper ctor
    BitmapDrawable bmd = null;
    try {
         Class<BitmapDrawable> c = BitmapDrawable.class;
         Constructor<BitmapDrawable> ctor = c.getDeclaredConstructor(Resources.class, Bitmap.class);
          bmd = ctor.newInstance(service.getResources(), bitmapResized);
    }
    catch(Exception ex) {
      // We are probably on Android 1.5 so it's safe to use this deprecated ctor
      bmd = new BitmapDrawable(bitmapResized);
    }
    *Borde* funka :P Sista försöket för ikväll iaf.

    Hires funkar inte. Dock så borde de senaste lowres betorna göra det. Lite knepigare att installera på Hero dock eftersom tangentbordet finns där från början. Du måste manuellt lägga in apk'n i /system/app (fimpa den befintliga). Dessutom så måste du ta bort referenser till HTC_IME från din packages.xml eftersom certificaten som HTC och jag kör med är olika. Tror filen heter /data/system/packages.xml men minns inte säkert. När du hittar den, radera allt som har med HTC_IME att göra och byt sedan ut apk'n i /system/app. Nandroid innan du meckar är ett hett tips.
     
  11. mixxno

    mixxno Adult Droid Medlem

    Blev medlem:
    11 augusti 2009
    Inlägg:
    829
    Mottagna gillanden:
    62
    Operatör:
    Vimla
    Telefon:
    Pixel 4a

    MINA ENHETER

    Operatör:
    Vimla
    Telefon:
    Pixel 4a
    ROM:
    Android 11
    Jag testar!
     
  12. mixxno

    mixxno Adult Droid Medlem

    Blev medlem:
    11 augusti 2009
    Inlägg:
    829
    Mottagna gillanden:
    62
    Operatör:
    Vimla
    Telefon:
    Pixel 4a

    MINA ENHETER

    Operatör:
    Vimla
    Telefon:
    Pixel 4a
    ROM:
    Android 11
    Nix, tyvärr!

    http://pastebin.com/Vw09XeYG

    Bra kämpat iaf. Dags för bingen då!

    W/dalvikvm(10516): VFY: unable to resolve new-instance 472 (Lcom/htc/android/htcime/voice/VoiceInput$IMERecognitionListener;) in Lcom/htc/android/htcime/voice/VoiceInput;

    Är det voice input som spökar nu då eller?
     
    Last edited: 25 mars 2010
  13. jonasl

    jonasl Youth Droid Medlem

    Blev medlem:
    9 november 2009
    Inlägg:
    158
    Mottagna gillanden:
    0

    MINA ENHETER

    Vi kom förbi de ställen som krånglat hittills iaf, men nu sprang vi på det jag var mest orolig för: Voice Input. Hade på känn att det skulle balla ur i 1.5.

    Kod:
    #
    Unable to resolve superclass of Lcom/htc/android/htcime/voice/VoiceInput$IMERecognitionListener; (122)
    #
    W/dalvikvm(10516): Link of class 'Lcom/htc/android/htcime/voice/VoiceInput$IMERecognitionListener;' failed
    #
    E/dalvikvm(10516): Could not find class 'com.htc.android.htcime.voice.VoiceInput$IMERecognitionListener', referenced from method com.htc.android.htcime.voice.VoiceInput.<init>
    Denna får jag fundera på ett tag...
     
  14. mixxno

    mixxno Adult Droid Medlem

    Blev medlem:
    11 augusti 2009
    Inlägg:
    829
    Mottagna gillanden:
    62
    Operatör:
    Vimla
    Telefon:
    Pixel 4a

    MINA ENHETER

    Operatör:
    Vimla
    Telefon:
    Pixel 4a
    ROM:
    Android 11
  15. Frojd

    Frojd Adult Droid Medlem

    Blev medlem:
    5 juli 2009
    Inlägg:
    551
    Mottagna gillanden:
    7

    MINA ENHETER

    Lite OT men: Hur funkar voice input i 1.6, jag har inte hittat hur man får igång det (alltså inte bara via tangentbordet utan överhuvudtaget)..? :S
     
  16. Frojd

    Frojd Adult Droid Medlem

    Blev medlem:
    5 juli 2009
    Inlägg:
    551
    Mottagna gillanden:
    7

    MINA ENHETER

    Vet du om att det går att dra "under knapparna"? Dvs. du kan hålla in en knapp och sen dra med fingret nedanför alternativen som dyker upp så markeras det som är ovanför ditt finger. För mig funkar det iaf så :)
     
  17. Tisu

    Tisu Adult Droid Medlem

    Blev medlem:
    4 mars 2010
    Inlägg:
    830
    Mottagna gillanden:
    24

    MINA ENHETER

    Jag tackar för det tipset, det visste jag inte ;)
     
  18. jonasl

    jonasl Youth Droid Medlem

    Blev medlem:
    9 november 2009
    Inlägg:
    158
    Mottagna gillanden:
    0

    MINA ENHETER

    Fortfarande ingen lösning på Android 1.5 stödet, working on it...

    v19 uppe. Skönt att kunna säga att samma sak nu gäller hög som låg upplösning :cool:

    Changelog från xda (orkar inte översätta, sorry).

    Changes
    • Import/export of user dictionary is now threaded and has progress dialog
    • Pipe key added to qwerty symbol keyboard
    • Fixed voice hack was enabled by default even if disabled in settings
    • Option: Clear user dictionary
    • Option: Swipe down to hide keyboard
    • Option: Swipe left to delete last word (personally I love this one)
    • Option: Character replacement (can remove diacritic chars). See note below
    • Option: Custom smileys (must enter at least two, minimum length is two chars)


    Note on the "Replace chars" option
    This is used to replace all instances of a char with another. This is set up in .htcime that you should place in the root of your SD.
    Syntax is (on a single line)
    Kod:
    option replace forbiddenChars replacementChars
    forbiddenChars and replacementChars should have equal length. First forbidden is replaced with first replacement etc.
    Use only lower case chars here. Casing is handled automatically.
    Save .htcime as UTF-8 if you are gonna use this!
    Kill keyboard process to reload changes after mounting SD

    Example useful for Czech:
    Kod:
    option replace ešcržýáíéúu escrzzaieuu
    The source code is also updated for your modding pleasure. Hack away! Or get drunk, it's Friday after all. Or both :D


    Replace chars är inte så användbart för oss svenskar, men några från Tjeckien ville kunna fimpa specialtecken som š. Tydligen gör de så att mängden text i SMS krymper från 160 till 70.
     
  19. Galaxy

    Galaxy Senior Droid Medlem

    Blev medlem:
    7 augusti 2009
    Inlägg:
    1.780
    Mottagna gillanden:
    123

    MINA ENHETER

    Kul att både hög och låg resolution uppdaterades samtidigt. Uppskattas enormt.
    Provat nästa alla nya funktioner och det har fungerat utan problem.;)

    En sak jag har märkt dock är att om man är i landscape och går till inställningar så fastnar den i landscape mode (endast i inställningar) även om man återgår till verticalmode men så fort man går ur inställningar så byter den direkt till verticalmode.. ingen biggie dock.
     
  20. jonasl

    jonasl Youth Droid Medlem

    Blev medlem:
    9 november 2009
    Inlägg:
    158
    Mottagna gillanden:
    0

    MINA ENHETER

    By HTC design eller vad man nu ska säga... Om du jämför HTC inställningar när du går in dit i porträtt och landskapsläge så ser du att de skiljer sig. Med HTC inställningar menar jag allt ovanför "mods by jonasl". HTC har valt att visa olika inställningsdialoger beroende på läge och sedan låser det sig i detta läge pga hur de specat sina layouter. För att få in mina inställningar så har jag lagt in ett anrop från deras kod till min med aktuell layout som parameter. Sedan mular jag in mina inställningar i deras dialog. Jag styr alltså inte vilken dialog det är utan jag trycker in mitt i den dialog de valt ska visas.

    Tror inte att det är något jag kommer bry mig om att ändra. Känns inte värt besväret :)