Loading src/com/cyanogenmod/cmparts/activities/WidgetOptionsActivity.java +87 −45 Original line number Diff line number Diff line package com.cyanogenmod.cmparts.activities; import com.cyanogenmod.cmparts.R; import com.cyanogenmod.cmparts.provider.RenderFXWidgetProvider; import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.net.Uri; import android.os.Bundle; import android.preference.ListPreference; import android.preference.Preference; Loading @@ -14,6 +17,7 @@ import android.preference.Preference.OnPreferenceChangeListener; import android.preference.PreferenceActivity; import android.preference.PreferenceManager; import android.preference.Preference.OnPreferenceClickListener; import android.widget.RemoteViews; public class WidgetOptionsActivity extends PreferenceActivity implements OnPreferenceChangeListener { Loading @@ -31,7 +35,8 @@ public class WidgetOptionsActivity extends PreferenceActivity implements OnPrefe Bundle extras = intent.getExtras(); if (extras != null) { mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); } mRenderFxPref = (ListPreference) findPreference("widget_render_effect"); Loading Loading @@ -60,8 +65,45 @@ public class WidgetOptionsActivity extends PreferenceActivity implements OnPrefe @Override public boolean onPreferenceClick(Preference preference) { Editor editor = mPreferences.edit(); editor.putInt("widget_render_effect_" + mAppWidgetId, Integer.parseInt(mPreferences.getString("widget_render_effect", "1"))); editor.putInt("widget_render_effect_" + mAppWidgetId, Integer.parseInt(mPreferences.getString("widget_render_effect", "1"))); editor.commit(); Context context = getApplicationContext(); RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); Intent launchIntent = new Intent(); launchIntent.setClass(context, RenderFXWidgetProvider.class); launchIntent.addCategory(Intent.CATEGORY_ALTERNATIVE); launchIntent.setData(Uri.parse("custom:" + mAppWidgetId + "/0")); PendingIntent pi = PendingIntent.getBroadcast(context, 0, launchIntent, 0); views.setOnClickPendingIntent(R.id.btn, pi); int renderFx = mPreferences.getInt("widget_render_effect_" + mAppWidgetId, 1); switch (renderFx) { case 1: views.setTextViewText(R.id.ind, context.getResources().getString(R.string.night)); break; case 2: views.setTextViewText(R.id.ind, context.getResources().getString(R.string.terminal)); break; case 3: views.setTextViewText(R.id.ind, context.getResources().getString(R.string.blue)); break; case 4: views.setTextViewText(R.id.ind, context.getResources().getString(R.string.amber)); break; case 5: views.setTextViewText(R.id.ind, context.getResources().getString(R.string.salmon)); break; case 6: views.setTextViewText(R.id.ind, context.getResources().getString(R.string.fuscia)); break; default: views.setTextViewText(R.id.ind, context.getResources().getString(R.string.renderfx_temp)); } final AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); appWidgetManager.updateAppWidget(mAppWidgetId, views); Intent resultValue = new Intent(); resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId); setResult(RESULT_OK, resultValue); Loading src/com/cyanogenmod/cmparts/provider/RenderFXWidgetProvider.java +132 −135 Original line number Diff line number Diff line Loading @@ -24,7 +24,8 @@ public class RenderFXWidgetProvider extends AppWidgetProvider { private static RenderFXWidgetProvider sInstance; public SharedPreferences mPrefs; static final ComponentName THIS_APPWIDGET = new ComponentName("com.cyanogenmod.cmparts", "com.cyanogenmod.cmparts.provider.RenderFXWidgetProvider"); static final ComponentName THIS_APPWIDGET = new ComponentName("com.cyanogenmod.cmparts", "com.cyanogenmod.cmparts.provider.RenderFXWidgetProvider"); static synchronized RenderFXWidgetProvider getInstance() { if (sInstance == null) { Loading @@ -34,18 +35,12 @@ public class RenderFXWidgetProvider extends AppWidgetProvider { } public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { final int N = appWidgetIds.length; for (int i = 0; i < N; i++) { int appWidgetId = appWidgetIds[i]; RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); views.setOnClickPendingIntent(R.id.btn, getLaunchPendingIntent(context, appWidgetId, 0)); for (int appWidgetId : appWidgetIds) updateState(context, appWidgetId); appWidgetManager.updateAppWidget(appWidgetId, views); } } private static PendingIntent getLaunchPendingIntent(Context context, int appWidgetId, int buttonId) { private static PendingIntent getLaunchPendingIntent(Context context, int appWidgetId, int buttonId) { Intent launchIntent = new Intent(); launchIntent.setClass(context, RenderFXWidgetProvider.class); launchIntent.addCategory(Intent.CATEGORY_ALTERNATIVE); Loading Loading @@ -75,7 +70,8 @@ public class RenderFXWidgetProvider extends AppWidgetProvider { } pendingIntent = new Intent(context, RenderFXService.class); pendingIntent.putExtra("widget_render_effect", mPrefs.getInt("widget_render_effect_" + widgetId, 1)); pendingIntent.putExtra("widget_render_effect", mPrefs.getInt("widget_render_effect_" + widgetId, 1)); if (this.RenderFXServiceRunning(context)) { context.stopService(pendingIntent); Loading @@ -96,17 +92,13 @@ public class RenderFXWidgetProvider extends AppWidgetProvider { private boolean RenderFXServiceRunning(Context context) { ActivityManager am = (ActivityManager) context.getSystemService(Activity.ACTIVITY_SERVICE); List<ActivityManager.RunningServiceInfo> svcList = am.getRunningServices(100); if (!(svcList.size() > 0)) return false; for (int i = 0; i < svcList.size(); i++) { RunningServiceInfo serviceInfo = svcList.get(i); ComponentName serviceName = serviceInfo.service; if (serviceName.getClassName().endsWith(".RenderFXService")) for (RunningServiceInfo serviceInfo : svcList) { if (serviceInfo.service.getClassName().endsWith(".RenderFXService")) return true; } return false; Loading @@ -115,14 +107,16 @@ public class RenderFXWidgetProvider extends AppWidgetProvider { public void updateAllStates(Context context) { final AppWidgetManager am = AppWidgetManager.getInstance(context); for (int id : am.getAppWidgetIds(THIS_APPWIDGET)) this.updateState(context, id); for (int appWidgetId : am.getAppWidgetIds(THIS_APPWIDGET)) this.updateState(context, appWidgetId); } public void updateState(Context context, int appWidgetId) { RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); views.setOnClickPendingIntent(R.id.btn, getLaunchPendingIntent(context, appWidgetId, 0)); if (this.RenderFXServiceRunning(context)) { views.setImageViewResource(R.id.img_torch, R.drawable.render_on); } else { Loading Loading @@ -150,6 +144,9 @@ public class RenderFXWidgetProvider extends AppWidgetProvider { case 6: views.setTextViewText(R.id.ind, context.getResources().getString(R.string.fuscia)); break; default: views.setTextViewText(R.id.ind, context.getResources() .getString(R.string.renderfx_temp)); } final AppWidgetManager gm = AppWidgetManager.getInstance(context); Loading Loading
src/com/cyanogenmod/cmparts/activities/WidgetOptionsActivity.java +87 −45 Original line number Diff line number Diff line package com.cyanogenmod.cmparts.activities; import com.cyanogenmod.cmparts.R; import com.cyanogenmod.cmparts.provider.RenderFXWidgetProvider; import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.net.Uri; import android.os.Bundle; import android.preference.ListPreference; import android.preference.Preference; Loading @@ -14,6 +17,7 @@ import android.preference.Preference.OnPreferenceChangeListener; import android.preference.PreferenceActivity; import android.preference.PreferenceManager; import android.preference.Preference.OnPreferenceClickListener; import android.widget.RemoteViews; public class WidgetOptionsActivity extends PreferenceActivity implements OnPreferenceChangeListener { Loading @@ -31,7 +35,8 @@ public class WidgetOptionsActivity extends PreferenceActivity implements OnPrefe Bundle extras = intent.getExtras(); if (extras != null) { mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); } mRenderFxPref = (ListPreference) findPreference("widget_render_effect"); Loading Loading @@ -60,8 +65,45 @@ public class WidgetOptionsActivity extends PreferenceActivity implements OnPrefe @Override public boolean onPreferenceClick(Preference preference) { Editor editor = mPreferences.edit(); editor.putInt("widget_render_effect_" + mAppWidgetId, Integer.parseInt(mPreferences.getString("widget_render_effect", "1"))); editor.putInt("widget_render_effect_" + mAppWidgetId, Integer.parseInt(mPreferences.getString("widget_render_effect", "1"))); editor.commit(); Context context = getApplicationContext(); RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); Intent launchIntent = new Intent(); launchIntent.setClass(context, RenderFXWidgetProvider.class); launchIntent.addCategory(Intent.CATEGORY_ALTERNATIVE); launchIntent.setData(Uri.parse("custom:" + mAppWidgetId + "/0")); PendingIntent pi = PendingIntent.getBroadcast(context, 0, launchIntent, 0); views.setOnClickPendingIntent(R.id.btn, pi); int renderFx = mPreferences.getInt("widget_render_effect_" + mAppWidgetId, 1); switch (renderFx) { case 1: views.setTextViewText(R.id.ind, context.getResources().getString(R.string.night)); break; case 2: views.setTextViewText(R.id.ind, context.getResources().getString(R.string.terminal)); break; case 3: views.setTextViewText(R.id.ind, context.getResources().getString(R.string.blue)); break; case 4: views.setTextViewText(R.id.ind, context.getResources().getString(R.string.amber)); break; case 5: views.setTextViewText(R.id.ind, context.getResources().getString(R.string.salmon)); break; case 6: views.setTextViewText(R.id.ind, context.getResources().getString(R.string.fuscia)); break; default: views.setTextViewText(R.id.ind, context.getResources().getString(R.string.renderfx_temp)); } final AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); appWidgetManager.updateAppWidget(mAppWidgetId, views); Intent resultValue = new Intent(); resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId); setResult(RESULT_OK, resultValue); Loading
src/com/cyanogenmod/cmparts/provider/RenderFXWidgetProvider.java +132 −135 Original line number Diff line number Diff line Loading @@ -24,7 +24,8 @@ public class RenderFXWidgetProvider extends AppWidgetProvider { private static RenderFXWidgetProvider sInstance; public SharedPreferences mPrefs; static final ComponentName THIS_APPWIDGET = new ComponentName("com.cyanogenmod.cmparts", "com.cyanogenmod.cmparts.provider.RenderFXWidgetProvider"); static final ComponentName THIS_APPWIDGET = new ComponentName("com.cyanogenmod.cmparts", "com.cyanogenmod.cmparts.provider.RenderFXWidgetProvider"); static synchronized RenderFXWidgetProvider getInstance() { if (sInstance == null) { Loading @@ -34,18 +35,12 @@ public class RenderFXWidgetProvider extends AppWidgetProvider { } public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { final int N = appWidgetIds.length; for (int i = 0; i < N; i++) { int appWidgetId = appWidgetIds[i]; RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); views.setOnClickPendingIntent(R.id.btn, getLaunchPendingIntent(context, appWidgetId, 0)); for (int appWidgetId : appWidgetIds) updateState(context, appWidgetId); appWidgetManager.updateAppWidget(appWidgetId, views); } } private static PendingIntent getLaunchPendingIntent(Context context, int appWidgetId, int buttonId) { private static PendingIntent getLaunchPendingIntent(Context context, int appWidgetId, int buttonId) { Intent launchIntent = new Intent(); launchIntent.setClass(context, RenderFXWidgetProvider.class); launchIntent.addCategory(Intent.CATEGORY_ALTERNATIVE); Loading Loading @@ -75,7 +70,8 @@ public class RenderFXWidgetProvider extends AppWidgetProvider { } pendingIntent = new Intent(context, RenderFXService.class); pendingIntent.putExtra("widget_render_effect", mPrefs.getInt("widget_render_effect_" + widgetId, 1)); pendingIntent.putExtra("widget_render_effect", mPrefs.getInt("widget_render_effect_" + widgetId, 1)); if (this.RenderFXServiceRunning(context)) { context.stopService(pendingIntent); Loading @@ -96,17 +92,13 @@ public class RenderFXWidgetProvider extends AppWidgetProvider { private boolean RenderFXServiceRunning(Context context) { ActivityManager am = (ActivityManager) context.getSystemService(Activity.ACTIVITY_SERVICE); List<ActivityManager.RunningServiceInfo> svcList = am.getRunningServices(100); if (!(svcList.size() > 0)) return false; for (int i = 0; i < svcList.size(); i++) { RunningServiceInfo serviceInfo = svcList.get(i); ComponentName serviceName = serviceInfo.service; if (serviceName.getClassName().endsWith(".RenderFXService")) for (RunningServiceInfo serviceInfo : svcList) { if (serviceInfo.service.getClassName().endsWith(".RenderFXService")) return true; } return false; Loading @@ -115,14 +107,16 @@ public class RenderFXWidgetProvider extends AppWidgetProvider { public void updateAllStates(Context context) { final AppWidgetManager am = AppWidgetManager.getInstance(context); for (int id : am.getAppWidgetIds(THIS_APPWIDGET)) this.updateState(context, id); for (int appWidgetId : am.getAppWidgetIds(THIS_APPWIDGET)) this.updateState(context, appWidgetId); } public void updateState(Context context, int appWidgetId) { RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); views.setOnClickPendingIntent(R.id.btn, getLaunchPendingIntent(context, appWidgetId, 0)); if (this.RenderFXServiceRunning(context)) { views.setImageViewResource(R.id.img_torch, R.drawable.render_on); } else { Loading Loading @@ -150,6 +144,9 @@ public class RenderFXWidgetProvider extends AppWidgetProvider { case 6: views.setTextViewText(R.id.ind, context.getResources().getString(R.string.fuscia)); break; default: views.setTextViewText(R.id.ind, context.getResources() .getString(R.string.renderfx_temp)); } final AppWidgetManager gm = AppWidgetManager.getInstance(context); Loading