Mit is szeretnék?
Hát nem lenne nagy baj, ha nem csak tablet-en, hanem telefonon is ki tudnám használni a multiuser adta előnyöket. A gyerek nem nyomkodja el a rendszert, nem tud fizetni a play-en, saját felülete van, jól karbantartható, ha ottfelejtem valahol, mondjuk a munkahelyen, akkor akár távolról is átállíthatom a vendég-felhasználóra, ha valakinek kölcsönadom egy telefonálás erejéig, akkor szintén átállítható és lehetne még sorolni. Nem is értem, hogy miért nincs alapból engedélyezve ez a funkció.
Android 4.3 felett már külön háttér állítható, a tulajdonos által telepített alkalmazások nem hozzáférhetőek a többi felhasználónak, és úgy általában megfelel az átlagos többfelhasználós igényeknek.
Hogyan szeretném ezt?
Módosítások:
1)
Build.prop:
Első lépésként a build.prop-ba kell belepiszkálni:
fw.max_users=2
Ez a sor valószínűleg nincs benne, úgyhogy pötyögjük be.
Ezzel a maximális felhasználók számának kettőt határoztunk meg. Ez lehet több is, de nem nagyon van értelme túl sokat megadni. És nem is lesz jó a felület ha túl sok.
2)
Multiuser-választó felület megjelenítése a zárképernyőn:
/res/layout-port/keyguard_host_view.xml
Az utolsó <FrameLayout> szekcióba helyezzünk el egy kis kiegészítést:
androidprv:paddingTop="54.0dip"
ezzel lejjebb mozgatjuk a widget felületet.
Ugyanezen szekció után illesszük be ezt a kódot:
<FrameLayout androidprv:paddingTop="7.0dip" androidprv:layout_width="fill_parent" androidprv:layout_height="wrap_content">
<include androidprv:layout_gravity="top|center" androidprv:layout_width="fill_parent" androidprv:layout_height="fill_parent" layout="@layout/keyguard_multi_user_selector" />
</FrameLayout>
Ezzel pedig ügyesen megjelenik a multiuser-választó a zárképernyőn.
Nagyjából készen is van a művelet. A framework-ot felépítjük, ízlés szerint szignózzuk és telepítjük.
A módosított fájl használatba vételére többféle lehetőség van, egyelőre én a CWM/TWRP install zip metódust használom és ajánlom. Mindig legyen az sd-kártyán egy használható stabil backup arra az esetre, ha nem jön össze valami. :) Lesz ilyen. Készüljünk mindig a legrosszabbra, akkor nem ér meglepetés.
Egy-két kiegészítés:
Én a zárképernyőn használom a tulajdonos nevének megjelenítését (bár most épp még nem kapcsoltam be) és a cLock widget-et. A javításunk következtében ezek egy kicsit összecsúsztak, úgyhogy meg kellett babrálnom a számokat :)
A most már utolsó előtti FrameLayout részbe beillesztett paddingTop értéket vegyük kisebbre. Ez nekem 18.0dip lett.
A multiuser FrameLayout paddingTop értéket is állítsuk kisebbre. Ez nálam 5.0dip.
Már csak egy fájl maradt: /res/values/dimens.xml.
Valahol a vége felé vannak a szükséges sorok. Íme az általam használt értékek:
<dimen name="keyguard_avatar_frame_stroke_width">1.0dip</dimen>
<dimen name="keyguard_avatar_frame_shadow_radius">1.0dip</dimen>
<dimen name="keyguard_avatar_size">32.0dip</dimen>
<dimen name="keyguard_avatar_name_size">00.0sp</dimen>
Az első a kisképet keretező vonal vastagsága (ez 2 volt). A második ennek az árnyékolása, a harmadik az avatár-kép mérete (66 volt), a negyedik a név betűmérete a kép alatt (ezt nem kérem, úgyhogy 0).
A keret színét holo-kékre állítottam, mert nekem így tetszik.
Szorgalmi feladat megkeresni az ehhez tartozó fájlt/beállítást.
További szép napot!