Merge BaseActivity into MainActivity

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2023-07-06 18:09:04 +05:30
parent 544ee8eb54
commit 580f1ed40f
2 changed files with 46 additions and 95 deletions

View File

@@ -34,6 +34,7 @@ import android.widget.ImageView
import android.widget.TextView import android.widget.TextView
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
import androidx.annotation.IdRes import androidx.annotation.IdRes
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.graphics.ColorUtils import androidx.core.graphics.ColorUtils
import androidx.core.view.GravityCompat import androidx.core.view.GravityCompat
@@ -47,37 +48,56 @@ import com.aurora.gplayapi.data.models.AuthData
import com.aurora.store.data.model.SelfUpdate import com.aurora.store.data.model.SelfUpdate
import com.aurora.store.data.network.HttpClient import com.aurora.store.data.network.HttpClient
import com.aurora.store.data.providers.AuthProvider import com.aurora.store.data.providers.AuthProvider
import com.aurora.store.data.providers.NetworkProvider
import com.aurora.store.databinding.ActivityMainBinding import com.aurora.store.databinding.ActivityMainBinding
import com.aurora.store.util.CertUtil.isFDroidApp import com.aurora.store.util.CertUtil.isFDroidApp
import com.aurora.store.util.Log import com.aurora.store.util.Log
import com.aurora.store.util.Preferences import com.aurora.store.util.Preferences
import com.aurora.store.view.ui.commons.BaseActivity import com.aurora.store.view.ui.sheets.NetworkDialogSheet
import com.aurora.store.view.ui.sheets.SelfUpdateSheet import com.aurora.store.view.ui.sheets.SelfUpdateSheet
import com.aurora.store.view.ui.sheets.TOSSheet
import com.bumptech.glide.load.resource.bitmap.RoundedCorners import com.bumptech.glide.load.resource.bitmap.RoundedCorners
import com.google.android.material.bottomnavigation.BottomNavigationView import com.google.android.material.bottomnavigation.BottomNavigationView
import com.google.gson.Gson
import com.google.gson.GsonBuilder
import nl.komponents.kovenant.task import nl.komponents.kovenant.task
import nl.komponents.kovenant.ui.successUi import nl.komponents.kovenant.ui.successUi
import java.lang.reflect.Modifier
class MainActivity : BaseActivity() { class MainActivity : AppCompatActivity(), NetworkProvider.NetworkListener {
private lateinit var B: ActivityMainBinding private lateinit var B: ActivityMainBinding
private lateinit var navController: NavController private lateinit var navController: NavController
private lateinit var authData: AuthData private lateinit var authData: AuthData
private var lastBackPressed = 0L
private val startForPermissions = private val startForPermissions =
registerForActivityResult(ActivityResultContracts.RequestPermission()) { registerForActivityResult(ActivityResultContracts.RequestPermission()) {
if (!it) toast(R.string.permissions_denied) if (!it) toast(R.string.permissions_denied)
} }
private val gson: Gson = GsonBuilder().excludeFieldsWithModifiers(Modifier.TRANSIENT).create()
override fun onConnected() { override fun onConnected() {
hideNetworkConnectivitySheet() runOnUiThread {
if (!supportFragmentManager.isDestroyed) {
val fragment = supportFragmentManager.findFragmentByTag(NetworkDialogSheet.TAG)
fragment?.let {
supportFragmentManager.beginTransaction().remove(fragment)
.commitAllowingStateLoss()
}
}
}
} }
override fun onDisconnected() { override fun onDisconnected() {
showNetworkConnectivitySheet() runOnUiThread {
if (!supportFragmentManager.isDestroyed) {
supportFragmentManager.beginTransaction()
.add(NetworkDialogSheet.newInstance(), NetworkDialogSheet.TAG)
.commitAllowingStateLoss()
}
}
} }
override fun onReconnected() { override fun onReconnected() {
@@ -99,6 +119,9 @@ class MainActivity : BaseActivity() {
} }
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
val themeId = Preferences.getInteger(this, Preferences.PREFERENCE_THEME_TYPE)
val accentId = Preferences.getInteger(this, Preferences.PREFERENCE_THEME_ACCENT)
applyTheme(themeId, accentId)
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
B = ActivityMainBinding.inflate(layoutInflater) B = ActivityMainBinding.inflate(layoutInflater)
@@ -113,7 +136,13 @@ class MainActivity : BaseActivity() {
attachSearch() attachSearch()
if (!Preferences.getBoolean(this, Preferences.PREFERENCE_TOS_READ)) { if (!Preferences.getBoolean(this, Preferences.PREFERENCE_TOS_READ)) {
askToReadTOS() runOnUiThread {
if (!supportFragmentManager.isDestroyed) {
val sheet = TOSSheet.newInstance()
sheet.isCancelable = false
sheet.show(supportFragmentManager, TOSSheet.TAG)
}
}
} }
/*Check only if download to external storage is enabled*/ /*Check only if download to external storage is enabled*/
@@ -295,4 +324,14 @@ class MainActivity : BaseActivity() {
sheet.show(supportFragmentManager, SelfUpdateSheet.TAG) sheet.show(supportFragmentManager, SelfUpdateSheet.TAG)
} }
} }
override fun onStart() {
super.onStart()
NetworkProvider.addListener(this)
}
override fun onStop() {
NetworkProvider.removeListener(this)
super.onStop()
}
} }

