Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e3f15002 authored by Zoey Chen's avatar Zoey Chen
Browse files

[Settings] Do not creat multiple database

Bug: 254405469
Test: manual
Change-Id: Iad53adec79d2207cc2892029c849074b31c6ad6d
parent 5611f587
Loading
Loading
Loading
Loading
+17 −6
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.content.Context;
import android.util.Log;

import java.util.List;
import java.util.Objects;

import androidx.lifecycle.LiveData;
import androidx.room.Database;
@@ -39,18 +40,28 @@ public abstract class MobileNetworkDatabase extends RoomDatabase {

    public abstract MobileNetworkInfoDao mMobileNetworkInfoDao();

    private static MobileNetworkDatabase sInstance;
    private static final Object sLOCK = new Object();


    /**
     * Create the MobileNetworkDatabase.
     *
     * @param context The context.
     * @return The MobileNetworkDatabase.
     */
    public static MobileNetworkDatabase createDatabase(Context context) {
        return Room.inMemoryDatabaseBuilder(context, MobileNetworkDatabase.class)
    public static MobileNetworkDatabase getInstance(Context context) {
        synchronized (sLOCK) {
            if (Objects.isNull(sInstance)) {
                Log.d(TAG, "createDatabase.");
                sInstance = Room.inMemoryDatabaseBuilder(context, MobileNetworkDatabase.class)
                        .fallbackToDestructiveMigration()
                        .enableMultiInstanceInvalidation()
                        .build();
            }
        }
        return sInstance;
    }

    /**
     * Insert the subscription info to the SubscriptionInfoEntity table.
@@ -93,7 +104,7 @@ public abstract class MobileNetworkDatabase extends RoomDatabase {
     * Query the subscription info by the subscription ID from the SubscriptionInfoEntity
     * table.
     */
    public LiveData<SubscriptionInfoEntity> querySubInfoById(String id) {
    public SubscriptionInfoEntity querySubInfoById(String id) {
        return mSubscriptionInfoDao().querySubInfoById(id);
    }

+1 −1
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ public interface SubscriptionInfoDao {

    @Query("SELECT * FROM " + DataServiceUtils.SubscriptionInfoData.TABLE_NAME + " WHERE "
            + DataServiceUtils.SubscriptionInfoData.COLUMN_ID + " = :subId")
    LiveData<SubscriptionInfoEntity> querySubInfoById(String subId);
    SubscriptionInfoEntity querySubInfoById(String subId);

    @Query("SELECT * FROM " + DataServiceUtils.SubscriptionInfoData.TABLE_NAME + " WHERE "
            + DataServiceUtils.SubscriptionInfoData.COLUMN_IS_ACTIVE_SUBSCRIPTION_ID