• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    LWEEKAndroid development
    DRIZDIK
    DRIZDIK --- ---
    LWEEK: Určitě nechceš injektovat uvnitř a nejlépe injektovat konstruktorem, aby instance vždy byla správně inicializovaná a dobře testovatelná.
    A než to řešit s Daggerem 2, tak by raději refactoroval na Hilt :-D
    LWEEK
    LWEEK --- ---
    Našel jsem si ale článek který zmiňuje použití workera s Daggerem, tak půjdu podle něj. Ale pořád ještě musím zjistit jak vyřešit blamáž s corutinou.
    LWEEK
    LWEEK --- ---
    Dagger 2 .)

    Ještě mě napadlo injektovat uvnitř workeru.

    class ActivitiesUpdateWorker(
    ctx: Context,
    params: WorkerParameters,
    ) : Worker(ctx, params) {

    @Inject
    lateinit var repository: ActivitiesRepository

    override fun doWork(): Result {
    (applicationContext as? App)?.appComponent?.inject(this)

    //repository.getAllScheduledActivities(true)

    return Result.failure()
    }
    }

    Nicméně nevím jestli applicationContext je opravdu instance App a druhá věc je že ty metody v repozitáři jsou psaný pro corutiny. Takže si nejsem ani jistý jak je z workeru zavolat.

    Worker používám protože potřebuju aby to pracovalo když je apka v pozadí.
    DRIZDIK
    DRIZDIK --- ---
    LWEEK: To je samozřejmě dost blbost :-D Protože ti jen použije class z té instance, kterou pak zahodí :-D
    Co používáš jako DI container? Hilt? Koin? Ale v základu je to o vytvoření WorkerFactory, která ti ty workery vytváří a injektuje. Oba nástroje na to mají už hotový tooling, kterým buď anotuješ Workery nebo vytváříš worker factory v Koinu .

    WorkManager | Koin
    https://insert-koin.io/docs/reference/koin-android/workmanager/
    https://developer.android.com/reference/androidx/hilt/work/HiltWorker
    LWEEK
    LWEEK --- ---
    Ahoj, snažím se zjistit jak si injectnout repozitář do Workera. ChatGPT mi navrhnul tohle:

    val myWorker = MyWorker(context, workerParams, myComponent.provideMyModel())
    myComponent.inject(myWorker)

    val workRequest = OneTimeWorkRequest.Builder(myWorker::class.java).build()
    WorkManager.getInstance(context).enqueue(workRequest)

    To mi ale přijde jako blbost. :) Nebo se mýlím? Každopádně ví někdo jak injectovat do Workera?
    LWEEK
    LWEEK --- ---
    DRIZDIK: Já si říkal, že to nemůže být až tak složité. Respektive jsem si říkal proč by to mělo být tak složité a na StackOverflow žádné info. Mělo mě to trknout. :) Díky moc!
    DRIZDIK
    DRIZDIK --- ---
    LWEEK: Ano dostaneš, je to ta stejná instance, kterou budeš mít ve foreground appce. Lifecycle bys měl obsluhovat velmi podobně jako v aktivitě, service může service kdykoliv zabít, stejně jako aktivitu. Doporučuji logovat pomocí Timberu, pokud už nepoužíváš.
    LWEEK
    LWEEK --- ---
    DRIZDIK: To je zvláštní protože mi přišlo, že když jsem logoval ze servisy tak to nešlo do konzole, ale v logcatu to bylo. Takže teoreticky bych si mohl v servise i nějak dostat k Application instanci?
    DRIZDIK
    DRIZDIK --- ---
    LWEEK: Service běží na Androidu defaultně ve stejném procesu a vykonává se na Main Threadu, pokud nedefinuješ explicitně "android:process". Separátní proces běžně není třeba a vystačíš si s multithreadingem/coroutinama, pokud neřešíš problémy s pamětí, GC a možnost přežít crash hlavní appky.
    LWEEK
    LWEEK --- ---
    DRIZDIK: Respektive, asi se blbě ptám. Je nějak možnost olvivnit jestli servisa běží na stejném procesu nebo vlastním? V manifestu to mám takto:
    <service
        android:name=".utils.TMFirebaseMessagingService"
        android:exported="false">
        <!-- // android:directBootAware="true" -->
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>
    LWEEK
    LWEEK --- ---
    DRIZDIK: Respektive, asi se blbě ptám. Je nějak možnost olvivnit jestli servisa běží na stejném procesu nebo vlastním? V manifestu to mám takto:
    LWEEK
    LWEEK --- ---
    DRIZDIK: Chápu, ale ta Firebase messaging servisa běží defaultně na separátním procesu, nebo se mýlím?
    DRIZDIK
    DRIZDIK --- ---
    LWEEK: Dokud to nemáš v jiném procesu, tak by update neměl být problém a závisí jen na tvém modelu, jak moc atomicky ten update potřebuješ udělat. Instanci Realmu sdílíš se zbytkem appky, takže základy pro to, aby ti k ničemu takovému nedošlo bys měl už mít částečně na místě.
    LWEEK
    LWEEK --- ---
    Ahoj, mám dotaz na nějakého zkušenějšího android vývojáře. Potřebuju vyřešit zadání kdy aplikace na základě silent notifikace aktualizuje data na pozadí. Silent notifikaci FCM umím přijímat. Pak stáhnu data přes Workera, ale co si nejsem vůbec jist je jak updatovat data v Realm databázi aby nemohlo dojít k nějaké kolizi nebo zamčení DB ze servisy apod. Jak se to standardně řeší?
    CLOVICEK
    CLOVICEK --- ---
    DRIZDIK: perfektní, pomohlo to přepsat na getDefaultVoice() a už mi krásně mluví česky. Díky moc za nakopnutí
    CLOVICEK
    CLOVICEK --- ---
    DRIZDIK: Android mám verzi 12. Zkusím doma, díky za tipy
    DRIZDIK
    DRIZDIK --- ---
    CLOVICEK: Jakou máš verzi Androidu a kde jsi našel dostupné jazyky? Ty bys měl totiž resolvovat dynamicky ze zařízení. Buď isLanguageAvailable(java.util.Locale) nebo getAvailableLanguages() nebo getVoices ()
    CLOVICEK
    CLOVICEK --- ---
    Ahoj, už delší dobu tápu a googlím, ale zatím jsem nenašel řešení, tak se zkusím zeptat tady. Kutím si jako začátečník jednoduchou apku pro přečtení jednoduchých dat jako čas, datum atd., což mi všechno pěkně chodí, jen: v telefonu mám nastaven český hlas, české předčítání i českou lokalizaci. V apce používám nativní TextToSpeech telefonu, ve kterém jsem angličtinu ani nenašel, přesto mluví jen anglicky. V kódu: " t1.setLanguage(Locale.US);" lze podle dokumentace nastavit jen pár jazyků (US, ENGLISH, CHINESE,..). Jsem v Android Studiu a Javě nováček, ale zatím jsem byl schopen všechno najít. S tímhle mám problém. Díky za případně postrčení správným směrem
    CHEVALIER
    CHEVALIER --- ---
    MIKULAS, ADM: Děkuji.
    ADM
    ADM --- ---
    navic v (cz) nastaveni - ochrana soukromi - panel ochrany soukromi - poloha, je to videt (alespon v android 13)
    ADM
    ADM --- ---
    CHEVALIER:to spis dela google play services defaultne, ze periodicky a obzvlast po rozsviceni obrazovky zjistuje polohu, aby byla ihned k dispozici pro aplikaci, ktera si o ni pozada (a ma na to pravo)
    MIKULAS
    MIKULAS --- ---
    DACAN: jo, ale tak na to jsou zase jiný metody a kdybych měl takový podezření, dělám factory reset...
    DACAN
    DACAN --- ---
    MIKULAS: ted jde o to, kdy by se to odesilalo. to muze byt klidne na tydenni bazi :D ale nerikam, ze to nezafunguje, jen to chce mit policeno dele.
    MIKULAS
    MIKULAS --- ---
    CHEVALIER: nainstaluj si https://www.charlesproxy.com/ a pripoj telefon pres pocitac - budes schopen analyzovat veskery traffic
    CHEVALIER
    CHEVALIER --- ---
    Mám android 12. Po rozsvícení obrazovky se vždy nekrátko zobrazí symbol určování polohy. Je to asi na 2 vteřiny a pak zase zhasne. Samozřejmně urování polohy v tu chvíli ode mne není povoleno.

    Chci se zeptat co se v tu chvíli děje.
    Jestli mám řešit šmírování.
    Jak řešit to šmírování.

    Děkuji
    SONIC
    SONIC --- ---
    ZLEJ_HAJZL:
    MIKULAS: vseobecne se do vetsiny androidu da nejakym zpusobem dostat skrz nejaky diry...klavesnice zdileni textu talk back nebo nejaky triky se zadavanim pinu se simkartou a zbesilym klikanim abys system pekne zahltil a zmatnul..free veci na FRP jako ze one click moc nejsou..max nejaky veci co ti trochu pomuzou trebas vnutej telefonu odkaz kterej se ti zobrazi a ty se dostanes do prohlizece youtubu nebo nekam jinam a pak uz zas alchimie..jinak je to vsechno placeny s tim ze treba vetsinu Qualcommu musis jeste rozdelat a testpointama na DPS to dat do EDL modu..MTKcka sou vseobecne lehci...
    MIKULAS
    MIKULAS --- ---
    MIKULAS: hm tak jsem to vyresil nalezenym PINem :) ale mozna k tomu ma nekdo skutecny insight, jak to vlastne funguje ... necham to tu, kdyztak me smazte
    MIKULAS
    MIKULAS --- ---
    ZLEJ_HAJZL: asi ti neporadim, pac radu potrebuju sam - resim FRP lock na prastarem tabletu od Huawei ... ale doklikal jse se k tomu, ze neco jako "free software" asi neexistuje

    spis existuji lide, kteri ukradli ze zamestnani privatni klice a pak na internetu prodavaji unlock za uplatu ... nekoho takoveho hledam. Nasel jsem napriklad toto video, kde jsou dekovne komenty, ale nedokazu posoudit, jestli je to validni postup. Vzdalenej pristup bych nikomu nedal:
    1 Click All Huawei FRP Bypass Tool 2022 | Huawei FRP Unlock Without Test Point NO Downgrade Firmware
    https://www.youtube.com/watch?v=uJlYoCfZa7A
    ZLEJ_HAJZL
    ZLEJ_HAJZL --- ---
    zdravim, muze mi nekdo poradit free software na FRP? nejak jsem z toho vypad
    DATEL
    DATEL --- ---
    Ještě doplním, ten modul by měl být spíše

    m pbtombstone

    to by mělo spáchat binárku.
    Kliknutím sem můžete změnit nastavení reklam