diff --git a/android/app/src/main/java/com/dinect/checker/activity/CameraActivity.java b/android/app/src/main/java/com/dinect/checker/activity/CameraActivity.java index 1277533..a09ff55 100644 --- a/android/app/src/main/java/com/dinect/checker/activity/CameraActivity.java +++ b/android/app/src/main/java/com/dinect/checker/activity/CameraActivity.java @@ -61,6 +61,7 @@ import android.app.DialogFragment; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.DialogInterface; +import android.view.LayoutInflater; import com.dinect.checker.R; public class CameraActivity extends AppCompatActivity implements SurfaceHolder.Callback { @@ -75,6 +76,7 @@ public class CameraActivity extends AppCompatActivity implements SurfaceHolder.C private Handler autoFocusHandler; private int mOffset; private String mToken; + private LogoutDialogFragment mDialog; static { System.loadLibrary("iconv"); @@ -221,12 +223,14 @@ public class CameraActivity extends AppCompatActivity implements SurfaceHolder.C return true; } + + @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.logout) { - LogoutDialogFragment newFragment = new LogoutDialogFragment(); - newFragment.show(getFragmentManager(), "logout"); + mDialog = new LogoutDialogFragment(); + mDialog.show(getFragmentManager(), "logout"); return true; } else if (item.getItemId() == R.id.faq) { Intent intent = new Intent(); @@ -329,7 +333,6 @@ public class CameraActivity extends AppCompatActivity implements SurfaceHolder.C AutoFocusCallback autoFocusCallback = new AutoFocusCallback() { public void onAutoFocus(boolean success, Camera camera) { - Log.d("kifio", String.valueOf(success)); autoFocusHandler.postDelayed(doAutoFocus, 1000); } }; @@ -338,7 +341,7 @@ public class CameraActivity extends AppCompatActivity implements SurfaceHolder.C private CameraActivity mActivity; private String mCode = ""; - private String mUrl = "http://pos-api-autoclub.dinect.com/20130701/?auto="; + private String mUrl = "https://pos-api-int.dinect.com/20130701/?auto="; private String mCard = ""; private String mToken = ""; @@ -361,7 +364,7 @@ public class CameraActivity extends AppCompatActivity implements SurfaceHolder.C public void run() { Request request = new Request.Builder() - .addHeader("DM-Authorization", "dmapptoken bdea0f3ba9034b688019a7cac753d1209e2b227f") + .addHeader("DM-Authorization", "dmapptoken 9fec83cdca38c357e6b65dbb17514cdd36bf2a08") .addHeader("Authorization", "dmtoken " + mToken) .url(mUrl) .build(); @@ -384,28 +387,48 @@ public class CameraActivity extends AppCompatActivity implements SurfaceHolder.C } } + void dismissDialog() { + if (mDialog != null) { + mDialog.dismiss(); + mDialog = null; + } + } + + void logout() { + dismissDialog(); + Intent intent = new Intent(); + intent.putExtra("item", "logout"); + setResult(RESULT_OK, intent); + finish(); + } + public static class LogoutDialogFragment extends DialogFragment { + @Override public Dialog onCreateDialog(Bundle savedInstanceState) { - // Use the Builder class for convenient dialog construction AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - builder.setTitle("Подтверждение"); - builder.setMessage("Вы действительно хотите выйти и ввести другой номер магазина?") - .setPositiveButton("Да", new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("item", "logout"); - getActivity().setResult(RESULT_OK, intent); - getActivity().finish(); - } - }) - .setNegativeButton("Нет", new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - dialog.dismiss(); - } - }); - // Create the AlertDialog object and return it + LayoutInflater inflater = getActivity().getLayoutInflater(); + View content = inflater.inflate(R.layout.f_logout_dialog, null); + builder.setView(content); + View positiveButton = content.findViewById(R.id.positiveButton); + View negativeButton = content.findViewById(R.id.negativeButton); + + negativeButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View view) { + Log.d("kifio", "Negative click!"); + ((CameraActivity) getActivity()).dismissDialog(); + } + }); + + positiveButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View view) { + Log.d("kifio", "Positive click!"); + ((CameraActivity) getActivity()).logout(); + } + }); + return builder.create(); } } diff --git a/android/app/src/main/res/layout/f_logout_dialog.xml b/android/app/src/main/res/layout/f_logout_dialog.xml new file mode 100644 index 0000000..bdf22b9 --- /dev/null +++ b/android/app/src/main/res/layout/f_logout_dialog.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index 2cb1f1b..2e6899f 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -4,4 +4,8 @@ Сканировать FAQ Выход + Подтверждение + Вы действительно хотите выйти и ввести другой номер магазина? + Да + Нет \ No newline at end of file diff --git a/assets/splash_logo.png b/assets/splash_logo.png deleted file mode 100644 index a783a0c..0000000 Binary files a/assets/splash_logo.png and /dev/null differ diff --git a/assets/splash_text.png b/assets/splash_text.png new file mode 100644 index 0000000..a7b3ff4 Binary files /dev/null and b/assets/splash_text.png differ diff --git a/lib/base_state.dart b/lib/base_state.dart index 013d906..b7b9780 100644 --- a/lib/base_state.dart +++ b/lib/base_state.dart @@ -11,8 +11,6 @@ abstract class BaseState extends State { String error = null; String textFieldValue = ''; - TextEditingController controller = new TextEditingController(); - @override Widget build(BuildContext context) { return new Scaffold(appBar: getAppBar(context), body: getBody(context)); } @@ -108,7 +106,6 @@ abstract class BaseState extends State { return new TextField(keyboardType: TextInputType.number, decoration: new InputDecoration.collapsed(hintText: getHint(), hintStyle: new TextStyle(color: greyTextColor, fontSize: 16.0)), - controller: controller, onChanged: (text) => handleUserInput(text)); } diff --git a/lib/consts.dart b/lib/consts.dart index 2f42cf7..a63481b 100644 --- a/lib/consts.dart +++ b/lib/consts.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; // Serious constants -const String url = 'http://pos-api-autoclub.dinect.com/20130701/'; -const String appToken = 'bdea0f3ba9034b688019a7cac753d1209e2b227f'; +const String url = 'https://pos-api-int.dinect.com/20130701/'; +const String appToken = '9fec83cdca38c357e6b65dbb17514cdd36bf2a08'; // Hints const String merchantIDHint = 'ID магазина'; @@ -17,7 +17,7 @@ const String active_token_bg_png = 'assets/active_token_message_background.png'; const String expansion_icon_png = 'assets/expansion_icon.png'; const String powered_by_dinect_splash_png = 'assets/powered_by_dinect_splash.png'; const String powered_by_dinect_png = 'assets/powered_by_dinect.png'; -const String splash_logo_png = 'assets/splash_logo_png'; +const String splash_text_png = 'assets/splash_text.png'; // Colors const Color primaryColor = const Color(0xffeb0004); diff --git a/lib/purchase.dart b/lib/purchase.dart index 696eeb9..9994e84 100644 --- a/lib/purchase.dart +++ b/lib/purchase.dart @@ -66,6 +66,7 @@ class PurchaseScreenState extends BaseState { /// Смена состояния экрана при изменении текста в поле ввода. @override handleUserInput(String tmpString) { setState(() { + double.parse(tmpString); tmpString = tmpString.replaceAll('-', ''); tmpString = tmpString.replaceAll(',', ''); print(tmpString); @@ -85,6 +86,12 @@ class PurchaseScreenState extends BaseState { }); } + @override getTextWidget() { + return new TextField(decoration: new InputDecoration.collapsed(hintText: getHint(), + hintStyle: new TextStyle(color: greyTextColor, fontSize: 16.0)), + onChanged: (text) => handleUserInput(text)); + } + getLoyality(String url) { print(url); diff --git a/lib/splash.dart b/lib/splash.dart index 9841d82..cb3535b 100644 --- a/lib/splash.dart +++ b/lib/splash.dart @@ -18,10 +18,15 @@ class SplashScreen extends StatelessWidget { showNextScreen(context); }); - return new Stack(children: [getBackgroundContainer(), + return new Stack(children: [getBackgroundContainer(), getLogo(), new Align(alignment: FractionalOffset.bottomRight, child: - new Container(margin: new EdgeInsets.only(right: 11.0, bottom: 5.0), child: new Image.asset(powered_by_dinect_splash_png, height: 16.0, width: 122.0))), - new Center(child: new Image.asset(splash_logo_png, height: 198.0, width: 252.0))]); + new Container(margin: new EdgeInsets.only(right: 11.0, bottom: 5.0), child: new Image.asset(powered_by_dinect_splash_png, height: 16.0, width: 122.0)))]); + } + + getLogo() { + return new Center(child: new Column(mainAxisSize: MainAxisSize.min, + children: [new Image.asset(logo_png, height: 112.0, width: 252.0), + new Image.asset(splash_text_png, height: 40.0, width: 240.0)])); } getBackgroundContainer() { diff --git a/pubspec.yaml b/pubspec.yaml index 2a5b46c..3adbe6a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -28,7 +28,8 @@ flutter: - assets/expansion_icon.png - assets/powered_by_dinect_splash.png - assets/powered_by_dinect.png - - assets/splash_logo.png + - assets/registration_logo.png + - assets/splash_text.png # To add assets from package dependencies, first ensure the asset # is in the lib/ directory of the dependency. Then,