package tw.jwzhuang.ipcam.qrcode;
import org.json.JSONException;
import org.json.JSONObject;
import tw.jwzhuang.ipcam.R;
import tw.jwzhuang.ipcam.Utils;
import android.app.Activity;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.Point;
import android.os.Bundle;
import android.util.Log;
import android.widget.ImageView;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.WriterException;
public class Match extends Activity {
private SharedPreferences mSharedPreferences = null;
private String randomcode;
private String localIP;
private ImageView qrcodeImg = null;
private Bitmap bmp = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.match);
qrcodeImg = (ImageView) findViewById(R.id.img_qrcode);
mSharedPreferences = getSharedPreferences("code", MODE_PRIVATE);
initParmas();
}
@Override
protected void onResume() {
super.onResume();
try {
generateQRCode();
} catch (JSONException | WriterException e) {
Log.e(Match.class.getSimpleName(), e.getMessage());
}
}
@Override
protected void onPause() {
qrcodeImg.setImageBitmap(null);
if(bmp != null){
bmp.recycle();
}
super.onPause();
}
private void initParmas(){
randomcode = mSharedPreferences.getString("randomcode","");
if(randomcode.isEmpty()){
randomcode = Utils.pwdGenerator(4, 4);
mSharedPreferences.edit().putString("randomcode", randomcode).commit();
}
localIP = Utils.getLocalIpAddress();
}
private void generateQRCode() throws JSONException, WriterException{
JSONObject jobj = new JSONObject();
jobj.put("ip", localIP);
jobj.put("pwd",randomcode);
Point size = Utils.getScreenSize(getWindowManager());
int dimension = size.x < size.y ? size.x : size.y;
dimension = (int) (dimension * 0.75);
QRCodeEncoder qrEncoder = new QRCodeEncoder(jobj.toString(),BarcodeFormat.QR_CODE,dimension);
bmp = qrEncoder.encodeAsBitmap();
qrcodeImg.setImageBitmap(bmp);
}
}