diff --git a/res/layout/about.xml b/res/layout/about.xml
index 3685953d..9381e4d7 100644
--- a/res/layout/about.xml
+++ b/res/layout/about.xml
@@ -89,9 +89,14 @@
android:singleLine="false"
android:id="@+id/textView2"
android:layout_weight="0.58" />
+
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 4518c484..7da5d456 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -74,6 +74,10 @@
Scale screen keeping aspect ratio
Specify custom screen width and height
Resolution:
- Use with caution! Some games does not support too low resolution, in case of bugs increase resolution to 640x480 or higher.\n
- Resolution lower than 320x240 is not allowed.
+
Use with caution! Some games does not support too low resolution, in case of bugs increase resolution to 640x480 or higher.\n
+ Resolution lower than 320x240 is not allowed.
+ Show firstrun dialog
+ Next
+ Prev
+ Skip
diff --git a/src/in/celest/xash3d/LauncherActivity.java b/src/in/celest/xash3d/LauncherActivity.java
index f3d99289..100dae3f 100644
--- a/src/in/celest/xash3d/LauncherActivity.java
+++ b/src/in/celest/xash3d/LauncherActivity.java
@@ -280,6 +280,8 @@ public class LauncherActivity extends Activity {
hideResolutionSettings( !enableResolutionChange );
updateResolutionResult();
toggleResolutionFields();
+ if( !mPref.getBoolean("successfulRun",false) )
+ showFirstRun();
}
void updatePath( String text )
@@ -394,11 +396,110 @@ public class LauncherActivity extends Activity {
dialog.cancel();
}
});
+ ((Button)dialog.findViewById( R.id.show_firstrun )).setOnClickListener(new View.OnClickListener(){
+ @Override
+ public void onClick(View v) {
+ dialog.cancel();
+ showFirstRun();
+ }
+ });
}
});
}
+ int m_iFirstRunCounter;
+ public void showFirstRun()
+ {
+ if(m_iFirstRunCounter < 0)
+ m_iFirstRunCounter = 0;
+ final int titleres = getResources().getIdentifier("page_title" + String.valueOf(m_iFirstRunCounter), "string", getPackageName());
+ final int contentres = getResources().getIdentifier("page_content" + String.valueOf(m_iFirstRunCounter), "string", getPackageName());
+ final Activity a = this;
+ if( titleres == 0 || contentres == 0 )
+ return;
+ this.runOnUiThread(new Runnable()
+ {
+ public void run()
+ {
+ TextView content = new TextView(LauncherActivity.this);
+ content.setText(Html.fromHtml(getResources().getText(contentres).toString(), new Html.ImageGetter(){
+
+ @Override
+ public Drawable getDrawable(String source) {
+ Drawable drawable;
+ int dourceId =
+ getApplicationContext()
+ .getResources()
+ .getIdentifier(source, "drawable", getPackageName());
+
+ drawable =
+ getApplicationContext()
+ .getResources()
+ .getDrawable(dourceId);
+
+ drawable.setBounds(
+ 0,
+ 0,
+ drawable.getIntrinsicWidth(),
+ drawable.getIntrinsicHeight());
+
+ return drawable;
+ }
+
+ }, null));
+ content.setMovementMethod(LinkMovementMethod.getInstance());
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(a)
+ .setTitle(titleres)
+ .setView(content);
+ if( sdk >= 21 )
+ {
+ builder.setPositiveButton(R.string.next, new DialogInterface.OnClickListener(){
+ public void onClick(DialogInterface d, int p1)
+ {
+ m_iFirstRunCounter++;
+ showFirstRun();
+ }
+ });
+ if( m_iFirstRunCounter > 0 )
+ builder.setNegativeButton(R.string.prev, new DialogInterface.OnClickListener(){
+ public void onClick(DialogInterface d, int p1)
+ {
+ m_iFirstRunCounter--;
+ showFirstRun();
+ }
+ });
+ builder.setNeutralButton(R.string.skip, null);
+ }
+ else
+ {
+ builder.setNegativeButton(R.string.next, new DialogInterface.OnClickListener(){
+ public void onClick(DialogInterface d, int p1)
+ {
+ m_iFirstRunCounter++;
+ showFirstRun();
+ }
+ });
+ if( m_iFirstRunCounter > 0 )
+ builder.setNeutralButton(R.string.prev, new DialogInterface.OnClickListener(){
+ public void onClick(DialogInterface d, int p1)
+ {
+ m_iFirstRunCounter--;
+ showFirstRun();
+ }
+ });
+ builder.setPositiveButton(R.string.skip,null);
+ }
+
+ builder.setCancelable(false);
+ builder.show();
+
+
+ }
+ });
+ }
+
public void selectFolder(View view)
{
Intent intent = new Intent(this, in.celest.xash3d.FPicker.class);
diff --git a/src/in/celest/xash3d/XashActivity.java b/src/in/celest/xash3d/XashActivity.java
index 1bb79363..c59ae4e9 100644
--- a/src/in/celest/xash3d/XashActivity.java
+++ b/src/in/celest/xash3d/XashActivity.java
@@ -887,6 +887,9 @@ public class XashActivity extends Activity {
public static void setTitle( String title )
{
Log.v( TAG, "setTitle(" + title + ")" );
+ SharedPreferences.Editor editor = mPref.edit();
+ editor.putBoolean("successfulRun", true);
+ editor.commit();
if( sdk < 5 )
return;