Skip to content

Instantly share code, notes, and snippets.

View Stickerbox's full-sized avatar

Jordan Dixon Stickerbox

View GitHub Profile
private fun Fragment.getNavigationController(parent: Fragment? = null) : NavigationController? {
if (parentFragment == null) return null
if (parent == null) return getNavigationController(parentFragment)
if (parentFragment!! is NavigationController) {
return parentFragment as NavigationController
}
return getNavigationController(parentFragment)
}
val Fragment.navigationController : NavigationController? by lazy {
<?xml version="1.0" encoding="utf-8"?>
<com.stickerbox.tabbarcontroller.NavigationView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/navigation_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
class NavigationController : Fragment() {
private lateinit var navigationView: NavigationView
lateinit var rootFragment: Fragment
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_navigation_controller, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
class NavigationView @JvmOverloads constructor(context: Context,
attrs: AttributeSet? = null) : FrameLayout(context, attrs) {
private enum class Operation {
FORWARD, BACKWARD, ROOT
}
lateinit var rootFragment: Fragment
var fragmentManager: FragmentManager? = null
class TabBarController : AppCompatActivity() {
private val adapter by lazy { TabAdapter(supportFragmentManager) }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_tab_bar_controller)
tab_bar_container.adapter = adapter
tab_bar_container.offscreenPageLimit = adapter.count
class FixedViewPager @JvmOverloads constructor(context: Context,
attrs: AttributeSet? = null) : ViewPager(context, attrs) {
override fun onTouchEvent(ev: MotionEvent?) = false
override fun onInterceptTouchEvent(ev: MotionEvent?) = false
}
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.BottomNavigationView
android:id="@+id/tab_bar"
android:layout_width="match_parent"
import UIKit
enum Storyboard: String {
case main
var value: String {
return self.rawValue.capitalized
}
}
import UIKit
@IBDesignable
class UnderlinedTextField: UITextField {
@IBInspectable var borderColor: UIColor = Colors.darkText {
didSet { setNeedsDisplay() }
}
@IBInspectable var borderedWidth: CGFloat = 1 {
class RepeatingCircle: UIView {
let replicatorLayer = CAReplicatorLayer()
let circle = CALayer()
let duration: TimeInterval = 1.0
let circleSize: CGFloat = 15
let instanceCount = 20
override func draw(_ rect: CGRect) {