Skip to content

Commit

Permalink
chore: update SDK 21 incompatible api usages
Browse files Browse the repository at this point in the history
  • Loading branch information
ViscousPot committed Dec 8, 2024
1 parent a72a395 commit cdb72fd
Show file tree
Hide file tree
Showing 10 changed files with 90 additions and 56 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ class GitSyncAccessibilityService: AccessibilityService() {
appOpen = true
}
}
else -> {}
}
}
}
Expand Down
15 changes: 10 additions & 5 deletions app/src/main/java/com/viscouspot/gitsync/GitSyncService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import android.app.NotificationManager
import android.app.PendingIntent
import android.app.Service
import android.content.Intent
import android.os.Build
import android.os.FileObserver
import android.os.Handler
import android.os.IBinder
Expand Down Expand Up @@ -88,11 +89,15 @@ class GitSyncService : Service() {
}

private fun startForegroundService() {
val channel = NotificationChannel(
NOTIFICATION_CHANNEL_ID,
NOTIFICATION_CHANNEL_NAME,
NotificationManager.IMPORTANCE_MIN
)
val channel = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel(
NOTIFICATION_CHANNEL_ID,
NOTIFICATION_CHANNEL_NAME,
NotificationManager.IMPORTANCE_MIN
)
} else {
TODO("VERSION.SDK_INT < O")
}
val manager = this.getSystemService(
NotificationManager::class.java
)
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/java/com/viscouspot/gitsync/GitTileService.kt
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
package com.viscouspot.gitsync

import android.content.Intent
import android.os.Build
import android.service.quicksettings.TileService
import androidx.annotation.RequiresApi

