package ru.p100c.barcodeservice;

import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.IBinder;


import com.cipherlab.barcode.*;
import com.cipherlab.barcode.decoder.*;


import com.cipherlab.barcode.ReaderManager;

public class BarcodeService extends Service {
    private com.cipherlab.barcode.ReaderManager mReaderManager;
    private IntentFilter filter;
    public static final String SEND_BARCODE = "ru.p100c.barcodedll.TRUSTCONNECT";

    @Override
    public void onDestroy() {
        unregisterReceiver(myDataReceiver);
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        mReaderManager = ReaderManager.InitInstance(this);
        filter = new IntentFilter();
        filter.addAction(com.cipherlab.barcode.GeneralString.Intent_SOFTTRIGGER_DATA);
        filter.addAction(com.cipherlab.barcode.GeneralString.Intent_PASS_TO_APP);
        filter.addAction(com.cipherlab.barcode.GeneralString.Intent_READERSERVICE_CONNECTED);
        registerReceiver(myDataReceiver, filter);
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        return Service.START_STICKY;
    }

    private final BroadcastReceiver myDataReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(GeneralString.Intent_PASS_TO_APP)){
                //Внешние событие считывания штрих кода
                String data = intent.getStringExtra(GeneralString.BcReaderData);
                sendMessage("barcode",data);

            }else if(intent.getAction().equals(GeneralString.Intent_READERSERVICE_CONNECTED)){
                //Вызывается при начале работы сервиса считывания штрих кодов
                BcReaderType myReaderType =  mReaderManager.GetReaderType();
                sendMessage("Rocket lunch","good morning moon");
            }

        }
    };

    private void sendMessage(String title,String text) {
        //Кусок из 1С используем как шаблон для отправки сообщений
        /*localObject = new Intent(paramContext, LocalNotificationReceiver.class);
        ((Intent)localObject).putExtra("text", paramString1);
        ((Intent)localObject).putExtra("base", paramString4);
        if ((paramString3 != null) && (!paramString3.isEmpty()))
            ((Intent)localObject).putExtra("data", paramString3);
        if ((paramString2 != null) && (!paramString2.isEmpty()))
            ((Intent)localObject).putExtra("title", paramString2);
        ((Intent)localObject).putExtra("sound", paramString5);
        ((Intent)localObject).putExtra("badge", paramInt);
        paramString1 = PendingIntent.getBroadcast(paramContext, j, (Intent)localObject, 0);
        paramContext = (AlarmManager)paramContext.getSystemService("alarm");*/
        Intent intent = new Intent();
        intent.setAction(SEND_BARCODE);
        intent.putExtra("text", text); //Основной текст сообщения
        intent.putExtra("base", "");
        intent.putExtra("title", title); //Будем использовать для определения действия
        sendBroadcast(intent);
    }

}
