Skip to content

Commit c123c7b

Browse files
continue room migration [2/?]
w: builds are still expected to fail [skip ci] Signed-off-by: androidacy-user <opensource@androidacy.com>
1 parent 74e3a74 commit c123c7b

9 files changed

Lines changed: 162 additions & 339 deletions

File tree

0 Bytes
Binary file not shown.

app/src/main/kotlin/com/fox2code/mmm/SetupActivity.kt

Lines changed: 16 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import androidx.room.Room
2222
import com.fox2code.foxcompat.app.FoxActivity
2323
import com.fox2code.mmm.databinding.ActivitySetupBinding
2424
import com.fox2code.mmm.utils.IntentHelper
25-
import com.fox2code.mmm.utils.realm.ReposList
2625
import com.fox2code.mmm.utils.room.ModuleListCacheDatabase
2726
import com.fox2code.mmm.utils.room.ReposListDatabase
2827
import com.fox2code.rosettax.LanguageActivity
@@ -33,8 +32,6 @@ import com.google.android.material.checkbox.MaterialCheckBox
3332
import com.google.android.material.dialog.MaterialAlertDialogBuilder
3433
import com.google.android.material.materialswitch.MaterialSwitch
3534
import com.topjohnwu.superuser.internal.UiThreadHandler
36-
import io.realm.Realm
37-
import io.realm.RealmConfiguration
3835
import org.apache.commons.io.FileUtils
3936
import timber.log.Timber
4037
import java.io.File
@@ -43,7 +40,6 @@ import java.util.Objects
4340

