@@ -171,6 +171,7 @@ public File createProject() throws IOException, SketchException {
171
171
172
172
final File resFolder = new File (tmpFolder , "res" );
173
173
writeRes (resFolder , sketchClassName );
174
+ writeSketchFragment (srcFolder );
174
175
writeMainActivity (srcFolder );
175
176
176
177
@@ -864,6 +865,73 @@ private File mkdirs(final File parent, final String name) throws SketchException
864
865
return result ;
865
866
}
866
867
868
+ private void writeSketchFragment (final File srcDirectory ) {
869
+ File sketchFragmentFile = new File (new File (srcDirectory , manifest .getPackageName ().replace ("." , "/" )),
870
+ "SketchFragment.java" );
871
+ final PrintWriter writer = PApplet .createWriter (sketchFragmentFile );
872
+ writer .println ("package " + manifest .getPackageName () +";" );
873
+ writer .println ("import android.app.Activity;" );
874
+ writer .println ("import android.os.Bundle;" );
875
+ writer .println ("import android.view.LayoutInflater;" );
876
+ writer .println ("import android.view.View;" );
877
+ writer .println ("import android.view.ViewGroup;" );
878
+ writer .println ("import android.content.res.Configuration;" );
879
+ writer .println ("import android.app.Fragment;" );
880
+ writer .println ("import processing.core.PApplet;" );
881
+ writer .println ("public class SketchFragment extends Fragment {" );
882
+ writer .println (" PApplet mPApplet;" );
883
+ writer .println (" @Override" );
884
+ writer .println (" public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {" );
885
+ writer .println (" mPApplet = new " + sketchClassName + "();" );
886
+ writer .println (" Activity activity = getActivity();" );
887
+ writer .println (" View rootView = mPApplet.onCreateView(activity);" );
888
+ writer .println (" return rootView;" );
889
+ writer .println (" }" );
890
+
891
+ writer .println (" @Override" );
892
+ writer .println (" public void onConfigurationChanged(Configuration newConfig) {" );
893
+ writer .println (" super.onConfigurationChanged(newConfig);" );
894
+ writer .println (" }" );
895
+
896
+ writer .println (" @Override" );
897
+ writer .println (" public void onResume() {" );
898
+ writer .println (" super.onResume();" );
899
+ writer .println (" mPApplet.onResume();" );
900
+ writer .println (" }" );
901
+
902
+ writer .println (" @Override" );
903
+ writer .println (" public void onPause() {" );
904
+ writer .println (" super.onPause();" );
905
+ writer .println (" mPApplet.onPause();" );
906
+ writer .println (" }" );
907
+
908
+ writer .println (" @Override" );
909
+ writer .println (" public void onDestroy() {" );
910
+ writer .println (" mPApplet.onDestroy();" );
911
+ writer .println (" super.onDestroy();" );
912
+ writer .println (" }" );
913
+
914
+ writer .println (" @Override" );
915
+ writer .println (" public void onStart() {" );
916
+ writer .println (" mPApplet.tellPDE(\" onStart\" );" );
917
+ writer .println (" super.onStart();" );
918
+ writer .println (" }" );
919
+
920
+ writer .println (" @Override" );
921
+ writer .println (" public void onStop() {" );
922
+ writer .println (" mPApplet.tellPDE(\" onStop\" );" );
923
+ writer .println (" super.onStop();" );
924
+ writer .println (" }" );
925
+
926
+ writer .println (" public void onBackPressed() {" );
927
+ writer .println (" mPApplet.onBackPressed();" );
928
+ writer .println (" }" );
929
+
930
+ writer .println ("}" );
931
+ writer .flush ();
932
+ writer .close ();
933
+
934
+ }
867
935
868
936
private void writeMainActivity (final File srcDirectory ) {
869
937
File mainActivityFile = new File (new File (srcDirectory , manifest .getPackageName ().replace ("." , "/" )),
@@ -877,9 +945,9 @@ private void writeMainActivity(final File srcDirectory) {
877
945
writer .println ("import android.widget.FrameLayout;" );
878
946
writer .println ("import android.view.ViewGroup.LayoutParams;" );
879
947
writer .println ("import android.app.FragmentTransaction;" );
880
- writer .println ("import processing.core.PApplet ;" );
948
+ writer .println ("import android.app.Fragment ;" );
881
949
writer .println ("public class MainActivity extends Activity {" );
882
- writer .println (" PApplet fragment;" );
950
+ writer .println (" SketchFragment fragment;" );
883
951
writer .println (" private static final String MAIN_FRAGMENT_TAG = \" main_fragment\" ;" );
884
952
writer .println (" int viewId = 0x1000;" );
885
953
writer .println (" @Override" );
@@ -896,11 +964,11 @@ private void writeMainActivity(final File srcDirectory) {
896
964
writer .println (" setContentView(frame, new LayoutParams(LayoutParams.MATCH_PARENT, "
897
965
+ "LayoutParams.MATCH_PARENT));" );
898
966
writer .println (" if (savedInstanceState == null) {" );
899
- writer .println (" fragment = new " + sketchClassName + " ();" );
967
+ writer .println (" fragment = new SketchFragment ();" );
900
968
writer .println (" FragmentTransaction ft = getFragmentManager().beginTransaction();" );
901
969
writer .println (" ft.add(frame.getId(), fragment, MAIN_FRAGMENT_TAG).commit();" );
902
970
writer .println (" } else {" );
903
- writer .println (" fragment = (PApplet ) getFragmentManager().findFragmentByTag(MAIN_FRAGMENT_TAG);" );
971
+ writer .println (" fragment = (SketchFragment ) getFragmentManager().findFragmentByTag(MAIN_FRAGMENT_TAG);" );
904
972
writer .println (" }" );
905
973
writer .println (" }" );
906
974
writer .println (" @Override" );
0 commit comments