Pixelcat-App-Android/app/src/main/kotlin/at/connyduck/pixelcat/components/about/licenses/LicenseActivity.kt

88 lines
2.7 KiB
Kotlin

/*
* Copyright (C) 2020 Conny Duck
*
* This file is part of Pixelcat.
*
* Pixelcat 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 3 of the License, or
* (at your option) any later version.
*
* Pixelcat 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 this program. If not, see <https://www.gnu.org/licenses/>.
*/
package at.connyduck.pixelcat.components.about.licenses
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.util.Log
import android.view.ViewGroup
import android.widget.TextView
import androidx.annotation.RawRes
import at.connyduck.pixelcat.R
import at.connyduck.pixelcat.components.general.BaseActivity
import at.connyduck.pixelcat.databinding.ActivityLicenseBinding
import java.io.BufferedReader
import java.io.IOException
import java.io.InputStreamReader
class LicenseActivity : BaseActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding = ActivityLicenseBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.licenseContainer.setOnApplyWindowInsetsListener { _, insets ->
val top = insets.systemWindowInsetTop
val toolbarParams = binding.licenseToolbar.layoutParams as ViewGroup.MarginLayoutParams
toolbarParams.topMargin = top
insets.consumeSystemWindowInsets()
}
setSupportActionBar(binding.licenseToolbar)
binding.licenseToolbar.setNavigationOnClickListener {
onBackPressed()
}
loadFileIntoTextView(R.raw.apache, binding.licenseApacheTextView)
}
private fun loadFileIntoTextView(@RawRes fileId: Int, textView: TextView) {
val sb = StringBuilder()
val br = BufferedReader(InputStreamReader(resources.openRawResource(fileId)))
try {
var line: String? = br.readLine()
while (line != null) {
sb.append(line)
sb.append('\n')
line = br.readLine()
}
} catch (e: IOException) {
Log.w("LicenseActivity", e)
}
br.close()
textView.text = sb.toString()
}
companion object {
fun newIntent(context: Context) = Intent(context, LicenseActivity::class.java)
}
}