Skip to content

Commit

Permalink
Fixed startup crash
Browse files Browse the repository at this point in the history
  • Loading branch information
AndraxDev committed Mar 30, 2024
1 parent 9226b89 commit 6d95327
Show file tree
Hide file tree
Showing 7 changed files with 115 additions and 51 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ android {
minSdk 28
//noinspection ExpiredTargetSdkVersion
targetSdk 34
versionCode 310
versionName "3.10"
versionCode 311
versionName "3.11"
externalNativeBuild {
cmake {
cppFlags ''
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ class DataSafety : FragmentActivity() {
editor.putBoolean("consent", true)
editor.apply()
startActivity(Intent(this, MainActivity::class.java))
finish()
}

btnPrivacyPolicy?.setOnClickListener {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,8 @@ class MainActivity : FragmentActivity() {

private var preferences: Preferences? = null

private var isInitialized: Boolean = false

private val requestListener = object : RequestNetwork.RequestListener {
override fun onResponse(tag: String, message: String) {
val preferences = Preferences.getPreferences(this@MainActivity, "")
Expand Down Expand Up @@ -148,15 +150,16 @@ class MainActivity : FragmentActivity() {

threadLoader?.visibility = View.VISIBLE

preloadAmoled()

btnDebugger?.visibility = View.GONE
debuggerWindow?.visibility = View.GONE

frameChats = supportFragmentManager.findFragmentById(R.id.fragment_chats_)
framePrompts = supportFragmentManager.findFragmentById(R.id.fragment_prompts_)
frameTips = supportFragmentManager.findFragmentById(R.id.fragment_tips_)

preloadAmoled()
reloadAmoled()

if (Build.VERSION.SDK_INT >= 33) {
onBackInvokedDispatcher.registerOnBackInvokedCallback(
OnBackInvokedDispatcher.PRIORITY_DEFAULT
Expand Down Expand Up @@ -189,8 +192,6 @@ class MainActivity : FragmentActivity() {
DeviceInfoProvider.assignInstallationId(this)

runOnUiThread {
reloadAmoled()

navigationBar!!.setOnItemSelectedListener(NavigationBarView.OnItemSelectedListener { item: MenuItem ->
if (!isAnimating) {
isAnimating = true
Expand Down Expand Up @@ -303,6 +304,8 @@ class MainActivity : FragmentActivity() {
runOnUiThread {
threadLoader?.visibility = View.GONE
threadLoader?.elevation = 0.0f

isInitialized = true
}
}

Expand Down Expand Up @@ -335,7 +338,7 @@ class MainActivity : FragmentActivity() {

override fun onResume() {
super.onResume()
reloadAmoled()
if (isInitialized) reloadAmoled()
}

private fun reloadAmoled() {
Expand Down Expand Up @@ -397,8 +400,8 @@ class MainActivity : FragmentActivity() {
}
}

(frameChats as ChatsListFragment).reloadAmoled()
(framePrompts as PromptsFragment).reloadAmoled()
(frameChats as ChatsListFragment).reloadAmoled(this)
(framePrompts as PromptsFragment).reloadAmoled(this)
}

private fun preloadAmoled() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1038,7 +1038,6 @@ class SettingsV2Activity : FragmentActivity() {
}

if (preferences?.getAdsEnabled()!!) {
// TODO: MAke button visible
// btnRemoveAds?.visibility = View.VISIBLE
btnRemoveAds?.visibility = View.GONE
MobileAds.initialize(this) { /* unused */ }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,8 @@ class ChatsListFragment : Fragment() {

private var searchTerm: String = ""

private var isAttached: Boolean = false

var chatListUpdatedListener: AddChatDialogFragment.StateChangesListener = object : AddChatDialogFragment.StateChangesListener {
override fun onAdd(name: String, id: String, fromFile: Boolean) {
initSettings()
Expand Down Expand Up @@ -137,6 +139,18 @@ class ChatsListFragment : Fragment() {
}
}

override fun onAttach(context: Context) {
super.onAttach(context)

isAttached = true
}

override fun onDetach() {
super.onDetach()

isAttached = false
}

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
Expand All @@ -150,17 +164,17 @@ class ChatsListFragment : Fragment() {
initSettings()
}

fun reloadAmoled() {
if (isDarkThemeEnabled() && Preferences.getPreferences(requireActivity(), "").getAmoledPitchBlack()) {
btnSettings?.background = ResourcesCompat.getDrawable(resources, R.drawable.btn_accent_tonal_amoled, requireActivity().theme)!!
bgSearch?.background = ResourcesCompat.getDrawable(resources, R.drawable.btn_accent_tonal_amoled, requireActivity().theme)!!
btnImport?.backgroundTintList = ResourcesCompat.getColorStateList(resources, R.color.amoled_accent_100, requireActivity().theme)
btnAdd?.backgroundTintList = ResourcesCompat.getColorStateList(resources, R.color.accent_600, requireActivity().theme)
fun reloadAmoled(context: Context) {
if (isDarkThemeEnabled() && Preferences.getPreferences(context, "").getAmoledPitchBlack()) {
btnSettings?.background = ResourcesCompat.getDrawable(resources, R.drawable.btn_accent_tonal_amoled, context.theme)!!
bgSearch?.background = ResourcesCompat.getDrawable(resources, R.drawable.btn_accent_tonal_amoled, context.theme)!!
btnImport?.backgroundTintList = ResourcesCompat.getColorStateList(resources, R.color.amoled_accent_100, context.theme)
btnAdd?.backgroundTintList = ResourcesCompat.getColorStateList(resources, R.color.accent_600, context.theme)
} else {
btnSettings?.background = getDisabledDrawable(ResourcesCompat.getDrawable(resources, R.drawable.btn_accent_tonal, requireActivity().theme)!!)
bgSearch?.background = getDisabledDrawable(ResourcesCompat.getDrawable(resources, R.drawable.btn_accent_tonal, requireActivity().theme)!!)
btnImport?.backgroundTintList = ResourcesCompat.getColorStateList(resources, R.color.accent_250, requireActivity().theme)
btnAdd?.backgroundTintList = ResourcesCompat.getColorStateList(resources, R.color.accent_900, requireActivity().theme)
btnSettings?.background = getDisabledDrawable(ResourcesCompat.getDrawable(resources, R.drawable.btn_accent_tonal, context.theme)!!)
bgSearch?.background = getDisabledDrawable(ResourcesCompat.getDrawable(resources, R.drawable.btn_accent_tonal, context.theme)!!)
btnImport?.backgroundTintList = ResourcesCompat.getColorStateList(resources, R.color.accent_250, context.theme)
btnAdd?.backgroundTintList = ResourcesCompat.getColorStateList(resources, R.color.accent_900, context.theme)
}
}

Expand All @@ -169,6 +183,10 @@ class ChatsListFragment : Fragment() {


Thread {
while (!isAttached) {
Thread.sleep(100)
}

requireActivity().runOnUiThread {
initUI(view)
initChatsList()
Expand All @@ -185,7 +203,7 @@ class ChatsListFragment : Fragment() {
fieldSearch = view.findViewById(R.id.field_search)
bgSearch = view.findViewById(R.id.bg_search)
btnAdd = view.findViewById(R.id.btn_add)
reloadAmoled()
reloadAmoled(requireActivity())
}

private fun initChatsList() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
package org.teslasoft.assistant.ui.fragments.tabs

import android.annotation.SuppressLint
import android.content.Context
import android.content.res.Configuration
import android.graphics.drawable.Drawable
import android.os.Bundle
Expand Down Expand Up @@ -138,6 +139,8 @@ class PromptsFragment : Fragment(), SwipeRefreshLayout.OnRefreshListener {

private var btnSearch: ImageButton? = null

private var onAttach: Boolean = false

private val postPromptListener: PostPromptDialogFragment.StateChangesListener = object : PostPromptDialogFragment.StateChangesListener {
override fun onFormFilled(
name: String,
Expand Down Expand Up @@ -286,6 +289,11 @@ class PromptsFragment : Fragment(), SwipeRefreshLayout.OnRefreshListener {
btnImageModel = view.findViewById(R.id.btn_image_model)

Thread {

while (!onAttach) {
Thread.sleep(100)
}

requireActivity().runOnUiThread {
initLogic()
}
Expand Down Expand Up @@ -314,7 +322,7 @@ class PromptsFragment : Fragment(), SwipeRefreshLayout.OnRefreshListener {
}
})

reloadAmoled()
reloadAmoled(requireActivity())

noInternetLayout?.visibility = View.GONE
promptsList?.visibility = View.GONE
Expand Down Expand Up @@ -425,13 +433,13 @@ class PromptsFragment : Fragment(), SwipeRefreshLayout.OnRefreshListener {
}
}

fun reloadAmoled() {
if (isDarkThemeEnabled() && Preferences.getPreferences(requireActivity(), "").getAmoledPitchBlack()) {
searchBar?.background = ResourcesCompat.getDrawable(resources, R.drawable.btn_accent_tonal_amoled, requireActivity().theme)!!
btnPost?.backgroundTintList = ResourcesCompat.getColorStateList(resources, R.color.accent_600, requireActivity().theme)
fun reloadAmoled(context: Context) {
if (isDarkThemeEnabled() && Preferences.getPreferences(context, "").getAmoledPitchBlack()) {
searchBar?.background = ResourcesCompat.getDrawable(resources, R.drawable.btn_accent_tonal_amoled, context.theme)!!
btnPost?.backgroundTintList = ResourcesCompat.getColorStateList(resources, R.color.accent_600, context.theme)
} else {
searchBar?.background = getDisabledDrawable(ResourcesCompat.getDrawable(resources, R.drawable.btn_accent_tonal, requireActivity().theme)!!)
btnPost?.backgroundTintList = ResourcesCompat.getColorStateList(resources, R.color.accent_900, requireActivity().theme)
searchBar?.background = getDisabledDrawable(ResourcesCompat.getDrawable(resources, R.drawable.btn_accent_tonal, context.theme)!!)
btnPost?.backgroundTintList = ResourcesCompat.getColorStateList(resources, R.color.accent_900, context.theme)
}
}

Expand Down Expand Up @@ -573,4 +581,16 @@ class PromptsFragment : Fragment(), SwipeRefreshLayout.OnRefreshListener {
private fun getDisabledColor() : Int {
return SurfaceColors.SURFACE_5.getColor(requireActivity())
}

override fun onAttach(context: Context) {
super.onAttach(context)

onAttach = true
}

override fun onDetach() {
super.onDetach()

onAttach = false
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

package org.teslasoft.assistant.ui.fragments.tabs

import android.content.Context
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
Expand All @@ -39,6 +40,8 @@ class TipsFragment : Fragment() {

private var ad: LinearLayout? = null

private var onAttach: Boolean = false

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
Expand All @@ -54,38 +57,58 @@ class TipsFragment : Fragment() {

ad = view.findViewById(R.id.ad)

if (preferences.getAdsEnabled()) {
MobileAds.initialize(requireActivity()) { /* unused */ }
Thread {
while (!onAttach) {
Thread.sleep(100)
}

val requestConfiguration = RequestConfiguration.Builder()
.setTestDeviceIds(TestDevicesAds.TEST_DEVICES)
.build()
MobileAds.setRequestConfiguration(requestConfiguration)
requireActivity().runOnUiThread {
if (preferences.getAdsEnabled()) {
MobileAds.initialize(requireActivity()) { /* unused */ }

val adView = AdView(requireActivity())
adView.setAdSize(AdSize.LARGE_BANNER)
adView.adUnitId =
if (preferences.getDebugTestAds()) getString(R.string.ad_banner_unit_id_test) else getString(
R.string.ad_banner_unit_id
)
val requestConfiguration = RequestConfiguration.Builder()
.setTestDeviceIds(TestDevicesAds.TEST_DEVICES)
.build()
MobileAds.setRequestConfiguration(requestConfiguration)

ad?.addView(adView)
val adView = AdView(requireActivity())
adView.setAdSize(AdSize.LARGE_BANNER)
adView.adUnitId =
if (preferences.getDebugTestAds()) getString(R.string.ad_banner_unit_id_test) else getString(
R.string.ad_banner_unit_id
)

val adRequest: AdRequest = AdRequest.Builder().build()
ad?.addView(adView)

adView.loadAd(adRequest)
val adRequest: AdRequest = AdRequest.Builder().build()

adView.adListener = object : com.google.android.gms.ads.AdListener() {
override fun onAdFailedToLoad(error: LoadAdError) {
ad?.visibility = View.GONE
}
adView.loadAd(adRequest)

adView.adListener = object : com.google.android.gms.ads.AdListener() {
override fun onAdFailedToLoad(error: LoadAdError) {
ad?.visibility = View.GONE
}

override fun onAdLoaded() {
ad?.visibility = View.VISIBLE
override fun onAdLoaded() {
ad?.visibility = View.VISIBLE
}
}
} else {
ad?.visibility = View.GONE
}
}
} else {
ad?.visibility = View.GONE
}
}

override fun onAttach(context: Context) {
super.onAttach(context)

onAttach = true
}

override fun onDetach() {
super.onDetach()

onAttach = false
}
}

0 comments on commit 6d95327

Please sign in to comment.