Loading app/src/main/java/at/bitfire/davdroid/ui/AboutActivity.kt +26 −32 Original line number Original line Diff line number Diff line Loading @@ -8,7 +8,7 @@ package at.bitfire.davdroid.ui package at.bitfire.davdroid.ui import android.content.Context import android.app.Application import android.os.Bundle import android.os.Bundle import android.text.Spanned import android.text.Spanned import android.view.* import android.view.* Loading @@ -17,19 +17,20 @@ import androidx.core.text.HtmlCompat import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentPagerAdapter import androidx.fragment.app.FragmentPagerAdapter import androidx.loader.app.LoaderManager import androidx.lifecycle.AndroidViewModel import androidx.loader.content.AsyncTaskLoader import androidx.lifecycle.MutableLiveData import androidx.loader.content.Loader import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders import at.bitfire.davdroid.App import at.bitfire.davdroid.App import at.bitfire.davdroid.BuildConfig import at.bitfire.davdroid.BuildConfig import at.bitfire.davdroid.R import at.bitfire.davdroid.R import at.bitfire.davdroid.log.Logger import com.mikepenz.aboutlibraries.LibsBuilder import com.mikepenz.aboutlibraries.LibsBuilder import kotlinx.android.synthetic.main.about_davdroid.* import kotlinx.android.synthetic.main.about.* import kotlinx.android.synthetic.main.activity_about.* import kotlinx.android.synthetic.main.activity_about.* import org.apache.commons.io.IOUtils import org.apache.commons.io.IOUtils import java.text.SimpleDateFormat import java.text.SimpleDateFormat import java.util.* import java.util.* import kotlin.concurrent.thread class AboutActivity: AppCompatActivity() { class AboutActivity: AppCompatActivity() { Loading @@ -44,7 +45,6 @@ class AboutActivity: AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) super.onCreate(savedInstanceState) setContentView(R.layout.activity_about) setContentView(R.layout.activity_about) setSupportActionBar(toolbar) setSupportActionBar(toolbar) Loading Loading @@ -83,15 +83,15 @@ class AboutActivity: AppCompatActivity() { .withFields(R.string::class.java.fields) .withFields(R.string::class.java.fields) .withLicenseShown(true) .withLicenseShown(true) .supportFragment() .supportFragment() else -> DavdroidFragment() else -> AppFragment() }!! }!! } } class DavdroidFragment: Fragment(), LoaderManager.LoaderCallbacks<Spanned> { class AppFragment: Fragment() { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?) = override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?) = inflater.inflate(R.layout.about_davdroid, container, false)!! inflater.inflate(R.layout.about, container, false)!! override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { app_name.text = getString(R.string.app_name) app_name.text = getString(R.string.app_name) Loading @@ -102,35 +102,29 @@ class AboutActivity: AppCompatActivity() { if (true /* open-source version */) { if (true /* open-source version */) { warranty.setText(R.string.about_license_info_no_warranty) warranty.setText(R.string.about_license_info_no_warranty) LoaderManager.getInstance(this).initLoader(0, null, this) } } override fun onCreateLoader(id: Int, args: Bundle?) = HtmlAssetLoader(requireActivity(), "gplv3.html") override fun onLoadFinished(loader: Loader<Spanned>, license: Spanned?) { val model = ViewModelProviders.of(this).get(LicenseModel::class.java) Logger.log.info("LOAD FINISHED") model.htmlText.observe(this, Observer { spanned -> license_text.text = license license_text.text = spanned }) } } override fun onLoaderReset(loader: Loader<Spanned>) { } } } } class HtmlAssetLoader( class LicenseModel( context: Context, application: Application val fileName: String ): AndroidViewModel(application) { ): AsyncTaskLoader<Spanned>(context) { override fun onStartLoading() { val htmlText = MutableLiveData<Spanned>() forceLoad() } override fun loadInBackground(): Spanned = init { context.resources.assets.open(fileName).use { thread { HtmlCompat.fromHtml(IOUtils.toString(it, Charsets.UTF_8), HtmlCompat.FROM_HTML_MODE_LEGACY) getApplication<Application>().resources.assets.open("gplv3.html").use { val spanned = HtmlCompat.fromHtml(IOUtils.toString(it, Charsets.UTF_8), HtmlCompat.FROM_HTML_MODE_LEGACY) htmlText.postValue(spanned) } } } } } } Loading app/src/main/res/layout/about_davdroid.xml→app/src/main/res/layout/about.xml +0 −0 File moved. View file Loading
app/src/main/java/at/bitfire/davdroid/ui/AboutActivity.kt +26 −32 Original line number Original line Diff line number Diff line Loading @@ -8,7 +8,7 @@ package at.bitfire.davdroid.ui package at.bitfire.davdroid.ui import android.content.Context import android.app.Application import android.os.Bundle import android.os.Bundle import android.text.Spanned import android.text.Spanned import android.view.* import android.view.* Loading @@ -17,19 +17,20 @@ import androidx.core.text.HtmlCompat import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentPagerAdapter import androidx.fragment.app.FragmentPagerAdapter import androidx.loader.app.LoaderManager import androidx.lifecycle.AndroidViewModel import androidx.loader.content.AsyncTaskLoader import androidx.lifecycle.MutableLiveData import androidx.loader.content.Loader import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders import at.bitfire.davdroid.App import at.bitfire.davdroid.App import at.bitfire.davdroid.BuildConfig import at.bitfire.davdroid.BuildConfig import at.bitfire.davdroid.R import at.bitfire.davdroid.R import at.bitfire.davdroid.log.Logger import com.mikepenz.aboutlibraries.LibsBuilder import com.mikepenz.aboutlibraries.LibsBuilder import kotlinx.android.synthetic.main.about_davdroid.* import kotlinx.android.synthetic.main.about.* import kotlinx.android.synthetic.main.activity_about.* import kotlinx.android.synthetic.main.activity_about.* import org.apache.commons.io.IOUtils import org.apache.commons.io.IOUtils import java.text.SimpleDateFormat import java.text.SimpleDateFormat import java.util.* import java.util.* import kotlin.concurrent.thread class AboutActivity: AppCompatActivity() { class AboutActivity: AppCompatActivity() { Loading @@ -44,7 +45,6 @@ class AboutActivity: AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) super.onCreate(savedInstanceState) setContentView(R.layout.activity_about) setContentView(R.layout.activity_about) setSupportActionBar(toolbar) setSupportActionBar(toolbar) Loading Loading @@ -83,15 +83,15 @@ class AboutActivity: AppCompatActivity() { .withFields(R.string::class.java.fields) .withFields(R.string::class.java.fields) .withLicenseShown(true) .withLicenseShown(true) .supportFragment() .supportFragment() else -> DavdroidFragment() else -> AppFragment() }!! }!! } } class DavdroidFragment: Fragment(), LoaderManager.LoaderCallbacks<Spanned> { class AppFragment: Fragment() { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?) = override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?) = inflater.inflate(R.layout.about_davdroid, container, false)!! inflater.inflate(R.layout.about, container, false)!! override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { app_name.text = getString(R.string.app_name) app_name.text = getString(R.string.app_name) Loading @@ -102,35 +102,29 @@ class AboutActivity: AppCompatActivity() { if (true /* open-source version */) { if (true /* open-source version */) { warranty.setText(R.string.about_license_info_no_warranty) warranty.setText(R.string.about_license_info_no_warranty) LoaderManager.getInstance(this).initLoader(0, null, this) } } override fun onCreateLoader(id: Int, args: Bundle?) = HtmlAssetLoader(requireActivity(), "gplv3.html") override fun onLoadFinished(loader: Loader<Spanned>, license: Spanned?) { val model = ViewModelProviders.of(this).get(LicenseModel::class.java) Logger.log.info("LOAD FINISHED") model.htmlText.observe(this, Observer { spanned -> license_text.text = license license_text.text = spanned }) } } override fun onLoaderReset(loader: Loader<Spanned>) { } } } } class HtmlAssetLoader( class LicenseModel( context: Context, application: Application val fileName: String ): AndroidViewModel(application) { ): AsyncTaskLoader<Spanned>(context) { override fun onStartLoading() { val htmlText = MutableLiveData<Spanned>() forceLoad() } override fun loadInBackground(): Spanned = init { context.resources.assets.open(fileName).use { thread { HtmlCompat.fromHtml(IOUtils.toString(it, Charsets.UTF_8), HtmlCompat.FROM_HTML_MODE_LEGACY) getApplication<Application>().resources.assets.open("gplv3.html").use { val spanned = HtmlCompat.fromHtml(IOUtils.toString(it, Charsets.UTF_8), HtmlCompat.FROM_HTML_MODE_LEGACY) htmlText.postValue(spanned) } } } } } } Loading
app/src/main/res/layout/about_davdroid.xml→app/src/main/res/layout/about.xml +0 −0 File moved. View file