Read qrcode from assitant

This commit is contained in:
Erwan Croze 2018-05-16 10:58:52 +02:00
parent 1e1db71a00
commit 8ff76c100d
4 changed files with 28 additions and 15 deletions

View file

@ -193,16 +193,6 @@ private static AssistantActivity instance;
} }
} }
} }
@Override
public void onQrcodeFound(Core lc, String result) {
AlertDialog.Builder builder = new AlertDialog.Builder(AssistantActivity.instance());
builder.setMessage("QRCODE found: " + result);
builder.setCancelable(false);
builder.setNeutralButton(getString(R.string.ok), null);
builder.show();
}
}; };
instance = this; instance = this;
} }
@ -322,7 +312,7 @@ private static AssistantActivity instance;
displayCreateAccount(); displayCreateAccount();
} }
} else if (currentFragment == AssistantFragmentsEnum.QRCODE_READER) { } else if (currentFragment == AssistantFragmentsEnum.QRCODE_READER) {
displayRemoteProvisioning(); displayRemoteProvisioning("");
} }
} }
@ -515,8 +505,11 @@ private static AssistantActivity instance;
back.setVisibility(View.VISIBLE); back.setVisibility(View.VISIBLE);
} }
public void displayRemoteProvisioning() { public void displayRemoteProvisioning(String url) {
fragment = new RemoteProvisioningFragment(); fragment = new RemoteProvisioningFragment();
Bundle extra = new Bundle();
extra.putString("RemoteUrl", url);
fragment.setArguments(extra);
changeFragment(fragment); changeFragment(fragment);
currentFragment = AssistantFragmentsEnum.REMOTE_PROVISIONING; currentFragment = AssistantFragmentsEnum.REMOTE_PROVISIONING;
back.setVisibility(View.VISIBLE); back.setVisibility(View.VISIBLE);

View file

@ -20,19 +20,22 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/ */
import android.app.Fragment; import android.app.Fragment;
import android.opengl.GLSurfaceView;
import android.os.Bundle; import android.os.Bundle;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.SurfaceView; import android.view.SurfaceView;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.R; import org.linphone.R;
import org.linphone.core.Core;
import org.linphone.core.CoreListenerStub;
import org.linphone.mediastream.video.AndroidVideoWindowImpl; import org.linphone.mediastream.video.AndroidVideoWindowImpl;
import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration; import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration;
public class QrcodeFragment extends Fragment { public class QrcodeFragment extends Fragment {
private SurfaceView mQrcodeView; private SurfaceView mQrcodeView;
private CoreListenerStub mListener;
private AndroidVideoWindowImpl androidVideoWindowImpl; private AndroidVideoWindowImpl androidVideoWindowImpl;
@Override @Override
@ -42,12 +45,26 @@ public class QrcodeFragment extends Fragment {
mQrcodeView = (SurfaceView) view.findViewById(R.id.qrcodeCaptureSurface); mQrcodeView = (SurfaceView) view.findViewById(R.id.qrcodeCaptureSurface);
mListener = new CoreListenerStub() {
@Override
public void onQrcodeFound(Core lc, String result) {
enableQrcodeReader(false);
AssistantActivity.instance().displayRemoteProvisioning(result);
}
};
return view; return view;
} }
private void enableQrcodeReader(boolean enable) { private void enableQrcodeReader(boolean enable) {
LinphoneManager.getLc().enableQrcodeVideoPreview(enable); LinphoneManager.getLc().enableQrcodeVideoPreview(enable);
LinphoneManager.getLc().enableVideoPreview(enable); LinphoneManager.getLc().enableVideoPreview(enable);
if (enable) {
LinphoneManager.getLc().addListener(mListener);
} else {
LinphoneManager.getLc().removeListener(mListener);
}
} }
private void setBackCamera(boolean useBackCamera) { private void setBackCamera(boolean useBackCamera) {
@ -84,7 +101,6 @@ public class QrcodeFragment extends Fragment {
}); });
enableQrcodeReader(true); enableQrcodeReader(true);
//LinphoneManager.getLc().setQrcodeDecodeRect(500,220,280,280);
} }
@Override @Override

View file

@ -53,6 +53,10 @@ public class RemoteProvisioningFragment extends Fragment implements OnClickListe
apply.setEnabled(false); apply.setEnabled(false);
apply.setOnClickListener(this); apply.setOnClickListener(this);
if (!getArguments().getString("RemoteUrl").isEmpty()) {
remoteProvisioningUrl.setText(getArguments().getString("RemoteUrl"));
}
return view; return view;
} }

View file

@ -72,7 +72,7 @@ public class WelcomeFragment extends Fragment implements OnClickListener {
} else if (id == R.id.create_account) { } else if (id == R.id.create_account) {
AssistantActivity.instance().displayCreateAccount(); AssistantActivity.instance().displayCreateAccount();
} else if (id == R.id.remote_provisioning) { } else if (id == R.id.remote_provisioning) {
AssistantActivity.instance().displayRemoteProvisioning(); AssistantActivity.instance().displayRemoteProvisioning("");
} }
} }
} }