Skip to content

Instantly share code, notes, and snippets.

🤖

Jake Lee JakeSteam

View GitHub Profile
@JakeSteam
JakeSteam / SettingsFragment.kt
Created Mar 18, 2019
Automatically adding build time to your Android app
View SettingsFragment.kt
private fun setupVersionInfo() {
findPreference(getString(R.string.pref_version)).title = "V${BuildConfig.VERSION_NAME}"
findPreference(getString(R.string.pref_version)).summary = String.format(
getString(R.string.version_summary),
BuildConfig.VERSION_CODE,
SimpleDateFormat("dd MMM yyy", Locale.US).format(BuildConfig.BUILD_TIME)
)
}
@JakeSteam
JakeSteam / MainActivity.kt
Created Mar 5, 2019
Creating a SharedPreferences utility
View MainActivity.kt
val prefHelper = PreferenceHelper(this)
val myBoolean = prefHelper.getBooleanPref(PreferenceHelper.BooleanPref.setting1)
prefHelper.setBooleanPref(PreferenceHelper.BooleanPref.setting1, false)
val myString = prefHelper.getStringPref(PreferenceHelper.StringPref.setting1)
prefHelper.setStringPref(PreferenceHelper.StringPref.setting1, "abc")
@JakeSteam
JakeSteam / MainActivity.kt
Created Mar 4, 2019
Using PreferenceFragment to effortlessly handle user settings
View MainActivity.kt
class MainActivity: AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
this.supportFragmentManager
.beginTransaction()
.replace(R.id.fragment_frame, PrefsFragment())
.commit()
}
View ContentAdapter.kt
class ContentAdapter(private val rows: List<IRow>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
interface IRow
class HeaderRow(val date: String, val title: String) : IRow
class MessageRow(val message: String) : IRow
class ColourRow(val colour: Int) : IRow
class HeaderViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val dateView: TextView = itemView.findViewById(R.id.date)
val titleView: TextView = itemView.findViewById(R.id.title)
View ListPositioner.kt
interface ListPositioner {
val recyclerScrollKey: String
fun loadListPosition()
fun saveListPosition()
fun resetListPosition()
}
@JakeSteam
JakeSteam / layout.xml
Created Jan 6, 2019
"Using break strategy to fix unusual Android TableRow text wrapping issues" @ https://blog.jakelee.co.uk/using-break-strategy-to-fix-unusual-android-text-wrapping-issues
View layout.xml
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Label_Email" />
<TextView
android:id="@+id/customer_email"
View index.html
<a class="fa-stack fa-2x fa-fw" href="https://www.linkedin.com/in/jake-lee" target="_blank">
<i class="fab fa-linkedin fa-2x"></i>
</a>
<a class="fa-stack fa-2x fa-fw" href="https://github.com/JakeSteam" target="_blank">
<i class="fab fa-github-square fa-2x"></i>
</a>
<a class="fa-stack fa-2x fa-fw" href="https://www.reddit.com/user/JakeSteam/" target="_blank">
<i class="fab fa-reddit-square fa-2x"></i>
</a>
<a class="fa-stack fa-2x fa-fw" href="https://facebook.com/Jake.L" target="_blank">
@JakeSteam
JakeSteam / AndroidManifest.xml
Last active Dec 17, 2018
"Sharing internal / cache images (with text) to other Android apps" (tutorial at https://blog.jakelee.co.uk/sharing-internal-cache-images-with-text-to-other-android-apps)
View AndroidManifest.xml
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filepaths" />
</provider>
@JakeSteam
JakeSteam / AndroidManifest.xml
Last active Dec 3, 2018
Repeating background tasks on Android using Kotlin and JobDispatcher
View AndroidManifest.xml
<service
android:name=".JobScheduler"
android:exported="false">
<intent-filter>
<action android:name="com.firebase.jobdispatcher.ACTION_EXECUTE" />
</intent-filter>
</service>
View fragment_develop_ml_kit.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".develop.mlkit.MLKitFragment"
android:fadeScrollbars="false">
<LinearLayout
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.