1616
1717import com .fazziclay .opentoday .R ;
1818import com .fazziclay .opentoday .app .App ;
19+ import com .fazziclay .opentoday .app .FeatureFlag ;
1920import com .fazziclay .opentoday .app .items .ItemManager ;
2021import com .fazziclay .opentoday .app .items .ItemsStorage ;
2122import com .fazziclay .opentoday .app .items .Selection ;
2223import com .fazziclay .opentoday .app .items .callback .OnItemsStorageUpdate ;
2324import com .fazziclay .opentoday .app .items .callback .OnSelectionChanged ;
25+ import com .fazziclay .opentoday .app .items .item .ExperimentalTransform ;
2426import com .fazziclay .opentoday .app .items .item .Item ;
2527import com .fazziclay .opentoday .app .items .item .TextItem ;
2628import com .fazziclay .opentoday .app .settings .SettingsManager ;
2729import com .fazziclay .opentoday .callback .CallbackImportance ;
2830import com .fazziclay .opentoday .callback .Status ;
31+ import com .fazziclay .opentoday .ui .dialog .DialogSelectItemType ;
2932import com .fazziclay .opentoday .ui .dialog .DialogTextItemEditText ;
3033import com .fazziclay .opentoday .ui .interfaces .ItemInterface ;
3134import com .fazziclay .opentoday .ui .interfaces .StorageEditsActions ;
@@ -331,7 +334,8 @@ private void actionItem(Item item, SettingsManager.ItemAction action) {
331334 }
332335
333336 private void showRightMenu (Item item , View itemView ) {
334- ItemManager itemManager = App .get (activity ).getItemManager ();
337+ App app = App .get (activity );
338+ ItemManager itemManager = app .getItemManager ();
335339 PopupMenu menu = new PopupMenu (activity , itemView );
336340 menu .setForceShowIcon (true );
337341 menu .inflate (R .menu .menu_item );
@@ -342,6 +346,7 @@ private void showRightMenu(Item item, View itemView) {
342346 TextItem textItem = (TextItem ) item ;
343347 menu .getMenu ().findItem (R .id .textItem_clickableUrls ).setChecked (textItem .isClickableUrls ());
344348 }
349+ menu .getMenu ().findItem (R .id .transform ).setVisible (app .isFeatureFlag (FeatureFlag .EXPERIMENTAL_TRANSFORM ));
345350 menu .setOnMenuItemClickListener (menuItem -> {
346351 boolean save = false ;
347352 SettingsManager .ItemAction itemAction = null ;
@@ -391,6 +396,19 @@ private void showRightMenu(Item item, View itemView) {
391396 d .show ();
392397 }
393398 break ;
399+
400+ case R .id .transform :
401+ new DialogSelectItemType (activity , type -> {
402+ ExperimentalTransform .Transform transform = ExperimentalTransform .transform (item , type );
403+ if (transform .isAllow ()) {
404+ int pos = itemsStorage .getItemPosition (item );
405+ itemsStorage .addItem (transform .getResult (), pos + 1 );
406+
407+ } else {
408+ Toast .makeText (activity , R .string .transform_not_allowed , Toast .LENGTH_SHORT ).show ();
409+ }
410+ }).show ();
411+ break ;
394412 }
395413
396414 if (itemAction != null ) actionItem (item , itemAction );
0 commit comments