blob: 4b2eab3544cbf5e0ca054261b96a67fd8e0aee5c [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package io.v.baku.toolkit;
import android.app.Activity;
import android.os.Bundle;
import android.os.PersistableBundle;
import lombok.experimental.Delegate;
/**
* A default integration with {@link VAndroidContextTrait} extending {@link Activity}.
*
* @see VAppCompatActivity
*/
public abstract class VActivity extends Activity implements VAndroidContextTrait<Activity> {
@Delegate
private VAndroidContextTrait<Activity> mVAndroidContextTrait;
/**
* Instantiates the {@link VAndroidContextTrait} implementation for this Activity. By default,
* this uses {@link VAndroidContextMixin#withDefaults(Activity, Bundle)}.
*/
protected VAndroidContextTrait<Activity> createVActivityTrait(final Bundle savedInstanceState) {
return VAndroidContextMixin.withDefaults(this, savedInstanceState);
}
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mVAndroidContextTrait = createVActivityTrait(savedInstanceState);
}
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
mVAndroidContextTrait = createVActivityTrait(savedInstanceState);
}
@Override
protected void onDestroy() {
mVAndroidContextTrait.close();
super.onDestroy();
}
}