Simplify SyncActivity; make QR code always white

pull/699/head
Alinson S. Xavier 5 years ago
parent 8cd729480f
commit c15c14ffcd

@ -24,49 +24,46 @@ import android.content.ClipboardManager
import android.graphics.* import android.graphics.*
import android.os.* import android.os.*
import android.text.* import android.text.*
import android.util.*
import android.view.* import android.view.*
import androidx.appcompat.app.*
import com.google.zxing.* import com.google.zxing.*
import com.google.zxing.qrcode.* import com.google.zxing.qrcode.*
import kotlinx.coroutines.* import kotlinx.coroutines.*
import org.isoron.androidbase.activities.*
import org.isoron.androidbase.utils.*
import org.isoron.androidbase.utils.InterfaceUtils.getFontAwesome import org.isoron.androidbase.utils.InterfaceUtils.getFontAwesome
import org.isoron.uhabits.* import org.isoron.uhabits.*
import org.isoron.uhabits.activities.*
import org.isoron.uhabits.core.models.*
import org.isoron.uhabits.core.ui.screens.sync.* import org.isoron.uhabits.core.ui.screens.sync.*
import org.isoron.uhabits.databinding.* import org.isoron.uhabits.databinding.*
import org.isoron.uhabits.sync.* import org.isoron.uhabits.sync.*
import org.isoron.uhabits.utils.*
class SyncActivity : BaseActivity(), SyncBehavior.Screen { class SyncActivity : AppCompatActivity(), SyncBehavior.Screen {
private lateinit var baseScreen: BaseScreen
private lateinit var binding: ActivitySyncBinding private lateinit var binding: ActivitySyncBinding
private lateinit var behavior: SyncBehavior private lateinit var behavior: SyncBehavior
private val scope = CoroutineScope(Dispatchers.Main) private val scope = CoroutineScope(Dispatchers.Main)
private var styledResources = StyledResources(this)
override fun onCreate(savedInstance: Bundle?) { override fun onCreate(savedInstance: Bundle?) {
super.onCreate(savedInstance) super.onCreate(savedInstance)
val component = (application as HabitsApplication).component val component = (application as HabitsApplication).component
val preferences = component.preferences val preferences = component.preferences
val server = RemoteSyncServer(preferences = preferences) val server = RemoteSyncServer(preferences = preferences)
baseScreen = BaseScreen(this) AndroidThemeSwitcher(this, component.preferences).apply()
behavior = SyncBehavior(this, preferences, server, component.logging)
behavior = SyncBehavior(this, preferences, server, component.logging)
binding = ActivitySyncBinding.inflate(layoutInflater) binding = ActivitySyncBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.errorIcon.typeface = getFontAwesome(this) binding.errorIcon.typeface = getFontAwesome(this)
setSupportActionBar(binding.toolbar) binding.root.setupToolbar(
supportActionBar?.setDisplayHomeAsUpEnabled(true) toolbar = binding.toolbar,
supportActionBar?.setDisplayShowHomeEnabled(true) color = PaletteColor(11),
supportActionBar?.elevation = 10.0f title = resources.getString(R.string.device_sync),
)
binding.syncLink.setOnClickListener { copyToClipboard() }
binding.instructions.setText(Html.fromHtml(resources.getString(R.string.sync_instructions))) binding.instructions.setText(Html.fromHtml(resources.getString(R.string.sync_instructions)))
binding.syncLink.setOnClickListener { setContentView(binding.root)
copyToClipboard()
}
} }
override fun onResume() { override fun onResume() {
@ -79,7 +76,7 @@ class SyncActivity : BaseActivity(), SyncBehavior.Screen {
private fun copyToClipboard() { private fun copyToClipboard() {
val clipboard = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager val clipboard = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
clipboard.setPrimaryClip(ClipData.newPlainText("Loop Sync Link", binding.syncLink.text)) clipboard.setPrimaryClip(ClipData.newPlainText("Loop Sync Link", binding.syncLink.text))
baseScreen.showMessage(R.string.copied_to_the_clipboard, binding.root) showMessage(R.string.copied_to_the_clipboard)
} }
suspend fun generateQR(msg: String): Bitmap = Dispatchers.IO { suspend fun generateQR(msg: String): Bitmap = Dispatchers.IO {
@ -88,8 +85,8 @@ class SyncActivity : BaseActivity(), SyncBehavior.Screen {
val height = matrix.height val height = matrix.height
val width = matrix.width val width = matrix.width
val bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565) val bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565)
val bgColor = styledResources.getColor(R.attr.highContrastReverseTextColor) val bgColor = Color.WHITE
val fgColor = styledResources.getColor(R.attr.highContrastTextColor) val fgColor = Color.BLACK
for (x in 0 until width) { for (x in 0 until width) {
for (y in 0 until height) { for (y in 0 until height) {
val color = if (matrix.get(x, y)) fgColor else bgColor val color = if (matrix.get(x, y)) fgColor else bgColor

@ -94,6 +94,7 @@
<ImageView <ImageView
android:id="@+id/qrCode" android:id="@+id/qrCode"
android:layout_margin="10dp"
android:layout_width="200dp" android:layout_width="200dp"
android:layout_height="200dp" android:layout_height="200dp"
android:layout_gravity="center" android:layout_gravity="center"

Loading…
Cancel
Save