//package reco.frame.tv;
//
//import android.app.Activity;
//
/**
* Copyright (c) 2012-2013, Michael Yang (www.yangfuhai.com).
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
//
//import java.lang.reflect.Field;
//
//import reco.frame.tv.annotation.view.EventListener;
//import reco.frame.tv.annotation.view.Select;
//import reco.frame.tv.annotation.view.ViewInject;
//import android.text.TextUtils;
//import android.view.View;
//import android.view.ViewGroup.LayoutParams;
//import android.widget.AbsListView;
//
//public abstract class TvActivity extends Activity {
//
//
// public void setContentView(int layoutResID) {
// super.setContentView(layoutResID);
// initInjectedView(this);
// }
//
//
// public void setContentView(View view, LayoutParams params) {
// super.setContentView(view, params);
// initInjectedView(this);
// }
//
//
// public void setContentView(View view) {
// super.setContentView(view);
// initInjectedView(this);
// }
//
//
// public static void initInjectedView(Activity activity){
// initInjectedView(activity, activity.getWindow().getDecorView());
// }
//
//
// public static void initInjectedView(Object injectedSource,View sourceView){
// Field[] fields = injectedSource.getClass().getDeclaredFields();
// if(fields!=null && fields.length>0){
// for(Field field : fields){
// try {
// field.setAccessible(true);
//
// if(field.get(injectedSource)!= null )
// continue;
//
// ViewInject viewInject = field.getAnnotation(ViewInject.class);
// if(viewInject!=null){
//
// int viewId = viewInject.id();
// field.set(injectedSource,sourceView.findViewById(viewId));
//
// setListener(injectedSource,field,viewInject.click(),Method.Click);
// setListener(injectedSource,field,viewInject.longClick(),Method.LongClick);
// setListener(injectedSource,field,viewInject.itemClick(),Method.ItemClick);
// setListener(injectedSource,field,viewInject.itemLongClick(),Method.itemLongClick);
//
// Select select = viewInject.select();
// if(!TextUtils.isEmpty(select.selected())){
// setViewSelectListener(injectedSource,field,select.selected(),select.noSelected());
// }
//
// }
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
// }
// }
//
//
// private static void setViewSelectListener(Object injectedSource,Field field,String select,String noSelect)throws Exception{
// Object obj = field.get(injectedSource);
// if(obj instanceof View){
// ((AbsListView)obj).setOnItemSelectedListener(new EventListener(injectedSource).select(select).noSelect(noSelect));
// }
// }
//
//
// private static void setListener(Object injectedSource,Field field,String methodName,Method method)throws Exception{
// if(methodName == null || methodName.trim().length() == 0)
// return;
//
// Object obj = field.get(injectedSource);
//
// switch (method) {
// case Click:
// if(obj instanceof View){
// ((View)obj).setOnClickListener(new EventListener(injectedSource).click(methodName));
// }
// break;
// case ItemClick:
// if(obj instanceof AbsListView){
// ((AbsListView)obj).setOnItemClickListener(new EventListener(injectedSource).itemClick(methodName));
// }
// break;
// case LongClick:
// if(obj instanceof View){
// ((View)obj).setOnLongClickListener(new EventListener(injectedSource).longClick(methodName));
// }
// break;
// case itemLongClick:
// if(obj instanceof AbsListView){
// ((AbsListView)obj).setOnItemLongClickListener(new EventListener(injectedSource).itemLongClick(methodName));
// }
// break;
// default:
// break;
// }
// }
//
// public enum Method{
// Click,LongClick,ItemClick,itemLongClick
// }
//
//}
//