\n\n\n',Xt=e=>{const t=e?"gray":"white";return``},ei=1e3;var ti=o(3128),ii=o.n(ti),ri=o(8075),ni=o.n(ri),si=o(8462),oi=o.n(si),ai=o(653),ci=o.n(ai),li=o(7950),di=o.n(li);const ui=e=>"boolean"==typeof e,hi=e=>oi()(e),gi=e=>"[object String]"===Object.prototype.toString.call(e),pi=e=>{var t;return di()(t=["top","bottom","top-left","top-right","bottom-left","bottom-right"]).call(t,e)};const fi=()=>Math.round((new Date).getTime()/1e3);var mi=e=>{const t=new a("user_engagement"),i="utsid-send";let n,o=0,c=!1,l=!1,d={clientHints:{},isScrollable:0,totalClicks:0,sessionLength:0,ippMissclicks:0,visible:0,caught:0,lastevent:0,isFullscreen:0,isTabFocused:0,eventImps:0,retryCounts:0,isScrolled:0,isMouseMoved:0,pagePercentageSeen:0,belowTheFoldSeen:0,touchEnd:0,touchMove:0,clicksByType:{idle:0,input:0,video:0,button:0,link:0,img:0},browsingTopics:[],ufp:ie()},u=O(),g=fi();function p(){var i,r;0===d.isFullscreen&&(d.isFullscreen=document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement?1:0),d.isTabFocused=document.hidden||document.mozHidden||document.webkitHidden?0:1,d.sessionStartTime=g,d.sessionId=u,d.sessionLength=fi()-g,d.timeZoneOffset=(new Date).getTimezoneOffset(),d.zones=[],e&&(d.zones=e.getZoneIds()),d.pUrl=encodeURIComponent(I()),d.pReferrer=encodeURIComponent((()=>{const e=document.referrer;return e?L(e):""})()),d.pTitle=encodeURI(U()),d.pDescription=encodeURIComponent(F("description",t)),d.pKeywords=encodeURIComponent(F("keywords",t)),d.pHasIframes=(()=>{const e=document.getElementsByTagName("iframe");return e.length?e.length:0})(),d.pWidth=Math.ceil(window.scrollWidth||document.body.scrollWidth),d.pHeight=Math.ceil(window.scrollHeight||document.body.scrollHeight),d.vWidth=Math.ceil(window.innerWidth||document.body.clientWidth),d.vHeight=Math.ceil(window.innerHeight||document.body.clientHeight),d.inIframe=R(),sessionStorage.getItem("template")&&(d.ippTemplate=sessionStorage.getItem("template")),d.visible=(i=d.vWidth,r=d.vHeight,R()&&(i<10||r<10)?0:1),d.caught=(()=>{let e=0;if(R())try{window.top.location.href}catch(t){e=1}return e})(),d.isScrollable=((e,t)=>{if(e>t){const i=.05;return e-t>Math.ceil(t*i)?1:0}return 0})(d.pHeight,d.vHeight)}function f(){t.debug("Touch move detected."),d.touchMove++,l=!0}function m(){1!==d.isMouseMoved&&(t.debug("Mouse move tracked"),d.isMouseMoved=1,l=!0)}function v(){t.debug("Touch end detected."),d.touchEnd++,l=!0,b()}function b(){if(t.debug("checkScrolling()"),d.pHeight<=d.vHeight)return d.pagePercentageSeen=100,void(d.belowTheFoldSeen=100);var e=Math.ceil(window.scrollTop||document.body.scrollTop),i=Math.ceil((e+d.vHeight)/d.pHeight*100);i>100&&(i=100),i!=d.pagePercentageSeen&&(t.debug("Scroll event detected."),d.isScrolled=1,l=!0),i>d.pagePercentageSeen&&(t.debug("Page percentage seen updated."),d.pagePercentageSeen=i,l=!0);var r=Math.ceil(e/(d.pHeight-d.vHeight)*100);r>100&&(r=100),r>d.belowTheFoldSeen&&(t.debug("Bellow the fold percentage seen updated."),d.belowTheFoldSeen=r,l=!0)}function y(){d.ippMissclicks++,l=!0}function w(e){t.debug("Click tracked"),d.totalClicks++;var i=e.target,r=null;do{null!==r&&""!==r||(r=k(i)),i=i.parentElement}while(i&&"body"!==i.nodeName.toLowerCase()&&"document"!==i.nodeName.toLowerCase());null===r&&(r="idle"),d.clicksByType[r]++,l=!0}function k(e){var t=null,i=["a","video","button","input","textarea","img","select"];return-1!==h()(i).call(i,e.nodeName.toLowerCase())&&("a"===(t=e.nodeName.toLowerCase())?t="link":"textarea"!==t&&"select"!==t||(t="input")),t}function A(){t.debug("Impression tracked"),d.eventImps++}function T(){t.debug("Retry tracked!"),d.retryCounts++}function x(){var e="//usrpubtrk.com/ut/hb.php?cb="+Math.random();return e+="&v=1",t.debug("Target Url: "+e.toString()),e}function S(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!c){if(c=!0,p(),e&&(d.lastevent=1),t.isDebugEnabled&&t.debug("send payload:",JSON.parse(Fe()(d))),"navigator"in window&&"sendBeacon"in window.navigator&&void 0!==navigator.sendBeacon&&void 0!==Blob){d.sentTimestamp=r()();var i=new Blob([Fe()(d)],{type:"text/plain; charset=UTF-8"});navigator.sendBeacon(x(),i)}else{var n="XMLHttpRequest"in window?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP");n.open("POST",x(),!0),n.setRequestHeader("Content-Type","text/plain;charset=UTF-8");try{d.sentTimestamp=r()(),n.send(Fe()(d))}catch(e){}}d.lastevent=0,c=!1}}function C(){t.debug("visibility state is",document.visibilityState),"hidden"===document.visibilityState&&l?(clearInterval(n),S(),l=!1):"visible"===document.visibilityState&&(n=he()(N,6e4))}function P(){var e=new CustomEvent(i,{detail:{issued:"UT",data:{utsid:u}}});document.dispatchEvent(e)}function N(){if(d.sessionLength=fi()-g,d.sessionLength>=7200)return t.debug("Session limit reached! Send last payload and tear down"),S(),clearInterval(n),t.debug("detaching behavior listeners"),document.removeEventListener("click",w,!1),document.removeEventListener("mousemove",m,!1),document.removeEventListener("scroll",b,!1),document.removeEventListener("in-page-missclick",y,!1),document.removeEventListener("impression-event",A,!1),document.removeEventListener("impression-retry-event",T,!1),document.removeEventListener("touchend",v,!1),document.removeEventListener("touchmove",f,!1),document.removeEventListener("touchcancel",b,!1),document.removeEventListener("visibilitychange",C),void window.removeEventListener("beforeunload",S);0!==o&&1!==o&&5!==o&&10!==o&&o%30!=0||S(),o++}!async function e(){if("complete"===document.readyState||"interactive"===document.readyState)return d.clientHints=await E(t,true),d.browsingTopics=await async function(){let e=[];if("browsingTopics"in document&&document.featurePolicy.allowsFeature("browsing-topics"))try{e=await document.browsingTopics(),t.debug("document.browsingTopics() return value:",e)}catch(e){t.debug("Error calling document.browsingTopics(): ",e)}return e}(),"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0?(document.addEventListener("touchend",v,!1),document.addEventListener("touchmove",f,!1),document.addEventListener("touchcancel",b,!1)):(document.addEventListener("mousemove",m,!1),document.addEventListener("scroll",b,!1)),document.addEventListener("click",w,!1),document.addEventListener("impression-event",A,!1),document.addEventListener("impression-retry-event",T,!1),document.addEventListener("in-page-missclick",y,!1),p(),b(),0===o&&N(),n=he()(N,6e4),window[i]=u,P(),s()(P,2e4),document.addEventListener("visibilitychange",C),void window.addEventListener("beforeunload",(()=>{S(!0)}));s()(e,100)}()},vi=o(3038),bi=o.n(vi);const yi="sandboxedDetector";var wi=class{#i;#ue;#he;#ge=!1;#pe=!1;#fe=!1;constructor(e,t,i){this.#i=e,this.#ue=t,this.#he=i}isSandboxed(){return this.#pe}load(){var e;if(this.#ge)return void this.#i.debug("already checked");if(this.#ge=!0,this.#i.debug("load sandbox detector"),!R())return void this.#i.debug("not in iframe. exit");this.#i.debug("iframe detected");const i=this.#he.getState();if(i&&i.expiresAt>r()())return this.#i.debug("previous state present. Expires at:",new Date(i.expiresAt)),i.isSandboxed?(this.#i.debug("sandboxed recently! show overlay"),void(this.#pe=!0)):void this.#i.debug("not sandboxed recently. dont check further");this.#i.debug("attach detector listener to events");const n={zoneId:yi,callback:t()(e=this.#me).call(e,this)};J||this.#ue.subscribe("mousedown",n,!0),this.#ue.subscribe("click",n,!0)}#me(e){if(!e.isTrusted)return void this.#i.debug(`${e.type} on ${e.target.tagName}. Detector skipped: event is not trusted`,e);if(this.#ue.isShowingPop)return void this.#i.debug("detector skipped: pop being currently shown");this.#ue.isShowingPop=!0,this.#i.debug("detector taking action. prevent other pops from showing");let t=null;try{t=window.open("about:blank","_blank")}catch(e){this.#i.error("detector error",e)}t&&t.close(),null===t&&(this.#i.debug("sandbox detected"),this.#pe=!0),this.#he.setState({expiresAt:r()()+36e5,isSandboxed:this.#pe}),J||this.#ue.unsubscribe("mousedown",yi,!0),this.#ue.unsubscribe("click",yi,!0),s()((()=>{this.#ue.isShowingPop=!1}),300)}showSandboxWarningOverlay(){this.#fe||(this.#fe=!0,this.#i.debug("show sandbox warning overlay"),this.#ve())}#be(){const e=document.createElement("div");e.id="sbxwo",bi()(e.style,{position:"fixed",top:0,left:0,width:"100%",height:"100%",backgroundColor:"rgba(0, 0, 0, 0.8)",color:"#fff",zIndex:1e4,display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column",padding:"20px",boxSizing:"border-box",textAlign:"center"});const t=document.createElement("div");t.innerHTML="\n
Ad Functionality Blocked
\n
\n It looks like your page is running in a sandbox that blocks certain functionality.\n This setting is preventing our ads from working properly.\n Please disable the sandbox restrictions or adjust your settings.\n
\n To continue playing please remove Sandbox from iframe tab or add "allow-popups" to Sandbox\n
\n ',e.appendChild(t),document.body.appendChild(e)}};const ki="x4G9Tq2Kw6R7v1Dy3P0B5N8Lc9M2zF",Ai="ZpQw9XkLmN8c3vR3",Ti="adblock-settings",xi=(()=>{let e=document.currentScript;return e||(e=document.getElementById("aclib")),e||(e=document.getElementById("adcash-lib")),e})();let Si=null;var Ci=class{#ye;#we={pop:!1,autoTag:!1,inPagePush:!1,interstitial:!1,videoSlider:!1};#ke;#v;#Ae=new(ni());#Te=new(ni());#i;#xe=!1;#Se=!1;#Ce;#m="adexchangeclear.com";#k="69.0";#o=null;#Ee="aclib";#Ie;#Re=!1;isShowingPop=!1;#S;#Le=!1;#Oe={};#Pe;constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(Si)return Si;Si=this;let t="aclib";if(e.classes&&(this.#Oe=e.classes,t="aclib_adbl"),this.#i=new a(t),this.#Ce=(e=>{const t={mousedown:[],click:[],touchstart:[]},i={mousedown:[],scroll:[],click:[],touchstart:[]},r=i=>{var r;const n=i.currentTarget===window?"win":"doc";e.debug(`${n} mousedown with capture: in`),x()(r=t.mousedown).call(r,(t=>{e.debug(`${n} mousedown with capture: calling observer`),t.callback(i)}))},n=t=>{var r;const n=t.currentTarget===window?"win":"doc";e.debug(`${n} mousedown: in`),x()(r=i.mousedown).call(r,(i=>{e.debug(`${n} mousedown: calling observer`),i.callback(t)}))},s=i=>{var r;const n=i.currentTarget===window?"win":"doc";e.debug(`${n} click with capture: in`),x()(r=t.click).call(r,(t=>{e.debug(`${n} click with capture: calling observer`),t.callback(i)}))},o=t=>{var r;const n=t.currentTarget===window?"win":"doc";e.debug(`${n} click: in`),x()(r=i.click).call(r,(i=>{e.debug(`${n} click: calling observer`),i.callback(t)}))},a=e=>{var t;x()(t=i.scroll).call(t,(t=>{t.callback(e)}))};return{subscribe:(e,r,n)=>{if(!t[e]||!i[e])throw new Error(`${e} is not observable!`);n?t[e].push(r):i[e].push(r)},unsubscribe:(e,r,n)=>{if(!t[e]||!i[e])throw new Error(`${e} is not observable!`);if(n)for(let i=0;i{window.addEventListener("mousedown",r,!0),window.addEventListener("mousedown",n,!1),window.addEventListener("click",s,!0),window.addEventListener("click",o,!1),document.addEventListener("mousedown",r,!0),document.addEventListener("mousedown",n),document.addEventListener("click",s,!0),document.addEventListener("click",o),window.addEventListener("scroll",a)},detachListeners:()=>{window.removeEventListener("mousedown",r,!0),window.removeEventListener("mousedown",n,!1),window.removeEventListener("click",s,!0),window.removeEventListener("click",o,!1),document.removeEventListener("mousedown",r,!0),document.removeEventListener("mousedown",n),document.removeEventListener("click",s,!0),document.removeEventListener("click",o),window.removeEventListener("scroll",a)}}})(this.#i),this.#Ce.attachListeners(),this.getClientHints(),this.#Ie=O(),this.#S=ie(),this.#Pe=new wi(new a("sd"),Si,new ze("sndbxchckiborjforqp2")),this.#i.debug("init adcash lib. listeners attached. ready to publish"),this.#i.debug("is mobile device:",J),window[ki]&&(this.#o=JSON.parse(Fe()(window[ki])),this.#ye=this.#o.cdnDomain,delete window[ki]),window[Ai]&&(this.#o=JSON.parse(function(e){var t;let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"xR9tB2pL6q7MwVe";const r=atob(e);return A()(t=[...r]).call(t,((e,t)=>String.fromCharCode(e.charCodeAt(0)^i.charCodeAt(t%i.length)))).join("")}(window[Ai])),this.#ye=this.#o.cdnDomain,delete window[Ai]),this.#o||(this.#ye=new(m())(xi.src).host,xi.hasAttribute(Ti)&&(this.#o=JSON.parse(xi.getAttribute(Ti)),xi.removeAttribute(Ti))),this.#o&&this.#i.debug("adblock settings:",this.#o),xi.getAttribute("data-preview"))return this.#i.debug("preview mode"),void(this.#Le=!0);this.#Ne(),this.#Ue(),this.#$e(),this.#Pe.load()}isSandboxed(){return this.#Pe.isSandboxed()}showSandboxWarningOverlay(){this.#Pe.showSandboxWarningOverlay()}async getClientHints(e){if(void 0===this.#ke){this.#ke=await E(this.#i,!0);let e="";for(const t in this.#ke)e+=`&${t}=${this.#ke[t]}`;this.#v=e}return e?this.#ke:this.#v}getCdnDomain(){return this.#ye}getSesionRandomString(){return this.#Ie}enableAdbMode(){this.#i.debug("enable adb mode"),this.#Re=!0}isAdbMode(){return this.#Re}subscribe(e,t,i){this.#Ce.subscribe(e,t,i)}unsubscribe(e,t,i){this.#Ce.unsubscribe(e,t,i)}#$e(){var e;if(document.body){const e=document.createElement("a");e.style.display="none",e.style.visibility="hidden",e.style.position="relative",e.style.left="-1000px",e.style.top="-1000px";let t=this.#m;return this.#o&&(t=this.#o.adserverDomain),e.href=`${location.protocol}//${t}/ad/visit.php?al=1`,void document.body.appendChild(e)}s()(t()(e=this.#$e).call(e,this),100)}#Ue(){mi(Si)}#Ne(){var e;if(document.head){let e=new(ni())([this.#ye,this.#m]);return this.#o&&e.add(this.#o.adserverDomain),e=w()(e),this.#i.debug("prefetch domains:",e),void x()(e).call(e,(e=>{const t=document.createElement("link");t.rel="dns-prefetch",t.href=`//${e}`,document.head.appendChild(t)}))}s()(t()(e=this.#Ne).call(e,this),100)}getZoneIds(){return w()(this.#Ae)}runPop(e){const{zoneId:t,delay:i,targetElementsCssSelector:r,triggerOnTargetElementsClick:n,targetCountries:s,triggerOnTargetCountries:o,sub1:a,sub2:c,publisherUrl:l,storeUrl:d,c1:u,c2:h,c3:g,pubHash:p,pubClickId:f,pubValue:m,fallbackOn:v,isAutoTag:b,collectiveZoneId:y,aggressivity:w,recordPageView:k,linkedZoneId:A,abTest:T,tagVersionSuffix:x}=e;if(!t)throw new Error("mandatory zoneId is not provided!");if(!gi(t))throw new Error("zoneId is not a string!");if(void 0!==i&&(!hi(i)||i<0))throw new Error("delay is not an integer or is less than zero");if(void 0!==r){if(!gi(r))throw new Error("targetElementsCssSelector is not a string");if(!(e=>{try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0})(r))throw new Error("targetElementsCssSelector is not a valid css selector");if(!ui(n))throw new Error("triggerOnTargetElementsClick is not a boolean")}if(void 0!==s){if(!(e=>{if(!ci()(e))return!1;if(0===e.length)return!1;for(let t=0;t{window.PopUnder&&(this.#Ae.add(S.zoneId),new PopUnder(S),clearInterval(e))}),100)}else{this.#i.debug("loading suv5 script on page"),this.#xe=!0;const e=document.createElement("script");e.type="text/javascript",e.src=`${location.protocol}//${this.#ye}/script/suv5.js`,e.onload=()=>{this.#we.pop=!0,this.#xe=!1,b?this.#Ae.add(y):this.#Ae.add(S.zoneId),new PopUnder(S)},e.onerror=()=>{this.#we.pop=!1,this.#xe=!1,this.#i.error(`failed loading ${e.src}`)},document.head.appendChild(e)}}runInPagePush(e){if(this.#we.inPagePush)return void this.#i.error("in-page push zone already loaded on page");this.#we.inPagePush=!0;const{zoneId:t,delay:i,maxAds:r,renderPosDesktop:n,renderPosMobile:s,offsetTop:o,sub1:a,isAutoTag:c,collectiveZoneId:l,linkedZoneId:d,aggressivity:u,recordPageView:h,abTest:g,tagVersionSuffix:p}=e;let{refreshRate:f}=e;if(!t)throw new Error("mandatory zoneId is not provided!");if(!gi(t))throw new Error("zoneId is not a string!");if(void 0!==f&&(!hi(f)||f<0))throw new Error("refreshRate is not an integer or is less than zero");if(void 0!==i&&(!hi(i)||i<0))throw new Error("delay is not an integer or is less than zero");if(void 0!==r&&(!hi(r)||r<1))throw new Error("maxAds is not an integer or is less than one");if(void 0!==n&&!pi(n))throw new Error("renderPosDesktop is not valid");if(void 0!==s&&!pi(s))throw new Error("renderPosMobile is not valid");if(void 0!==o&&(!hi(o)||o<0))throw new Error("offsetTop is not an integer or is less than zero");this.#i.debug("loading in-page push on page"),c?this.#Ae.add(l):this.#Ae.add(t),void 0!==f&&f>0&&f<10&&(f<5?f*=60:f=30),this.#i.debug("ipp rr set to",f);const m={zoneId:t,refreshRate:f??60,delay:i??0,maxAds:r??1,renderPosDesktop:n??"top",renderPosMobile:s??"top",offsetTop:o??0,sub1:a,isAutoTag:c,collectiveZoneId:l,linkedZoneId:d,aggressivity:u,recordPageView:h,abTest:g,tagVersionSuffix:p,adserverDomain:this.#m,adblockSettings:this.#o,adcashGlobalName:this.#Ee,isLoadedAsPartOfLibrary:!1,uniqueFingerprint:this.#S};if(this.#Oe.InPagePush)return m.isLoadedAsPartOfLibrary=!0,void new this.#Oe.InPagePush(m);if(window.InPagePush)new window.InPagePush(m);else{const e=document.createElement("script");e.type="text/javascript",e.src=`${window.location.protocol}//${this.#ye}/script/inpagepush.js`,e.setAttribute("nipp","1"),e.onload=()=>{new window.InPagePush(m)},e.onerror=()=>{this.#i.error(`failed loading ${e.src}`)},document.head.appendChild(e)}}runBanner(e){const{zoneId:t,width:i,height:r,renderIn:n,sub1:s,currentScript:o}=e;if(!t)throw new Error("mandatory zoneId is not provided!");if(!gi(t))throw new Error("zoneId is not a string!");if(void 0!==i&&!hi(i))throw new Error("Banner width is not an integer");if(void 0!==r&&!hi(r))throw new Error("Banner height is not an integer");let a;this.#i.debug("loading banner on page",t),n||(document.currentScript&&document.currentScript.parentElement&&(a=document.currentScript.parentElement),o&&(a=o.parentElement));const c={zoneId:t,width:i,height:r,renderIn:n,currentElement:a,sub1:s,adcashGlobalName:this.#Ee,uniqueFingerprint:this.#S,adblockSettings:this.#o};if(this.#Oe.Banner)new this.#Oe.Banner(c);else if(this.#we.banner||this.#Se){if(window.Banner)return this.#Ae.add(c.zoneId),void new Banner(c);const e=he()((()=>{window.Banner&&(this.#Ae.add(c.zoneId),new Banner(c),clearInterval(e))}),100)}else{this.#Se=!0;const e=document.createElement("script");e.type="text/javascript",e.src=`${location.protocol}//${this.#ye}/script/banner.js`,e.onload=()=>{this.#we.banner=!0,this.#Se=!1,this.#Ae.add(c.zoneId),new Banner(c)},e.onerror=()=>{this.#we.banner=!1,this.#Se=!1,this.#i.error(`failed loading ${e.src}`)},e.setAttribute("data-adel","ban"),e.setAttribute("a-lib","1"),document.head.appendChild(e)}}runInterstitial(e){if(this.#we.interstitial)return void this.#i.error("interstitial zone already loaded on page");this.#we.interstitial=!0;const{zoneId:t,sub1:i,isAutoTag:r,collectiveZoneId:n,linkedZoneId:s,aggressivity:o,recordPageView:a,abTest:c,tagVersionSuffix:l}=e;if(!t)throw new Error("mandatory zoneId is not provided!");if(!gi(t))throw new Error("zoneId is not a string!");this.#i.debug("loading interstitial on page");const d={zoneId:t,sub1:i,isAutoTag:r,collectiveZoneId:n,linkedZoneId:s,aggressivity:o,recordPageView:a,abTest:c,tagVersionSuffix:l,adcashGlobalName:this.#Ee,adserverDomain:this.#m,adblockSettings:this.#o,uniqueFingerprint:this.#S,isLoadedAsPartOfLibrary:!1};if(this.#Ae.add(t),this.#Oe.Interstitial)return d.isLoadedAsPartOfLibrary=!0,void new this.#Oe.Interstitial(d);if(window.Interstitial)new Interstitial(d);else{const e=document.createElement("script");e.type="text/javascript",e.src=`${location.protocol}//${this.#ye}/script/interstitial.js`,e.setAttribute("a-lib","1"),e.onload=()=>{new Interstitial(d)},e.onerror=()=>{this.#i.error(`failed loading ${e.src}`)},document.head.appendChild(e)}}async#Fe(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.#i.debug("fetch collective zone config");let i=`${window.location.protocol}//${this.#m}/ad/czcf.php`;if(this.isAdbMode()){const e=`/${ee("abcdefgh0123456789")}`;i=`${window.location.protocol}//${this.#o.adserverDomain}${e}`}i+=`?cz=${e}`,i+=`&atv=${this.#k}`;const r=await this.getClientHints();let n;r&&(i+=r),this.isAdbMode()&&(i+="&sadbl=2",i+="&fmt=atg",i=te(i)),this.#i.debug("collective zone config url: ",i);try{n=await fetch(i)}catch(i){return this.#i.error(i),this.#o&&t?(this.#i.debug("collective zone config fetch failed: try alt domain and path"),this.enableAdbMode(),this.#Fe(e,!1)):null}return 200!==n.status?null:(n=await n.json(),se(n))}async runAutoTag(e){if(this.#we.autoTag)return void this.#i.error("autotag zone already loaded on page");this.#we.autoTag=!0;const t=e.zoneId;if(!t)throw new Error("mandatory zoneId is not provided!");if(!gi(t))throw new Error("zoneId is not a string!");const i=await this.#Fe(t);if(!i)return void this.#i.error(`failed to fetch collective zone config! czid: ${t}`);if(this.#i.debug("collective zone config:",i),!i.rotationList){this.#i.debug("running in NORMAL MODE (no rotation)");const r=i.indexedFormats;let n=!0;for(const s in r){switch(s){case"suv4":case"pop":this.runPop({zoneId:r[s].zoneId.toString(),targetElementsCssSelector:r[s]["element-list"],triggerOnTargetElementsClick:"allow"===r[s]["element-action"],targetCountries:r[s]["country-list"],triggerOnTargetCountries:"allow"===r[s]["country-action"],isAutoTag:!0,collectiveZoneId:t,aggressivity:i.aggressivity,abTest:i.ab_test,recordPageView:n,tagVersionSuffix:e.tagVersionSuffix});break;case"interstitial":this.runInterstitial({zoneId:r[s].zoneId.toString(),isAutoTag:!0,collectiveZoneId:t,aggressivity:i.aggressivity,abTest:i.ab_test,recordPageView:n,tagVersionSuffix:e.tagVersionSuffix});break;case"ippg":this.runInPagePush({zoneId:r[s].zoneId.toString(),refreshRate:r[s].rr,delay:r[s].d,maxAds:r[s].mads,renderPosDesktop:r[s]["render-pos-desktop"],renderPosMobile:r[s]["render-pos-mobile"],offsetTop:r[s]["offset-top"],isAutoTag:!0,collectiveZoneId:t,aggressivity:i.aggressivity,abTest:i.ab_test,recordPageView:n,tagVersionSuffix:e.tagVersionSuffix});break;default:this.#i.error(`ad format type not recognised from collective zone config. adformat.type: ${s}; czid: ${t}`)}n=!1}return}this.#i.debug("running in ROTATION MODE (rotation present)");const r={adcashGlobalName:this.#Ee,collectiveZoneConfig:i,adserverDomain:this.#m,adblockSettings:this.#o,clientHintsQueryStr:this.#v,tagVersionSuffix:e.tagVersionSuffix,isLoadedAsPartOfLibrary:!1,uniqueFingerprint:this.#S};if(this.#Oe.AutoTagRotation)return this.#Ae.add(t),r.isLoadedAsPartOfLibrary=!0,void new this.#Oe.AutoTagRotation(r);this.#i.debug("loading autotag rotation script on page");const n=document.createElement("script");n.type="text/javascript",n.src=`${location.protocol}//${this.#ye}/script/atagv2.js`,n.onload=()=>{this.#Ae.add(t),new De(r)},n.onerror=()=>{this.#i.error(`failed loading ${n.src}`)},document.head.appendChild(n)}runVideoSlider(e){if(this.#we.videoSlider)return void this.#i.error("videoslider zone already loaded on page");this.#we.videoSlider=!0;const{zoneId:t,sub1:i,vastXml:r,linkedZoneId:n}=e;if(!t)throw new Error("mandatory zoneId is not provided!");if(!gi(t))throw new Error("zoneId is not a string!");const s={zoneId:t,sub1:i,adserverDomain:this.#m,adcashGlobalName:this.#Ee,uniqueFingerprint:this.#S,isPreviewMode:this.#Le,vastXml:r,linkedZoneId:n,adblockSettings:this.#o};if(this.#Oe.VideoSlider)return s.isLoadedAsPartOfLibrary=!0,void new this.#Oe.VideoSlider(s);if(window.VideoSlider)new VideoSlider(s);else{const e=document.createElement("script");e.type="text/javascript",e.src=`${window.location.protocol}//${this.#ye}/script/videoSliderAlt.js`,e.onload=()=>{this.#Ae.add(t),new VideoSlider(s)},e.onerror=()=>{this.#i.error(`failed loading ${e.src}`)},document.head.appendChild(e)}}};const Ei=new a("aclib_adblock_index");window.Adcash?Ei.debug("lib already on page. exit"):(Ei.debug("load lib on page"),function(){var e;const t={aclib:new Ci(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Adcash:Ci,AtcshAltNm:Ci};x()(e=it()(t)).call(e,(e=>{ii()(window,e,{value:t[e]})}))}({classes:{AutoTagRotation:De,PopUnder:class{#s;#y=null;#t={};#O=!1;#ze=!1;#De=!1;#Be=!1;#P;#b=!1;#R=!0;#i;#k="69.0";#N=null;#Me=12;#T=!1;constructor(e){var i,n;this.#i=new a(`suv5_${e.zoneId}`),this.#s=window[e.adcashGlobalName],e.tagVersionSuffix&&(this.#k+=e.tagVersionSuffix),this.#i.debug("tag version:",this.#k),this.#i.debug("init pop with config:",e),this.#t=e,this.elementTargeting=new je(this.#t.targetElementsCssSelector,this.#t.triggerOnTargetElementsClick,this.#t.zoneId),!J||this.elementTargeting.isPresent()||this.#t.linkedZoneId||(this.#R=!1),this.#i.debug("useCapture:",this.#R),this.overlays=new He(this.elementTargeting,t()(i=this.#U).call(i,this),t()(n=this.#Ve).call(n,this),this.#i,this.#t.zoneId,this.#R),this.#z(),this.localStorage=new ze(`suv5_${e.zoneId}_state`);const o=this.localStorage.getState();o&&o.adbExpiresAt>r()()&&this.#s.enableAdbMode();const c=r()();if(o&&o.renderAfterTimestamp>c){var l;const e=o.renderAfterTimestamp-c;this.#i.debug(`previous state present. bid after ${e/1e3} sec`),s()(t()(l=this.#He).call(l,this),e)}else this.#He()}async#C(){const e=await this.#s.getClientHints(!1);let t=`${window.location.protocol}//${this.#t.adserverDomain}/script/suurl5.php`;if(this.#t.adblockSettings&&this.#s.isAdbMode()){const{adserverDomain:e}=this.#t.adblockSettings,i=`/${ee("abcdefgh0123456789")}`;t=`${window.location.protocol}//${e}${i}`}if(t+=`?r=${this.#t.zoneId}`,this.#b&&(t+="&rbd=1"),this.#t.targetCountries){const e=this.#t.targetCountries.join(",");this.#t.triggerOnTargetCountries?t+="&allowed_countries="+encodeURIComponent(e):t+="&excluded_countries="+encodeURIComponent(e)}return t=t+e+"&cbur="+Math.random()+"&cbiframe="+R()+"&cbWidth="+P()+"&cbHeight="+N()+"&cbtitle="+encodeURIComponent(U())+"&cbpage="+encodeURIComponent(I())+"&cbref="+encodeURIComponent($())+"&cbdescription="+encodeURIComponent(F("description"))+"&cbkeywords="+encodeURIComponent(F("keywords"))+"&cbcdn="+encodeURIComponent(this.#s.getCdnDomain())+"&ufp="+encodeURIComponent(this.#t.uniqueFingerprint)+"&ts="+r()()+"&srs="+this.#s.getSesionRandomString()+"&atv="+this.#k,this.#t.sub1&&(t+=`&sub1=${encodeURIComponent(this.#t.sub1)}`),this.#t.sub2&&(t+=`&sub2=${encodeURIComponent(this.#t.sub2)}`),this.#t.publisherUrl&&(t+=`&pu=${encodeURIComponent(this.#t.publisherUrl)}`),this.#t.storeUrl&&(t+=`&storeurl=${encodeURIComponent(this.#t.storeUrl)}`),this.#t.c1&&(t+=`&c1=${encodeURIComponent(this.#t.c1)}`),this.#t.c2&&(t+=`&c2=${encodeURIComponent(this.#t.c2)}`),this.#t.c3&&(t+=`&c3=${encodeURIComponent(this.#t.c3)}`),this.#t.pubHash&&(t+=`&pub_hash=${encodeURIComponent(this.#t.pubHash)}`),this.#t.pubClickId&&(t+=`&pub_clickid=${encodeURIComponent(this.#t.pubClickId)}`),this.#t.pubValue&&(t+=`&pub_value=${encodeURIComponent(this.#t.pubValue)}`),this.#t.fallbackOn&&(t+=`&fallbackon=${encodeURIComponent(this.#t.fallbackOn)}`),this.#t.adblockSettings&&(t+="&abtg=1"),this.#t.isAutoTag&&(t+="&atag=1"),this.#t.aggressivity&&(t+=`&aggr=${this.#t.aggressivity}`),this.#t.collectiveZoneId&&(t+=`&czid=${this.#t.collectiveZoneId}`),this.#t.recordPageView&&(t+="&ppv=1"),this.#t.linkedZoneId&&(t+=`&pblcz=${this.#t.linkedZoneId}`),this.#t.abTest&&(t+=`&ab_test=${this.#t.abTest}`),this.#t.adblockSettings&&this.#t.adblockSettings.adbVersion&&(t+=`&adbv=${this.#t.adblockSettings.adbVersion}`),this.#s.isSandboxed()&&(t+="&sbx=1"),this.#t.adblockSettings&&this.#s.isAdbMode()?(t+="&sadbl=2",t+="&fmt=suv5",this.#i.debug(`bid url: ${t}`),te(t)):(this.#i.debug(`bid url: ${t}`),t)}#F(e){try{let t=this.#N?this.#N(""):window.open("");return t.document.open(),t.document.writeln('
17 OCT 2024 - Welcome Back to TorrentFunk! Get your pirate hat back out. Streaming is dying and torrents are the new trend. Account Registration works again and so do Torrent Uploads. We invite you all to start uploading torrents again!
TORRENT DETAILS
[ WebToolTip.com ] Android App Development With Kotlin And Jetpack Compose (2025)
Level: All | Genre: eLearning | Language: English | Duration: 90 Lectures ( 10h 15m ) | Size: 3.84 GB
Master building modern Android apps from scratch using Kotlin and the declarative power of Jetpack Compose.
What you'll learn
Master Kotlin fundamentals including variables, functions, classes, and collections.
Build real-world Android applications from scratch using clean architecture.
Design beautiful UIs using Jetpack Compose and responsive layouts.
Manage UI state effectively using State, MutableState, and StateFlow.
Implement asynchronous programming with Kotlin Coroutines and Flow.
Use Room Database for local data persistence and observe changes in real-time.
Apply dependency injection using Hilt to manage app components cleanly.
Navigate between screens using Jetpack Navigation and SafeArgs.
Structure your code using MVVM (Model-View-ViewModel) architecture.
Handle user input and forms using Compose and ViewModel state management.
Requirements
No prior Android development experience is required — this course starts from the basics.
Basic programming knowledge (in any language) is helpful but not mandatory.
A computer (Windows, macOS, or Linux) capable of running Android Studio.
A stable internet connection to download tools and follow along with lessons.
Curiosity and willingness to learn by building real Android apps.
VISITOR COMMENTS (0 )
FILE LIST
Filename
Size
~Get Your Files Here !/1 - Kotlin fundamentals/01_kotlin_intro/KotlinIntroExample.kt
721 B
~Get Your Files Here !/1 - Kotlin fundamentals/05_null_safety/NullSafetyExample.kt
138 B
~Get Your Files Here !/1 - Kotlin fundamentals/1 -Section Goals.mp4
13.6 MB
~Get Your Files Here !/1 - Kotlin fundamentals/10 -Classes and Objects.mp4
87.3 MB
~Get Your Files Here !/1 - Kotlin fundamentals/11 -init, Getters and Setters.mp4
52.6 MB
~Get Your Files Here !/1 - Kotlin fundamentals/12 -Inheritance Basics.mp4
59.2 MB
~Get Your Files Here !/1 - Kotlin fundamentals/13 -Inheritance Continued.mp4
68.1 MB
~Get Your Files Here !/1 - Kotlin fundamentals/14 -Abstract Classes.mp4
84.6 MB
~Get Your Files Here !/1 - Kotlin fundamentals/15 -Abstract classes continued.mp4
46.2 MB
~Get Your Files Here !/1 - Kotlin fundamentals/16 -Merging Lists with Polymorphism in Kotlin.mp4
75.6 MB
~Get Your Files Here !/1 - Kotlin fundamentals/17 -Interfaces.mp4
35.6 MB
~Get Your Files Here !/1 - Kotlin fundamentals/18 -Interfaces continued.mp4
49.4 MB
~Get Your Files Here !/1 - Kotlin fundamentals/19 -Comparing Objects in Kotlin.mp4
41.9 MB
~Get Your Files Here !/1 - Kotlin fundamentals/2 -Why use Kotlin.mp4
2.5 MB
~Get Your Files Here !/1 - Kotlin fundamentals/20 -equals() and hashcode().mp4
41.4 MB
~Get Your Files Here !/1 - Kotlin fundamentals/21 -Data Classes.mp4
24.4 MB
~Get Your Files Here !/1 - Kotlin fundamentals/22 -Intro to Lambdas.mp4
25.5 MB
~Get Your Files Here !/1 - Kotlin fundamentals/23 -Lambdas as Function Parameters and map.mp4
36.4 MB
~Get Your Files Here !/1 - Kotlin fundamentals/24 -Lambdas with filter.mp4
14.6 MB
~Get Your Files Here !/1 - Kotlin fundamentals/3 -Data Types Overview.mp4
7.9 MB
~Get Your Files Here !/1 - Kotlin fundamentals/4 -Data Types in Detail.mp4
33.3 MB
~Get Your Files Here !/1 - Kotlin fundamentals/5 -val vs var.mp4
10.8 MB
~Get Your Files Here !/1 - Kotlin fundamentals/6 -Functions & when Expression.mp4
37.5 MB
~Get Your Files Here !/1 - Kotlin fundamentals/7 -Lists in Kotlin.mp4
21 MB
~Get Your Files Here !/1 - Kotlin fundamentals/8 -Null Safety.mp4
19 MB
~Get Your Files Here !/1 - Kotlin fundamentals/9 -Classes.mp4
40.9 MB
~Get Your Files Here !/1 - Kotlin fundamentals/AbstractClassDemo.kt
1.3 KB
~Get Your Files Here !/1 - Kotlin fundamentals/BankAccount.kt
1.1 KB
~Get Your Files Here !/1 - Kotlin fundamentals/ComparingObjects.kt
1001 B
~Get Your Files Here !/1 - Kotlin fundamentals/DataClass.kt
556 B
~Get Your Files Here !/1 - Kotlin fundamentals/inheritance.kt
990 B
~Get Your Files Here !/1 - Kotlin fundamentals/Inhertiance and Polymorphism/Inheritance and Interfaces.md
324 B
~Get Your Files Here !/1 - Kotlin fundamentals/Inhertiance and Polymorphism/ProductExample.kt
4.2 KB
~Get Your Files Here !/1 - Kotlin fundamentals/Lambdas.kt
754 B
~Get Your Files Here !/1 - Kotlin fundamentals/Person.kt
381 B
~Get Your Files Here !/10 - ViewModel & State Handling/1 -Section Goals.mp4
10.9 MB
~Get Your Files Here !/10 - ViewModel & State Handling/2 -Creating a State Class for the Notes Screen.mp4
67.6 MB
~Get Your Files Here !/10 - ViewModel & State Handling/3 -Using StateFlow to Expose State from the ViewModel.mp4
64.4 MB
~Get Your Files Here !/10 - ViewModel & State Handling/4 -Handling UI Events Inside the ViewModel.mp4
78 MB
~Get Your Files Here !/10 - ViewModel & State Handling/5 -Loading Notes from the Network into the ViewModel.mp4
74 MB
~Get Your Files Here !/10 - ViewModel & State Handling/6 -Understanding State Hoisting in Compose.mp4
64.8 MB
~Get Your Files Here !/10 - ViewModel & State Handling/7 -Focus Notes App – Final Demo and Behind the Scenes.mp4
18.3 MB
~Get Your Files Here !/10 - ViewModel & State Handling/8 -Conclusion.mp4
20.7 MB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/build.gradle.kts
2.5 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/gitignore
6 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/proguard-rules.pro
750 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/androidTest/java/com/dev/focusnotes/ExampleInstrumentedTest.kt
663 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/AndroidManifest.xml
1.2 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/data/NoteMappings.kt
2 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/data/repository/DefaultNotesRepository.kt
2.9 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/data/repository/NotesRepository.kt
789 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/data/source/local/Converters.kt
507 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/data/source/local/LocalNote.kt
584 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/data/source/local/NoteDao.kt
1.8 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/data/source/local/NotesDatabase.kt
932 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/data/source/network/FakeNetworkDataSource.kt
1.3 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/data/source/network/NetworkDataSource.kt
178 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/data/source/network/NetworkNote.kt
539 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/data/source/network/NotesApiService.kt
307 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/data/source/network/RetrofitNetworkDataSource.kt
440 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/di/CoroutinesModule.kt
1.1 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/di/DataModules.kt
2.3 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/domain/model/DrawerMenuItem.kt
248 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/domain/model/Note.kt
536 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/domain/usecase/GetNoteByIdUseCase.kt
271 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/domain/usecase/GetNotesUseCase.kt
622 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/domain/usecase/NoteUseCases.kt
183 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/domain/usecase/SaveNoteUseCase.kt
664 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/FocusNotesApplication.kt
162 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/MainActivity.kt
579 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/NoteDestinations.kt
2 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/NotesNavGraph.kt
4.2 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/ui/screens/addeditnote/AddEditNoteScreen.kt
5 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/ui/screens/addeditnote/AddEditNoteViewModel.kt
3.3 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/ui/screens/notes/NotesFilterType.kt
110 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/ui/screens/notes/NotesScreen.kt
6.8 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/ui/screens/notes/NotesViewModel.kt
4.5 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/ui/theme/Color.kt
282 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/ui/theme/Theme.kt
1.7 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/ui/theme/Type.kt
987 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/ui/util/Async.kt
934 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/ui/util/ComposeUtils.kt
2 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/ui/util/DateUtils.kt
320 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/ui/util/NoteDrawer.kt
4.6 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/java/com/dev/focusnotes/ui/util/TopAppBars.kt
6.5 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/res/drawable/drawer_item_color.xml
906 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/res/drawable/ic_add.xml
981 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/res/drawable/ic_assignment_turned_in_24dp.xml
1.2 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/res/drawable/ic_check_circle_96dp.xml
1.1 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/res/drawable/ic_done.xml
996 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/res/drawable/ic_edit.xml
1.1 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/res/drawable/ic_filter_list.xml
990 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/res/drawable/ic_launcher_background.xml
5.5 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/res/drawable/ic_launcher_foreground.xml
1.7 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/res/drawable/ic_list.xml
1 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/res/drawable/ic_menu.xml
993 B
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/app/src/main/res/drawable/ic_statistics.xml
1.1 KB
~Get Your Files Here !/10 - ViewModel & State Handling/MyFocusNotes-main/README.md