package com.freerdp.freerdpcore.utils;
import android.content.res.Configuration;
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.support.annotation.LayoutRes;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatDelegate;
import android.support.v7.widget.Toolbar;
import android.view.MenuInflater;
import android.view.View;
import android.view.ViewGroup;
public abstract class AppCompatPreferenceActivity extends PreferenceActivity
{
private AppCompatDelegate mDelegate;
@Override protected void onCreate(Bundle savedInstanceState)
{
getDelegate().installViewFactory();
getDelegate().onCreate(savedInstanceState);
super.onCreate(savedInstanceState);
}
@Override protected void onPostCreate(Bundle savedInstanceState)
{
super.onPostCreate(savedInstanceState);
getDelegate().onPostCreate(savedInstanceState);
}
public ActionBar getSupportActionBar()
{
return getDelegate().getSupportActionBar();
}
public void setSupportActionBar(@Nullable Toolbar toolbar)
{
getDelegate().setSupportActionBar(toolbar);
}
@Override @NonNull public MenuInflater getMenuInflater()
{
return getDelegate().getMenuInflater();
}
@Override public void setContentView(@LayoutRes int layoutResID)
{
getDelegate().setContentView(layoutResID);
}
@Override public void setContentView(View view)
{
getDelegate().setContentView(view);
}
@Override public void setContentView(View view, ViewGroup.LayoutParams params)
{
getDelegate().setContentView(view, params);
}
@Override public void addContentView(View view, ViewGroup.LayoutParams params)
{
getDelegate().addContentView(view, params);
}
@Override protected void onPostResume()
{
super.onPostResume();
getDelegate().onPostResume();
}
@Override protected void onTitleChanged(CharSequence title, int color)
{
super.onTitleChanged(title, color);
getDelegate().setTitle(title);
}
@Override public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
getDelegate().onConfigurationChanged(newConfig);
}
@Override protected void onStop()
{
super.onStop();
getDelegate().onStop();
}
@Override protected void onDestroy()
{
super.onDestroy();
getDelegate().onDestroy();
}
public void invalidateOptionsMenu()
{
getDelegate().invalidateOptionsMenu();
}
private AppCompatDelegate getDelegate()
{
if (mDelegate == null)
{
mDelegate = AppCompatDelegate.create(this, null);
}
return mDelegate;
}
}