View File

@@ -1,88 +0,0 @@
/*
* Aurora Store
* Copyright (C) 2021, Rahul Kumar Patel <whyorean@gmail.com>
*
* Aurora Store is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* Aurora Store is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Aurora Store. If not, see <http://www.gnu.org/licenses/>.
*
*/
package com.aurora.store.view.ui.commons
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.aurora.extensions.applyTheme
import com.aurora.store.data.providers.NetworkProvider
import com.aurora.store.util.Preferences
import com.aurora.store.util.Preferences.PREFERENCE_THEME_ACCENT
import com.aurora.store.util.Preferences.PREFERENCE_THEME_TYPE
import com.aurora.store.view.ui.sheets.NetworkDialogSheet
import com.aurora.store.view.ui.sheets.TOSSheet
import com.google.gson.Gson
import com.google.gson.GsonBuilder
import java.lang.reflect.Modifier
abstract class BaseActivity : AppCompatActivity(), NetworkProvider.NetworkListener {
protected val gson: Gson = GsonBuilder().excludeFieldsWithModifiers(Modifier.TRANSIENT).create()
override fun onCreate(savedInstanceState: Bundle?) {
val themeId = Preferences.getInteger(this, PREFERENCE_THEME_TYPE)
val accentId = Preferences.getInteger(this, PREFERENCE_THEME_ACCENT)
applyTheme(themeId, accentId)
super.onCreate(savedInstanceState)
}
fun askToReadTOS() {
runOnUiThread {
if (!supportFragmentManager.isDestroyed) {
val sheet = TOSSheet.newInstance()
sheet.isCancelable = false
sheet.show(supportFragmentManager, TOSSheet.TAG)
}
}
}
fun showNetworkConnectivitySheet() {
runOnUiThread {
if (!supportFragmentManager.isDestroyed) {
supportFragmentManager.beginTransaction()
.add(NetworkDialogSheet.newInstance(), NetworkDialogSheet.TAG)
.commitAllowingStateLoss()
}
}
}
fun hideNetworkConnectivitySheet() {
runOnUiThread {
if (!supportFragmentManager.isDestroyed) {
val fragment = supportFragmentManager.findFragmentByTag(NetworkDialogSheet.TAG)
fragment?.let {
supportFragmentManager.beginTransaction().remove(fragment)
.commitAllowingStateLoss()
}
}
}
}
override fun onStart() {
super.onStart()
NetworkProvider.addListener(this)
}
override fun onStop() {
NetworkProvider.removeListener(this)
super.onStop()
}
}