diff --git a/src/main/scala/com/github/shadowsocks/BaseService.scala b/src/main/scala/com/github/shadowsocks/BaseService.scala index 4345bee3..a1b1de52 100644 --- a/src/main/scala/com/github/shadowsocks/BaseService.scala +++ b/src/main/scala/com/github/shadowsocks/BaseService.scala @@ -259,7 +259,7 @@ trait BaseService extends Service { override def onCreate() { super.onCreate() - app.refreshContainerHolder + app.refreshContainerHolder() app.updateAssets() } diff --git a/src/main/scala/com/github/shadowsocks/MainActivity.scala b/src/main/scala/com/github/shadowsocks/MainActivity.scala index 94da47e5..7e719987 100644 --- a/src/main/scala/com/github/shadowsocks/MainActivity.scala +++ b/src/main/scala/com/github/shadowsocks/MainActivity.scala @@ -327,9 +327,9 @@ class MainActivity extends Activity with ServiceBoundContext with Drawer.OnDrawe } val dialog = new AlertDialog.Builder(this) .setTitle(R.string.add_profile_dialog) - .setPositiveButton(android.R.string.yes, ((_, _) => + .setPositiveButton("Yes", ((_, _) => // TODO profiles.foreach(app.profileManager.createProfile)): DialogInterface.OnClickListener) - .setNegativeButton(android.R.string.no, null) + .setNegativeButton("No", null) .setMessage(profiles.mkString("\n")) .create() dialog.show() diff --git a/src/main/scala/com/github/shadowsocks/ProfileConfigActivity.scala b/src/main/scala/com/github/shadowsocks/ProfileConfigActivity.scala index b3e56128..426152a7 100644 --- a/src/main/scala/com/github/shadowsocks/ProfileConfigActivity.scala +++ b/src/main/scala/com/github/shadowsocks/ProfileConfigActivity.scala @@ -5,11 +5,12 @@ import android.content.DialogInterface import android.os.Bundle import android.support.v7.app.AlertDialog import android.support.v7.widget.Toolbar -import android.support.v7.widget.Toolbar.OnMenuItemClickListener import com.github.shadowsocks.ShadowsocksApplication.app import com.github.shadowsocks.utils.Key class ProfileConfigActivity extends Activity { + private lazy val child = getFragmentManager.findFragmentById(R.id.content).asInstanceOf[ProfileConfigFragment] + override def onCreate(savedInstanceState: Bundle) { super.onCreate(savedInstanceState) setContentView(R.layout.layout_profile_config) @@ -18,14 +19,14 @@ class ProfileConfigActivity extends Activity { toolbar.setNavigationIcon(R.drawable.ic_navigation_close) toolbar.setNavigationOnClickListener(_ => onBackPressed()) toolbar.inflateMenu(R.menu.profile_config_menu) - toolbar.setOnMenuItemClickListener(getFragmentManager.findFragmentById(R.id.content) - .asInstanceOf[OnMenuItemClickListener]) + toolbar.setOnMenuItemClickListener(child) } override def onBackPressed(): Unit = if (app.settings.getBoolean(Key.dirty, false)) new AlertDialog.Builder(this) - .setTitle("Confirm?") // TODO - .setPositiveButton(android.R.string.yes, ((_, _) => finish()): DialogInterface.OnClickListener) - .setNegativeButton(android.R.string.no, null) + .setTitle("Changes not saved. Do you want to save?") // TODO: localizations + .setPositiveButton("Yes", ((_, _) => child.saveAndExit()): DialogInterface.OnClickListener) + .setNegativeButton("No", ((_, _) => finish()): DialogInterface.OnClickListener) + .setNeutralButton(android.R.string.cancel, null) .create() .show() else super.onBackPressed() } diff --git a/src/main/scala/com/github/shadowsocks/ProfileConfigFragment.scala b/src/main/scala/com/github/shadowsocks/ProfileConfigFragment.scala index ce48e26e..4e7c427e 100644 --- a/src/main/scala/com/github/shadowsocks/ProfileConfigFragment.scala +++ b/src/main/scala/com/github/shadowsocks/ProfileConfigFragment.scala @@ -92,23 +92,27 @@ class ProfileConfigFragment extends PreferenceFragment with OnMenuItemClickListe case R.id.action_delete => new AlertDialog.Builder(getActivity) .setTitle("Confirm?") // TODO - .setPositiveButton(android.R.string.yes, ((_, _) => { + .setPositiveButton("Yes", ((_, _) => { app.profileManager.delProfile(profile.id) LocalBroadcastManager.getInstance(getActivity) .sendBroadcast(new Intent(Action.PROFILE_REMOVED).putExtra(Action.EXTRA_PROFILE_ID, profile.id)) getActivity.finish() }): DialogInterface.OnClickListener) - .setNegativeButton(android.R.string.no, null) + .setNegativeButton("No", null) .create() .show() true case R.id.action_apply => - profile.deserialize(app.settings) - app.profileManager.updateProfile(profile) - LocalBroadcastManager.getInstance(getActivity) - .sendBroadcast(new Intent(Action.PROFILE_CHANGED).putExtra(Action.EXTRA_PROFILE_ID, profile.id)) - getActivity.finish() + saveAndExit() true case _ => false } + + def saveAndExit() { + profile.deserialize(app.settings) + app.profileManager.updateProfile(profile) + LocalBroadcastManager.getInstance(getActivity) + .sendBroadcast(new Intent(Action.PROFILE_CHANGED).putExtra(Action.EXTRA_PROFILE_ID, profile.id)) + getActivity.finish() + } }