4441
class SetupActivity : FoxActivity(), LanguageActivity {
4542
private var cachedTheme = 0
46-
private var realmDatabasesCreated = false
4743

4844
@SuppressLint("ApplySharedPref", "RestrictedApi")
4945
override fun onCreate(savedInstanceState: Bundle?) {
@@ -227,36 +223,19 @@ class SetupActivity : FoxActivity(), LanguageActivity {
227223
(Objects.requireNonNull<Any>(view.findViewById(R.id.setup_app_analytics)) as MaterialSwitch).isChecked
228224
)
229225
Timber.d("Saving preferences")
230-
// Set the repos in the ReposList realm db
231-
val realmConfig = RealmConfiguration.Builder().name("ReposList.realm")
232-
.encryptionKey(MainApplication.INSTANCE!!.key)
233-
.directory(MainApplication.INSTANCE!!.getDataDirWithPath("realms"))
234-
.schemaVersion(1).build()
235-
val androidacyRepo = andRepoView.isChecked
236-
val magiskAltRepo = magiskAltRepoView.isChecked
237-
var realm = Realm.getInstance(realmConfig)
238-
Timber.d("Realm instance: %s", realm)
239-
if (realm.isInTransaction) {
240-
realm.commitTransaction()
241-
Timber.d("Committed last unfinished transaction")
242-
}
243-
// check if instance has been closed
244-
if (realm.isClosed) {
245-
Timber.d("Realm instance was closed, reopening")
246-
realm = Realm.getInstance(realmConfig)
247-
}
248-
realm.executeTransactionAsync { r: Realm ->
249-
Timber.d("Realm transaction started")
250-
r.where(ReposList::class.java).equalTo("id", "androidacy_repo")
251-
.findFirst()!!.isEnabled = androidacyRepo
252-
r.where(ReposList::class.java).equalTo("id", "magisk_alt_repo")
253-
.findFirst()!!.isEnabled = magiskAltRepo
254-
Timber.d("Realm transaction committing")
255-
// commit the changes
256-
r.commitTransaction()
257-
r.close()
258-
Timber.d("Realm transaction committed")
259-
}
226+
// now basically do the same thing for room db
227+
val db = Room.databaseBuilder(
228+
applicationContext,
229+
ReposListDatabase::class.java, "ReposList.db"
230+
).build()
231+
val androidacyRepoRoom = andRepoView.isChecked
232+
val magiskAltRepoRoom = magiskAltRepoView.isChecked
233+
val reposListDao = db.reposListDao()
234+
val androidacyRepoRoomObj = reposListDao.getById("androidacy_repo")
235+
val magiskAltRepoRoomObj = reposListDao.getById("magisk_alt_repo")
236+
reposListDao.setEnabled(androidacyRepoRoomObj.id, androidacyRepoRoom)
237+
reposListDao.setEnabled(magiskAltRepoRoomObj.id, magiskAltRepoRoom)
238+
db.close()
260239
editor.putString("last_shown_setup", "v3")
261240
// Commit the changes
262241
editor.commit()
@@ -268,8 +247,8 @@ class SetupActivity : FoxActivity(), LanguageActivity {
268247
}
269248
// Log the changes
270249
Timber.d("Setup finished. Preferences: %s", prefs.all)
271-
Timber.d("Androidacy repo: %s", androidacyRepo)
272-
Timber.d("Magisk Alt repo: %s", magiskAltRepo)
250+
Timber.d("Androidacy repo: %s", androidacyRepoRoom)
251+
Timber.d("Magisk Alt repo: %s", magiskAltRepoRoom)
273252
// log last shown setup
274253
Timber.d("Last shown setup: %s", prefs.getString("last_shown_setup", "v0"))
275254
// Restart the activity
@@ -384,7 +363,6 @@ class SetupActivity : FoxActivity(), LanguageActivity {
384363
FileUtils.forceMkdir(File(MainApplication.INSTANCE!!.dataDir.toString() + "/cache/cronet"))
385364
FileUtils.forceMkdir(File(MainApplication.INSTANCE!!.dataDir.toString() + "/cache/WebView/Default/HTTP Cache/Code Cache/wasm"))
386365
FileUtils.forceMkdir(File(MainApplication.INSTANCE!!.dataDir.toString() + "/cache/WebView/Default/HTTP Cache/Code Cache/js"))
387-
FileUtils.forceMkdir(File(MainApplication.INSTANCE!!.dataDir.toString() + "/repos/magiskAltRepo"))
388366
} catch (e: IOException) {
389367
Timber.e(e)
390368
}
@@ -393,7 +371,7 @@ class SetupActivity : FoxActivity(), LanguageActivity {
393371

394372
@Suppress("KotlinConstantConditions")
395373
private fun disableUpdateActivityForFdroidFlavor() {
396-
if (BuildConfig.FLAVOR == "fdroid") {
374+
if (BuildConfig.FLAVOR == "fdroid" || BuildConfig.FLAVOR == "play") {
397375
// check if the update activity is enabled
398376
val pm = packageManager
399377
val componentName = ComponentName(this, UpdateActivity::class.java)

app/src/main/kotlin/com/fox2code/mmm/background/BackgroundUpdateChecker.kt

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import androidx.work.WorkManager
2626
import androidx.work.Worker
2727
import androidx.work.WorkerParameters
2828
import com.fox2code.mmm.AppUpdateManager
29+
import com.fox2code.mmm.BuildConfig
2930
import com.fox2code.mmm.MainActivity
3031
import com.fox2code.mmm.MainApplication
3132
import com.fox2code.mmm.R
@@ -53,7 +54,7 @@ class BackgroundUpdateChecker(context: Context, workerParams: WorkerParameters)
5354
private const val NOTFIICATION_GROUP = "updates"
5455
private const val NOTIFICATION_CHANNEL_ID_APP = "background_update_app"
5556
val lock =
56-
Any() // Avoid concurrency issuespublic static final String NOTIFICATION_CHANNEL_ID = "background_update";
57+
Any() // Avoid concurrency issues
5758
private const val NOTIFICATION_ID_ONGOING = 2
5859
private const val NOTIFICATION_CHANNEL_ID_ONGOING = "mmm_background_update"
5960
private const val NOTIFICATION_ID_APP = 3
@@ -111,7 +112,7 @@ class BackgroundUpdateChecker(context: Context, workerParams: WorkerParameters)
111112
}
112113
}
113114

114-
@Suppress("NAME_SHADOWING")
115+
@Suppress("NAME_SHADOWING", "KotlinConstantConditions")
115116
fun doCheck(context: Context) {
116117
// first, check if the user has enabled background update checking
117118
if (!MainApplication.getSharedPreferences("mmm")!!
@@ -280,14 +281,20 @@ class BackgroundUpdateChecker(context: Context, workerParams: WorkerParameters)
280281
if (MainApplication.getSharedPreferences("mmm")!!
281282
.getBoolean("pref_background_update_check_app", false)
282283
) {
283-
try {
284-
val shouldUpdate = AppUpdateManager.appUpdateManager.checkUpdate(true)
285-
if (shouldUpdate) {
286-
Timber.d("Found app update")
287-
postNotificationForAppUpdate(context)
284+
285+
// don't check if app is from play store or fdroid
286+
if (BuildConfig.FLAVOR != "play" || BuildConfig.FLAVOR != "fdroid") {
287+
try {
288+
val shouldUpdate = AppUpdateManager.appUpdateManager.checkUpdate(true)
289+
if (shouldUpdate) {
290+
Timber.d("Found app update")
291+
postNotificationForAppUpdate(context)
292+
} else {
293+
Timber.d("No app update found")
294+
}
295+
} catch (e: Exception) {
296+
Timber.e("Failed to check for app update")
288297
}
289-
} catch (e: Exception) {
290-
Timber.e("Failed to check for app update")
291298
}
292299
}
293300
// remove checking notification

0 commit comments

Comments
 (0)