@RequiresApi(Build.VERSION_CODES.N)
class GitTileService: TileService() {
override fun onClick() {
super.onClick()
Expand Down
35 changes: 18 additions & 17 deletions app/src/main/java/com/viscouspot/gitsync/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ import androidx.constraintlayout.widget.ConstraintSet
import androidx.core.app.NotificationManagerCompat
import androidx.core.content.ContextCompat
import androidx.core.content.FileProvider
import androidx.core.widget.TextViewCompat
import androidx.core.widget.doOnTextChanged
import androidx.localbroadcastmanager.content.LocalBroadcastManager
import androidx.recyclerview.widget.RecyclerView
Expand Down Expand Up @@ -303,7 +304,7 @@ class MainActivity : AppCompatActivity() {
intentFilter.addAction(MERGE_COMPLETE)
bManager.registerReceiver(broadcastReceiver, intentFilter)

window.statusBarColor = getColor(R.color.app_bg)
window.statusBarColor = ContextCompat.getColor(this, R.color.app_bg)

gitManager = GitManager(this, settingsManager)

Expand Down Expand Up @@ -469,12 +470,12 @@ class MainActivity : AppCompatActivity() {
conflictEditorInput.adapter = ConflictEditorAdapter(this, conflictSections, conflictEditor) {
if (conflictSections.isEmpty() || conflictSections.firstOrNull { it.contains(getString(R.string.conflict_start)) } == null) {
merge.isEnabled = true
merge.backgroundTintList = ColorStateList.valueOf(getColor(R.color.auth_green))
merge.setTextColor(getColor(R.color.card_secondary_bg))
merge.backgroundTintList = ColorStateList.valueOf(ContextCompat.getColor(this, R.color.auth_green))
merge.setTextColor(ContextCompat.getColor(this, R.color.card_secondary_bg))
} else {
merge.isEnabled = false
merge.backgroundTintList = ColorStateList.valueOf(getColor(R.color.card_secondary_bg))
merge.setTextColor(getColor(R.color.text_secondary))
merge.backgroundTintList = ColorStateList.valueOf(ContextCompat.getColor(this, R.color.card_secondary_bg))
merge.setTextColor(ContextCompat.getColor(this, R.color.text_secondary))
}
}

Expand Down Expand Up @@ -531,8 +532,8 @@ class MainActivity : AppCompatActivity() {

merge.text = getString(R.string.merging)
merge.isEnabled = false
merge.backgroundTintList = ColorStateList.valueOf(getColor(R.color.card_secondary_bg))
merge.setTextColor(getColor(R.color.text_secondary))
merge.backgroundTintList = ColorStateList.valueOf(ContextCompat.getColor(this, R.color.card_secondary_bg))
merge.setTextColor(ContextCompat.getColor(this, R.color.text_secondary))
abortMerge.visibility = View.GONE

val forceSyncIntent = Intent(this@MainActivity, GitSyncService::class.java)
Expand Down Expand Up @@ -575,19 +576,19 @@ class MainActivity : AppCompatActivity() {

if (conflictSections.firstOrNull { it.contains("\n") || it.contains("File not found.") } == null) {
merge.isEnabled = true
merge.backgroundTintList = ColorStateList.valueOf(getColor(R.color.auth_green))
merge.setTextColor(getColor(R.color.card_secondary_bg))
merge.backgroundTintList = ColorStateList.valueOf(ContextCompat.getColor(this, R.color.auth_green))
merge.setTextColor(ContextCompat.getColor(this, R.color.card_secondary_bg))
} else {
merge.isEnabled = false
merge.backgroundTintList = ColorStateList.valueOf(getColor(R.color.card_secondary_bg))
merge.setTextColor(getColor(R.color.text_secondary))
merge.backgroundTintList = ColorStateList.valueOf(ContextCompat.getColor(this, R.color.card_secondary_bg))
merge.setTextColor(ContextCompat.getColor(this, R.color.text_secondary))
}
}

private fun updateApplicationObserverSwitch(upDown: Boolean = settingsManager.getApplicationObserverEnabled()) {
applicationObserverSwitch.setCompoundDrawablesWithIntrinsicBounds(null, null, ContextCompat.getDrawable(this, if (upDown) R.drawable.angle_up else R.drawable.angle_down)
?.apply {
setTint(getColor(if (checkAccessibilityPermission()) R.color.auth_green else R.color.text_secondary))
setTint(ContextCompat.getColor(this@MainActivity, if (checkAccessibilityPermission()) R.color.auth_green else R.color.text_secondary))
}, null)
}

Expand Down Expand Up @@ -654,7 +655,7 @@ class MainActivity : AppCompatActivity() {
val start = syncMessageInput.text.indexOf("%s")
if (start == -1) return

syncMessageInput.getText().setSpan(ForegroundColorSpan(getColor(R.color.additions)), start, start + 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
syncMessageInput.getText().setSpan(ForegroundColorSpan(ContextCompat.getColor(this, R.color.additions)), start, start + 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
}

private fun highlightCommentsInInput(syncMessageInput: EditText) {
Expand All @@ -666,7 +667,7 @@ class MainActivity : AppCompatActivity() {
if (line.trim().startsWith("#")) {
val lineStart = text.indexOf(line, start)
val lineEnd = lineStart + line.length
syncMessageInput.getText().setSpan(ForegroundColorSpan(getColor(R.color.text_secondary)), lineStart, lineEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
syncMessageInput.getText().setSpan(ForegroundColorSpan(ContextCompat.getColor(this, R.color.text_secondary)), lineStart, lineEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
}
start += line.length + 1
}
Expand Down Expand Up @@ -804,7 +805,7 @@ class MainActivity : AppCompatActivity() {
selectApplication.icon =
packageManager.getApplicationIcon(packageNames.elementAt(0))
selectApplication.iconTintMode = PorterDuff.Mode.MULTIPLY
selectApplication.iconTint = getColorStateList(android.R.color.white)
selectApplication.iconTint = ContextCompat.getColorStateList(this, android.R.color.white)

applicationRecycler.visibility = View.GONE
}
Expand Down Expand Up @@ -912,7 +913,7 @@ class MainActivity : AppCompatActivity() {
}

gitRepoName.rightDrawable(R.drawable.circle_xmark)
gitRepoName.compoundDrawableTintList = getColorStateList(R.color.auth_red)
TextViewCompat.setCompoundDrawableTintList(gitRepoName, ContextCompat.getColorStateList(this, R.color.auth_red))
gitRepoName.compoundDrawablePadding =
(4 * resources.displayMetrics.density + 0.5f).toInt()

Expand All @@ -927,7 +928,7 @@ class MainActivity : AppCompatActivity() {
gitRepoName.isEnabled = true
settingsButton.isEnabled = true
gitRepoName.rightDrawable(R.drawable.circle_check)
gitRepoName.compoundDrawableTintList = getColorStateList(R.color.auth_green)
TextViewCompat.setCompoundDrawableTintList(gitRepoName, ContextCompat.getColorStateList(this, R.color.auth_green))
gitRepoName.compoundDrawablePadding =
(4 * resources.displayMetrics.density + 0.5f).toInt()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import android.view.ViewGroup
import android.widget.Chronometer
import android.widget.TextView
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.button.MaterialButton
import com.viscouspot.gitsync.R
Expand Down Expand Up @@ -54,12 +55,12 @@ class RecentCommitsAdapter(private val context: Context, private val recentCommi
return
}

holder.container.backgroundTintList = ColorStateList.valueOf(context.getColor(R.color.card_secondary_bg))
holder.container.backgroundTintList = ColorStateList.valueOf(ContextCompat.getColor(context, R.color.card_secondary_bg))
holder.commitMessage.text = commit.commitMessage
holder.commitMessage.setTypeface(null, Typeface.NORMAL)
holder.commitMessage.setTextColor(context.getColor(R.color.text_primary))
holder.commitMessage.setTextColor(ContextCompat.getColor(context, R.color.text_primary))
holder.author.text = commit.author
holder.author.setTextColor(context.getColor(R.color.text_secondary))
holder.author.setTextColor(ContextCompat.getColor(context, R.color.text_secondary))
holder.committed.visibility = View.VISIBLE
holder.commitRef.visibility = View.VISIBLE
holder.commitRef.text = commit.reference
Expand All @@ -74,12 +75,12 @@ class RecentCommitsAdapter(private val context: Context, private val recentCommi
}

private fun bindMergeConflictViewHolder(holder: ViewHolder) {
holder.container.backgroundTintList = ColorStateList.valueOf(context.getColor(R.color.deletions))
holder.container.backgroundTintList = ColorStateList.valueOf(ContextCompat.getColor(context, R.color.deletions))
holder.commitMessage.text = context.getString(R.string.merge_conflict_item_title)
holder.commitMessage.setTypeface(null, Typeface.BOLD)
holder.commitMessage.setTextColor(context.getColor(R.color.card_bg))
holder.commitMessage.setTextColor(ContextCompat.getColor(context, R.color.card_bg))
holder.author.text = context.getString(R.string.merge_conflict_item_message)
holder.author.setTextColor(context.getColor(R.color.card_secondary_bg))
holder.author.setTextColor(ContextCompat.getColor(context, R.color.card_secondary_bg))
holder.committed.visibility = View.GONE
holder.commitRef.visibility = View.GONE
holder.commitDate.visibility = View.GONE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import android.widget.AdapterView
import android.widget.EditText
import android.widget.Spinner
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.content.ContextCompat
import androidx.core.widget.doOnTextChanged
import com.google.android.material.button.MaterialButton
import com.viscouspot.gitsync.R
Expand Down Expand Up @@ -90,23 +91,23 @@ class AuthDialog(private val context: Context, private val settingsManager: Sett
usernameInput.doOnTextChanged { text, _, _, _ ->
if (text.isNullOrEmpty()) {
loginButton.isEnabled = false
loginButton.backgroundTintList = ColorStateList.valueOf(context.getColor(R.color.auth_green_secondary))
loginButton.backgroundTintList = ColorStateList.valueOf(ContextCompat.getColor(context, R.color.auth_green_secondary))
} else {
if (!tokenInput.text.isNullOrEmpty()) {
loginButton.isEnabled = true
loginButton.backgroundTintList = ColorStateList.valueOf(context.getColor(R.color.auth_green))
loginButton.backgroundTintList = ColorStateList.valueOf(ContextCompat.getColor(context, R.color.auth_green))
}
}
}

tokenInput.doOnTextChanged { text, _, _, _ ->
if (text.isNullOrEmpty()) {
loginButton.isEnabled = false
loginButton.backgroundTintList = ColorStateList.valueOf(context.getColor(R.color.auth_green_secondary))
loginButton.backgroundTintList = ColorStateList.valueOf(ContextCompat.getColor(context, R.color.auth_green_secondary))
} else {
if (!usernameInput.text.isNullOrEmpty()) {
loginButton.isEnabled = true
loginButton.backgroundTintList = ColorStateList.valueOf(context.getColor(R.color.auth_green))
loginButton.backgroundTintList = ColorStateList.valueOf(ContextCompat.getColor(context, R.color.auth_green))
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ import android.widget.TextView
import android.widget.Toast
import androidx.activity.result.ActivityResultLauncher
import androidx.appcompat.app.AlertDialog
import androidx.core.content.ContextCompat
import androidx.core.widget.TextViewCompat
import androidx.core.widget.doOnTextChanged
import androidx.fragment.app.DialogFragment
import androidx.recyclerview.widget.GridLayoutManager
Expand Down Expand Up @@ -98,7 +100,7 @@ class CloneRepoFragment(
selectLocalDir()
} else {
repoUrlEditText.rightDrawable(R.drawable.circle_xmark)
repoUrlEditText.compoundDrawableTintList = requireContext().getColorStateList(R.color.auth_red)
TextViewCompat.setCompoundDrawableTintList(repoUrlEditText, ContextCompat.getColorStateList(requireContext(), R.color.auth_red))
invalidRepoError.text = invalidRepoErrorText
}
}
Expand Down
16 changes: 9 additions & 7 deletions app/src/main/java/com/viscouspot/gitsync/util/GitManager.kt
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,10 @@ import org.eclipse.jgit.util.io.DisabledOutputStream
import java.io.File
import java.io.FileWriter
import java.io.IOException
import java.time.Duration
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter

import java.text.SimpleDateFormat
import java.util.Date
import java.util.Locale
import java.util.TimeZone

class GitManager(private val context: Context, private val settingsManager: SettingsManager) {
fun cloneRepository(repoUrl: String, userStorageUri: Uri, username: String, token: String, taskCallback: (action: String) -> Unit, progressCallback: (progress: Int) -> Unit, failureCallback: (error: String) -> Unit, successCallback: () -> Unit) {
Expand Down Expand Up @@ -230,8 +230,10 @@ class GitManager(private val context: Context, private val settingsManager: Sett
}.call()

log(LogType.PushToRepo, "Getting current time")
val currentDateTime = LocalDateTime.now()
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")

val formattedDate: String = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US).apply {
timeZone = TimeZone.getTimeZone("UTC")
}.format(Date())

log(LogType.PushToRepo, "Committing changes")
val config: StoredConfig = git.repository.config
Expand All @@ -243,7 +245,7 @@ class GitManager(private val context: Context, private val settingsManager: Sett

git.commit().apply {
setCommitter(committerName, committerEmail ?: "")
message = syncMessage.format(currentDateTime.format(formatter))
message = syncMessage.format(formattedDate)
}.call()

returnResult = true
Expand Down
36 changes: 24 additions & 12 deletions app/src/main/java/com/viscouspot/gitsync/util/Logger.kt
Original file line number Diff line number Diff line change
@@ -1,26 +1,30 @@
package com.viscouspot.gitsync.util

import android.Manifest
import android.app.NotificationChannel
import android.app.NotificationManager
import android.app.PendingIntent
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Build
import android.util.Log
import android.widget.Toast
import androidx.core.app.ActivityCompat
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import com.viscouspot.gitsync.BuildConfig
import com.viscouspot.gitsync.R
import java.io.PrintWriter
import android.Manifest
import android.net.Uri
import java.io.StringWriter
import java.text.SimpleDateFormat
import java.time.Instant
import java.time.format.DateTimeFormatter
import java.util.Date
import java.util.Locale
import java.util.TimeZone
import kotlin.random.Random
import androidx.core.app.NotificationCompat
import android.app.NotificationChannel
import android.app.NotificationManager
import com.viscouspot.gitsync.BuildConfig

enum class LogType(val type: String) {
TEST("TEST"),
Expand Down Expand Up @@ -79,11 +83,15 @@ object Logger {

private fun sendBugReportNotification(context: Context) {
val channelId = "git_sync_bug_channel"
val channel = NotificationChannel(
channelId,
"Git Sync Bug",
NotificationManager.IMPORTANCE_HIGH
)
val channel = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel(
channelId,
"Git Sync Bug",
NotificationManager.IMPORTANCE_HIGH
)
} else {
TODO("VERSION.SDK_INT < O")
}
val manager = context.getSystemService(NotificationManager::class.java)
manager?.createNotificationChannel(channel)

Expand Down Expand Up @@ -124,11 +132,15 @@ object Logger {
val model = "Device Model: $manufacturer $deviceModel"
val appVersion = "App Version: $appVersionName (Code: $appVersionCode)"

val formattedDate: String = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US).apply {
timeZone = TimeZone.getTimeZone("UTC")
}.format(Date())

val emailIntent = Intent(Intent.ACTION_SEND).apply {
data = Uri.parse("mailto:$recipient")
type = "message/rfc822"
putExtra(Intent.EXTRA_EMAIL, arrayOf(recipient))
putExtra(Intent.EXTRA_SUBJECT, "Bug Report: Git Sync - [${DateTimeFormatter.ISO_INSTANT.format(Instant.now())}]")
putExtra(Intent.EXTRA_SUBJECT, "Bug Report: Git Sync - [$formattedDate]")
putExtra(Intent.EXTRA_TEXT, "App logs are attached! \n $last5LogsString \n $version \n $model \n $appVersion \n\n\n")
addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,10 +116,16 @@ class OnboardingController(
resources.getDimension(R.dimen.space_md).toInt(),
0
)
text = Html.fromHtml(
context.getString(R.string.documentation_html_link).format(context.getString(R.string.docs_link)),
0
)
text = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
Html.fromHtml(
context.getString(R.string.documentation_html_link).format(context.getString(R.string.docs_link)),
Html.FROM_HTML_MODE_LEGACY
)
} else {
Html.fromHtml(
context.getString(R.string.documentation_html_link).format(context.getString(R.string.docs_link)),
)
}
}
}

Expand Down

0 comments on commit cdb72fd

Please sign in to comment.