Add about dialog + Tips dialog

This commit is contained in:
Victor Shcherb 2013-08-11 13:25:07 +02:00
parent 3014ddb049
commit 1cf4c0529d
5 changed files with 80 additions and 3 deletions

View file

@ -7,6 +7,6 @@
<string name="ga_dispatchPeriod">10</string> <string name="ga_dispatchPeriod">10</string>
<string name="ga_debug">true</string> <string name="ga_debug">true</string>
<string name="versionFeatures">+play_market +gps_status -parking_plugin -blackberry -free_version -amazon</string> <string name="versionFeatures">+play_market +gps_status -parking_plugin -blackberry -free_version -amazon</string>
<string name="next_tips_and_tricks_not_translate"> <string name="next_tips_and_tricks_not_translate"></string>
</string> <string name="about_content">Here should be text about License, about third party GPL libraries, All rights belong to OsmAnd app.... </string>
</resources> </resources>

View file

@ -9,6 +9,10 @@
3. All your modified/created strings are in the top of the file (to make easier find what\'s translated). 3. All your modified/created strings are in the top of the file (to make easier find what\'s translated).
PLEASE: Have a look at http://code.google.com/p/osmand/wiki/UIConsistency, it may really improve your and our work :-) Thx - Hardy PLEASE: Have a look at http://code.google.com/p/osmand/wiki/UIConsistency, it may really improve your and our work :-) Thx - Hardy
--> -->
<string name="about_version">Version :</string>
<string name="about_settings">About</string>
<string name="about_settings_descr">About &#8230;</string>
<string name="tips_and_tricks">Tips</string>
<string name="tip_recent_changes_1_6_t">Changes in 1.6: <string name="tip_recent_changes_1_6_t">Changes in 1.6:
\n\t* Define/edit online tile source (specify expiration time) \n\t* Define/edit online tile source (specify expiration time)
</string> </string>

View file

@ -7,5 +7,4 @@
/> />
<!-- <Preference android:title="@string/support_new_features" android:summary="@string/support_new_features_descr" android:key="bidforfix"/> --> <!-- <Preference android:title="@string/support_new_features" android:summary="@string/support_new_features_descr" android:key="bidforfix"/> -->
</PreferenceScreen> </PreferenceScreen>

View file

@ -1251,6 +1251,17 @@ public class MapActivityActions implements DialogProvider {
} }
}).reg(); }).reg();
} }
optionsMenuHelper.item(R.string.tips_and_tricks).
icons(R.drawable.ic_action_ghelp_dark, R.drawable.ic_action_ghelp_light).
listen(new OnContextMenuClick() {
@Override
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
TipsAndTricksActivity tactivity = new TipsAndTricksActivity(mapActivity);
Dialog dlg = tactivity.getDialogToShowTips(false, true);
dlg.show();
}
}).reg();
final OsmAndLocationProvider loc = app.getLocationProvider(); final OsmAndLocationProvider loc = app.getLocationProvider();
if (app.getTargetPointsHelper().getPointToNavigate() != null) { if (app.getTargetPointsHelper().getPointToNavigate() != null) {

View file

@ -2,14 +2,31 @@ package net.osmand.plus.activities;
import java.io.File; import java.io.File;
import java.util.Date;
import net.osmand.IndexConstants; import net.osmand.IndexConstants;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin; import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.Version;
import net.osmand.plus.rastermaps.SettingsRasterMapsActivity;
import net.osmand.util.Algorithms;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.Intent; import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.os.Bundle; import android.os.Bundle;
import android.preference.Preference; import android.preference.Preference;
import android.preference.PreferenceScreen; import android.preference.PreferenceScreen;
import android.preference.Preference.OnPreferenceClickListener;
import android.text.SpannableString;
import android.text.format.DateFormat;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.util.TypedValue;
import android.view.View;
import android.widget.TextView;
public class SettingsActivity extends SettingsBaseActivity { public class SettingsActivity extends SettingsBaseActivity {
@ -25,6 +42,7 @@ public class SettingsActivity extends SettingsBaseActivity {
private Preference localIndexes; private Preference localIndexes;
private Preference general; private Preference general;
private Preference routing; private Preference routing;
private Preference about;
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
@ -52,6 +70,12 @@ public class SettingsActivity extends SettingsBaseActivity {
startActivity(new Intent(this, SettingsNavigationActivity.class)); startActivity(new Intent(this, SettingsNavigationActivity.class));
} }
} }
about = new Preference(this);
about.setOnPreferenceClickListener(this);
about.setSummary(R.string.about_settings_descr);
about.setTitle(R.string.about_settings);
about.setKey("about");
screen.addPreference(about);
} }
@Override @Override
@ -88,6 +112,9 @@ public class SettingsActivity extends SettingsBaseActivity {
} else if (preference == routing) { } else if (preference == routing) {
startActivity(new Intent(this, SettingsNavigationActivity.class)); startActivity(new Intent(this, SettingsNavigationActivity.class));
return true; return true;
} else if (preference == about) {
showAboutDialog();
return true;
} else if (preference == plugins) { } else if (preference == plugins) {
startActivityForResult(new Intent(this, OsmandIntents.getPluginsActivity()), PLUGINS_SELECTION_REQUEST); startActivityForResult(new Intent(this, OsmandIntents.getPluginsActivity()), PLUGINS_SELECTION_REQUEST);
return true; return true;
@ -97,4 +124,40 @@ public class SettingsActivity extends SettingsBaseActivity {
return false; return false;
} }
private void showAboutDialog() {
Builder bld = new AlertDialog.Builder(this);
bld.setTitle(R.string.about_settings);
TextView tv = new TextView(this);
String version = Version.getFullVersion(getMyApplication());
String vt = getString(R.string.about_version) +"\t";
int st = vt.length();
String edition = "";
try {
PackageManager pm = getPackageManager();
ApplicationInfo appInfo = pm.getApplicationInfo(OsmandApplication.class.getPackage().getName(), 0);
Date date = new Date(new File(appInfo.sourceDir).lastModified());
edition = getString(R.string.local_index_installed) +" :\t" + DateFormat.getDateFormat(getApplicationContext()).format(date);
} catch(Exception e) {
}
SpannableString content = new SpannableString(vt + version +"\n" +
edition +"\n\n"+
getString(R.string.about_content));
content.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
final Intent mapIntent = new Intent(SettingsActivity.this, ContributionVersionActivity.class);
startActivityForResult(mapIntent, 0);
}
}, st, st + version.length(), 0);
tv.setText(content);
tv.setPadding(5, 0, 5, 5);
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 19);
tv.setMovementMethod(LinkMovementMethod.getInstance());
bld.setView(tv);
bld.setPositiveButton(R.string.default_buttons_ok, null);
bld.show();
}
} }