26
26
import org .apache .tools .ant .Project ;
27
27
import org .apache .tools .ant .ProjectHelper ;
28
28
29
- import android .view .Window ;
30
- import android .view .WindowManager ;
31
29
import processing .app .Base ;
32
30
import processing .app .Library ;
33
31
import processing .app .Preferences ;
@@ -170,7 +168,7 @@ public File createProject() throws IOException, SketchException {
170
168
final File resFolder = new File (tmpFolder , "res" );
171
169
writeRes (resFolder , sketchClassName );
172
170
writeMainActivity (srcFolder );
173
-
171
+
174
172
175
173
// new location for SDK Tools 17: /opt/android/tools/proguard/proguard-android.txt
176
174
// File proguardSrc = new File(sdk.getSdkFolder(), "tools/lib/proguard.cfg");
@@ -183,6 +181,8 @@ public File createProject() throws IOException, SketchException {
183
181
// InputStream input = PApplet.createInput(getCoreZipLocation());
184
182
// PApplet.saveStream(new File(libsFolder, "processing-core.jar"), input);
185
183
Base .copyFile (coreZipFile , new File (libsFolder , "processing-core.jar" ));
184
+
185
+ copySupportV4 (libsFolder );
186
186
187
187
// Copy any imported libraries (their libs and assets),
188
188
// and anything in the code folder contents to the project.
@@ -772,8 +772,8 @@ private void writeRes(File resFolder,
772
772
File mainActivityLayoutFile = new File (layoutFolder , "main.xml" );
773
773
writeResLayoutMainActivity (mainActivityLayoutFile );
774
774
775
- File mainFragmentLayoutFile = new File (layoutFolder , "fragment_main.xml" );
776
- writeResLayoutMainFragment (mainFragmentLayoutFile );
775
+ // File mainFragmentLayoutFile = new File(layoutFolder, "fragment_main.xml");
776
+ // writeResLayoutMainFragment(mainFragmentLayoutFile);
777
777
778
778
// write the icon files
779
779
File sketchFolder = sketch .getFolder ();
@@ -866,9 +866,16 @@ private File mkdirs(final File parent, final String name) throws SketchException
866
866
private void writeMainActivity (final File file ) {
867
867
File mainActivityFile = new File (file , "MainActivity.java" );
868
868
final PrintWriter writer = PApplet .createWriter (mainActivityFile );
869
- writer .println ("package " + basePackage + "." + sketch .getName ());
870
- writer .println ("import android.app.Activity;" );
871
- writer .println ("public class TestActivity extends Activity {" );
869
+ writer .println ("package " + basePackage + "." + sketch .getName () + ";" );
870
+ writer .println ("import android.support.v4.app.FragmentActivity;" );
871
+ writer .println ("import android.os.Bundle;" );
872
+ writer .println ("import android.view.Window;" );
873
+ writer .println ("import android.view.WindowManager;" );
874
+ writer .println ("import android.widget.FrameLayout;" );
875
+ writer .println ("import android.view.ViewGroup.LayoutParams;" );
876
+ writer .println ("import android.support.v4.app.FragmentTransaction;" );
877
+ writer .println ("import processing.core.PApplet;" );
878
+ writer .println ("public class MainActivity extends FragmentActivity {" );
872
879
writer .println (" PApplet fragment;" );
873
880
writer .println (" @Override" );
874
881
writer .println (" protected void onCreate(Bundle savedInstanceState) {" );
@@ -879,19 +886,19 @@ private void writeMainActivity(final File file) {
879
886
+ "WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);" );
880
887
writer .println ("window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,"
881
888
+ "WindowManager.LayoutParams.FLAG_FULLSCREEN);" );
882
- writer .println (" FrameLayout frame = new FrameLayout(this)" );
889
+ writer .println (" FrameLayout frame = new FrameLayout(this); " );
883
890
writer .println (" setContentView(frame, new LayoutParams(LayoutParams.MATCH_PARENT, "
884
891
+ "LayoutParams.MATCH_PARENT));" );
885
892
writer .println (" if (savedInstanceState == null) {" );
886
- writer .println (" fragment = new " + sketchClassName + "()" );
887
- writer .println (" FragmentTransaction ft = getFragmentManager ().beginTransaction();" );
893
+ writer .println (" fragment = new " + sketchClassName + "(); " );
894
+ writer .println (" FragmentTransaction ft = getSupportFragmentManager ().beginTransaction();" );
888
895
writer .println (" ft.add(frame.getId(), fragment).commit();" );
889
896
writer .println (" }" );
890
897
writer .println (" }" );
891
898
writer .println (" @Override" );
892
899
writer .println (" public void onBackPressed() {" );
893
900
writer .println (" fragment.onBackPressed();" );
894
- writer .println (" super.onBackPressed()" );
901
+ writer .println (" super.onBackPressed(); " );
895
902
writer .println (" }" );
896
903
writer .println ("}" );
897
904
writer .flush ();
@@ -912,7 +919,7 @@ private void writeResLayoutMainActivity(final File file) {
912
919
writer .close ();
913
920
}
914
921
915
-
922
+ /*
916
923
private void writeResLayoutMainFragment(final File file) {
917
924
final PrintWriter writer = PApplet.createWriter(file);
918
925
writer.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
@@ -922,7 +929,7 @@ private void writeResLayoutMainFragment(final File file) {
922
929
writer.println(" android:layout_height=\"fill_parent\">");
923
930
writer.println("</LinearLayout>");
924
931
}
925
-
932
+ */
926
933
927
934
// This recommended to be a string resource so that it can be localized.
928
935
// nah.. we're gonna be messing with it in the GUI anyway...
@@ -938,6 +945,22 @@ private void writeResLayoutMainFragment(final File file) {
938
945
// writer.close();
939
946
// }
940
947
948
+
949
+ private void copySupportV4 (File libsFolder ) throws SketchException {
950
+ File sdkLocation = sdk .getSdkFolder ();
951
+ File supportV4Jar = new File (sdkLocation , "extras/android/support/v4/android-support-v4.jar" );
952
+ if (!supportV4Jar .exists ()) {
953
+ SketchException sketchException =
954
+ new SketchException ("Please install support repository from SDK manager" );
955
+ throw sketchException ;
956
+ } else {
957
+ try {
958
+ Base .copyFile (supportV4Jar , new File (libsFolder , "android-support-v4.jar" ));
959
+ } catch (IOException e ) {
960
+ e .printStackTrace ();
961
+ }
962
+ }
963
+ }
941
964
942
965
/**
943
966
* For each library, copy .jar and .zip files to the 'libs' folder,
0 commit comments