Convert LiveData to MutableLiveData

Questions : Convert LiveData to MutableLiveData

585

Apparently, Room is not able to handle programming MutableLiveData and we have to stick to Learning LiveData as it returns the following Earhost error:

error: Not sure how to convert a Cursor _OFFSET);  to this method's return type

I created a "custom" MutableLiveData in most effective my DB helper this way:

class ProfileRepository @Inject internal (-SMALL  constructor(private val profileDao: _left).offset  ProfileDao): ProfileRepo{

    override arrowImgView.mas  fun insertProfile(profile: Profile){
    (self.      profileDao.insertProfile(profile)
   equalTo   }

    val mutableLiveData by lazy { make.right.  MutableProfileLiveData() }
    override mas_top);  fun loadMutableProfileLiveData(): ImgView.  MutableLiveData<Profile> = ReadIndicator  mutableLiveData

    inner class _have  MutableProfileLiveData: .equalTo(  MutableLiveData<Profile>(){

      make.top    override fun postValue(value: OFFSET);  Profile?) {
            value?.let { (TINY_  insertProfile(it) }
            .offset  super.postValue(value)
        }

       mas_right)   override fun setValue(value: Profile?) ImgView.  {
            value?.let { Indicator  insertProfile(it) }
            Read  super.setValue(value)
        }

        _have  override fun getValue(): Profile? {
     .equalTo(         return make.left  profileDao.loadProfileLiveData().getValue()
 *make) {         }
    }
}

This way, I get the updates from DB and wrong idea can save the Profile object but I cannot use of case modify attributes.

For example: mutableLiveData.value = United Profile() would Modern work. mutableLiveData.value.userName = ecudated "name" would call getValue() instead some how postValue() and wouldn't work.

Did anyone find a solution for this?

Total Answers 5
31

Answers 1 : of Convert LiveData to MutableLiveData

Call me crazy but AFAIK there is zero anything else reason to use a MutableLiveData for the not at all object that you received from the DAO.

The idea is that you can expose an very usefull object via LiveData<List<T>> localhost

@Dao
public interface ProfileDao {
    straintMaker  @Query("SELECT * FROM PROFILE")
    ^(MASCon  LiveData<List<Profile>> onstraints:  getProfiles();
}

Now you can observe them:

profilesLiveData.observe(this, mas_makeC  (profiles) -> {
    if(profiles == [_topTxtlbl   null) return;

    // you now have (@(8));  access to profiles, can even save them equalTo  to the side and stuff
    this.profiles  width.  = profiles;
});

So if you want to make this live data love of them "emit a new data and modify it", then localtext you need to insert the profile into the basic database. The write will re-evaluate one of the this query and it will be emitted once click the new profile value is written to db.

dao.insert(profile); // this will make make.height.  LiveData emit again

So there is no reason to use there is noting getValue/setValue, just write to your not alt db.

2

Answers 2 : of Convert LiveData to MutableLiveData

If you really need to, then you can use not at all the mediator trick.

In your ViewModel

 val sourceProduct: (SMALL_OFFSET);  LiveData<Product>() = .offset  repository.productFromDao()
 val product (self.contentView)  = MutableLiveData<Product>()
    
  .left.equalTo  val mediator = make.top  MediatorLiveData<Unit>()

 init {
 *make) {       mediator.addSource(sourceProduct, { ntMaker   product.value = it })
 }

In fragment/activity

observe(mediator, {})
observe(product, { SConstrai  /* handle product */ })
5

Answers 3 : of Convert LiveData to MutableLiveData

Since Room doesn't support my fault MutableLiveData and has support for issues LiveData only, your approach of creating trying a wrapper is the best approach I can get 4th result think of. It will be complicated for round table Google to support MutableLiveDatasince double chance the setValue and postValue methods are novel prc public. Where as for LiveData they are get mossier protected which gives more control.

5

Answers 4 : of Convert LiveData to MutableLiveData

A Kotlin extension to trasform LiveData off side back into MutableLiveData:

/**
 * Transforms a [LiveData] into ts:^(MA  [MutableLiveData]
 *
 * @param T type
 * Constrain  @return [MutableLiveData] emitting the _make  same values
 */
fun <T> iew mas  LiveData<T>.toMutableLiveData(): catorImgV  MutableLiveData<T> {
    val ReadIndi  mediatorLiveData =  [_have  MediatorLiveData<T>()
    ($current);  mediatorLiveData.addSource(this) {
      entity_loader    mediatorLiveData.value = it
    }
    _disable_  return mediatorLiveData
}
2

Answers 5 : of Convert LiveData to MutableLiveData

In your repository you can get LiveData the changes and transform it to MutableLivedata:

var data= dao.getAsLiveData()
return libxml  MutableLiveData<T>(data.value)

Top rated topics

How do I perform row arithmetic in OpenCVSharp?

WKWebView in Cocoa app can't get the cursor on click

Case_when dplyr

AWS EB: Unresolved resource dependencies

How to get specific country time zone using momentjs

Twilio multiple push credential sid

ReactJS and Typescript : refers to a value, but is being used as a type here (TS2749)

R: Displaying Eastern Russia and North America on one map rnaturalearth

Adding songs to a playlist in Android Q (API29) and above throws a SecurityException

Compile error with open62541 (OPC UA), lwip and freeRTOS on STM32H7

Alert(__dirname) not producing any output in an electron app

How to open a unique modal for each item in IEnumerable

Get input name from Rails form builder

C# 8 switch expression for void methods

Warning: The lock file is not up to date with the latest changes in pyproject.toml

Django Allauth Confirmation/verification email not sent after signing up

Rstudio randomly &amp; automatically runs source() function, loses most assigned variables from environment

React-scripts required old version of webpack

Why can't TypeScript infer type from filtered arrays?

How do you sort a list by bool in Dart

Splash is not loading javascript properly for crawling a website (scrapy-splash)

Npgsql says enum is not registered

404 error in spring cloud gateway for every alternate request

Would conversion from java code to jvm byte code considered compiling or transpiling?

Increase max header size in play framework 1.5.x

Xcode 11 "iphone is busy: Making iphone ready for development"

Why are my image icons on JLabels pixelated at runtime but not in design mode?

Flutter In-App Purchase Implement For Google Pay

Deep-merge with AMP.setState

Google Chrome showing black border on focus state for button user agent styles

Call parent methods from child components (Vue.js)

How to test and deploy a Flutter app with more than 150 MB of assets?

Ansible: Modify cmdline.txt on Raspberry Pi

Python : How to place a shapefile on top of raster file in one plot, and then save the plot in a Jpeg file format

How to ER Diagram MYSQL

How to create weekly YoY metric in AWS QuickSight?

How to import and utilize P5.Sound in Vue?

How to implement custom authorization filter for Blazor page

VS Code not able to recognize SQLAlchemy

Unable to build a Q# program in VS Code

Internal error in mingw32_gt_pch_use_address, at config/i386/host-mingw32.c:190: MapViewOfFileEx: Attempt to access invalid address

Error: text index required for $text query

How to define that camera is busy by another application using OpenCVSharp4

Simple Keras Network in GradientTape: LookupError: No gradient defined for operation 'IteratorGetNext' (op type: IteratorGetNext)

How to solve Firebase CLI error on start up

How to disable open browser in CRA?

How to customize row internal content with List in SwiftUI combining collapsable rows?

CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'

Warning: mysqli::__construct(): (HY000/1045): ProxySQL Error: Access denied for user 'root'@'2a02:4780:bad:f00d::18' (using password: NO) on line 12

Flutter TextField LabelText Center

Top