Skip to content

Instantly share code, notes, and snippets.

@BenedictP
BenedictP / LogIte.kt
Created August 17, 2022 12:15
LogIt Live Template
android.util.Log.e("LogIt", "(${kotlin.Throwable().stackTrace[0].fileName}:${kotlin.Throwable().stackTrace[0].lineNumber})${kotlin.Throwable().stackTrace[0].methodName}()" + $content$)
<?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"
android:orientation="vertical"
android:padding="16dp"
tools:context=".MainActivity">
<LinearLayout
sealed class RefreshableViewState<out Data : Serializable, out Error : Serializable> : Serializable {
object Init : RefreshableViewState<Nothing, Nothing>(), Serializable
class Loading<out Data : Serializable>(val data: Data?) : RefreshableViewState<Data, Nothing>(), Serializable
class Data<out Data : Serializable>(val data: Data) : RefreshableViewState<Data, Nothing>(), Serializable
class Error<out Error : Serializable, out Data : Serializable>(val error: Error, val data: Data?) :
RefreshableViewState<Data, Error>(),
Serializable
}
fun <Data : Serializable, Error : Serializable> RefreshableViewState<Data, Error>.getData(): Data? {
data class TimekeeperHolder(var timekeepers: Array<Timekeeper>) : Parcelable {
override fun describeContents() = 0
override fun writeToParcel(dest: Parcel, flags: Int) {
dest.writeTypedArray(timekeepers, flags)
}
companion object {
val CREATOR = object : Parcelable.Creator<TimekeeperHolder> {
override fun createFromParcel(`in`: Parcel) = TimekeeperHolder(
`in`.createTypedArray(Timekeeper.CREATOR)!!
data class Timekeeper(var name: String, var time: String) : Parcelable {
override fun describeContents() = 0
override fun writeToParcel(dest: Parcel, flags: Int) {
dest.writeString(name)
dest.writeString(time)
}
companion object {
val CREATOR = object : Parcelable.Creator<Timekeeper> {
override fun createFromParcel(`in`: Parcel) = Timekeeper(`in`.readString()!!, `in`.readString()!!)
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="loginViewModel"
type="io.github.benedictp.notesmvpvm.login.LoginViewModel"/>
public class LoginViewModel extends BaseObservable {
public final ObservableField<String> errorText = new ObservableField<>();
private String username;
private String password;
@Bindable
public String getUsername() {
return username;
@EBean
public class LoginPresenter extends TiPresenter<LoginView> {
@Bean
UserService userService;
private RxTiPresenterSubscriptionHandler rxSubscriptionHandler = new RxTiPresenterSubscriptionHandler(this);
private LoginViewModel loginViewModel;
static LoginPresenter create(Context context) {
interface LoginView extends TiView {
void showLoadingDialog();
void hideLoadingDialog();
}
public class LoginActivity extends TiActivity<LoginPresenter, LoginView> implements LoginView {
private static final String LOADING_DIALOG_TAG = "loadingDialog";
public static void start(Context context) {
context.startActivity(new Intent(context, LoginActivity.class));
}
@Override
protected void onCreate(Bundle savedInstanceState) {