package com.android.systemui.car.util;
import android.appwidget.AppWidgetHost;
import android.content.Context;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProviderInfo;
import android.content.ComponentName;
import android.view.View;
import android.content.SharedPreferences;
public class AppWidgetInfoUtilNew {
AppWidgetHost mAppWidgetHost = null;
public static int HOST_ID = 1221;
static AppWidgetInfoUtilNew appWidgetInfoUtil;
public static AppWidgetInfoUtilNew getInstance(Context context){
if (null == appWidgetInfoUtil){
appWidgetInfoUtil = new AppWidgetInfoUtilNew();
appWidgetInfoUtil.create(context);
}
return appWidgetInfoUtil;
}
public void create(Context mContext){
mAppWidgetHost = new AppWidgetHost(mContext,HOST_ID);
mAppWidgetHost.startListening();
}
public View creatView(Context mContext,AppWidgetManager mAppWidgetManager,ComponentName provider,AppWidgetProviderInfo providerInfo){
View view = null;
int widgetId =-1;
String key = provider.getClassName();
widgetId = getWidgetId(mContext,key);
android.util.Log.e("AppWidget" , " widgetId = "+widgetId );
if (widgetId ==-1){
widgetId = mAppWidgetHost.allocateAppWidgetId();
putWidgetId(mContext,key,widgetId);
boolean success = mAppWidgetManager.bindAppWidgetIdIfAllowed(widgetId, provider);
android.util.Log.e("AppWidget" , " 使用新创建的 widgetId = "+widgetId );
if (success){
view = mAppWidgetHost.createView(mContext,widgetId,providerInfo);
}
}else {
android.util.Log.e("AppWidget" , " 使缓存的 widgetId = "+widgetId );
view = mAppWidgetHost.createView(mContext,widgetId,providerInfo);
}
if (view == null)view = new View(mContext);
view.setPadding(0,0,0,0);
android.util.Log.e("AppWidget" , "androidxx createView : widgetId = "+widgetId + " , view = "+view);
return view;
}
public static final String FILE_NAME = "widget_id_present_";
private void putWidgetId(Context mContext,String key, int value){
SharedPreferences sharedPreferences = mContext.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);
SharedPreferences.Editor edit = sharedPreferences.edit();
edit.putInt(key, value).apply();
}
private int getWidgetId(Context mContext,String key){
SharedPreferences sharedPreferences = mContext.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);
int widgetId = sharedPreferences.getInt(key,-1);
return widgetId;
}
}