Subject at top for widget

pull/162/head
M66B 6 years ago
parent 2d6e35a028
commit db9e77de43

@ -229,6 +229,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
@Override @Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
prefs.edit().putBoolean("subject_top", checked).apply(); prefs.edit().putBoolean("subject_top", checked).apply();
WidgetUnified.update(getContext());
} }
}); });

@ -41,6 +41,8 @@ public class WidgetUnifiedRemoteViewsFactory implements RemoteViewsService.Remot
private Context context; private Context context;
private int appWidgetId; private int appWidgetId;
private boolean threading;
private boolean subject_top;
private long account; private long account;
private boolean unseen; private boolean unseen;
private boolean flagged; private boolean flagged;
@ -63,7 +65,8 @@ public class WidgetUnifiedRemoteViewsFactory implements RemoteViewsService.Remot
Log.i("Widget factory changed id=" + appWidgetId); Log.i("Widget factory changed id=" + appWidgetId);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean threading = prefs.getBoolean("threading", true); threading = prefs.getBoolean("threading", true);
subject_top = prefs.getBoolean("subject_top", false);
account = prefs.getLong("widget." + appWidgetId + ".account", -1L); account = prefs.getLong("widget." + appWidgetId + ".account", -1L);
unseen = prefs.getBoolean("widget." + appWidgetId + ".unseen", false); unseen = prefs.getBoolean("widget." + appWidgetId + ".unseen", false);
flagged = prefs.getBoolean("widget." + appWidgetId + ".flagged", false); flagged = prefs.getBoolean("widget." + appWidgetId + ".flagged", false);
@ -90,6 +93,10 @@ public class WidgetUnifiedRemoteViewsFactory implements RemoteViewsService.Remot
@Override @Override
public RemoteViews getViewAt(int position) { public RemoteViews getViewAt(int position) {
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.item_widget_unified); RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.item_widget_unified);
int idFrom = (subject_top ? R.id.tvSubject : R.id.tvFrom);
int idTime = (subject_top ? R.id.tvAccount : R.id.tvTime);
int idSubject = (subject_top ? R.id.tvFrom : R.id.tvSubject);
int idAccount = (subject_top ? R.id.tvTime : R.id.tvAccount);
if (position >= messages.size()) if (position >= messages.size())
return views; return views;
@ -113,17 +120,18 @@ public class WidgetUnifiedRemoteViewsFactory implements RemoteViewsService.Remot
SpannableString ssAccount = new SpannableString(TextUtils.isEmpty(message.accountName) ? "" : message.accountName); SpannableString ssAccount = new SpannableString(TextUtils.isEmpty(message.accountName) ? "" : message.accountName);
if (!message.ui_seen) { if (!message.ui_seen) {
ssFrom.setSpan(new StyleSpan(Typeface.BOLD), 0, ssFrom.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); ssFrom.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), 0, ssFrom.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
ssTime.setSpan(new StyleSpan(Typeface.BOLD), 0, ssTime.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); ssTime.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), 0, ssTime.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
ssSubject.setSpan(new StyleSpan(Typeface.BOLD), 0, ssSubject.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); ssSubject.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), 0, ssSubject.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
ssAccount.setSpan(new StyleSpan(Typeface.BOLD), 0, ssAccount.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); ssAccount.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), 0, ssAccount.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
} }
views.setTextViewText(R.id.tvFrom, ssFrom); views.setTextViewText(idFrom, ssFrom);
views.setTextViewText(R.id.tvTime, ssTime); views.setTextViewText(idTime, ssTime);
views.setTextViewText(R.id.tvSubject, ssSubject); views.setTextViewText(idSubject, ssSubject);
views.setTextViewText(R.id.tvAccount, ssAccount); views.setTextViewText(idAccount, ssAccount);
views.setViewVisibility(R.id.tvAccount, account < 0 ? View.VISIBLE : View.GONE); views.setViewVisibility(idAccount, account < 0 ? View.VISIBLE : View.GONE);
} catch (Throwable ex) { } catch (Throwable ex) {
Log.e(ex); Log.e(ex);
} }

Loading…
Cancel
Save