/* * * * Corporation and its licensors retain all intellectual property * and proprietary rights in and to this software, related documentation * and any modifications thereto. Any use, reproduction, disclosure or * distribution of this software and related documentation without an express * license agreement from BYD Corporation is strictly prohibited. * * File Name: bp_log.c * * General Description: This file implements all the bp panic block log functions. * * * Date Author CR/PR Reference * ======== ======== ========== ========================== * 2011-1-26 hjh T601T_P000421 should add "Alternative picture settings" for Video call settings * 2011-2-12 hjhT601T_P000903 rehab VT alternative image */
package com.android.phone;
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.nio.ByteBuffer;
import javax.xml.transform.stream.StreamSource;
import android.app.Activity;import android.app.AlertDialog;import android.content.ComponentName;import android.content.ContentResolver;import android.content.Context;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.net.Uri;import android.opengl.Visibility;import android.os.Bundle;import android.provider.Settings;import android.util.Log;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;
public class AlternativeImage extends Activity { public static String VT_ALTERNATIVE_SETTING="vt_alternative_image_url"; public static String VT_ALTERNATIVE_IMAGE_DEFAULT_URL="/data/data/com.android.phone/temp/default.raw"; public static String VT_ALTERNATIVE_IMAGE_NEW_URL="/data/data/com.android.phone/temp/new.raw"; public static String VT_TEMP="/data/data/com.android.phone/temp"; private int mBitmapSize = 0; //T601T_P000903 hjh public static String VT_IS_ENABLE="vt_alternative_enable"; Button edit; Button unenable; Button enable; Button reset; ImageView mImageView; private static final int menuId=Menu.FIRST; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.image_instead); edit=(Button)findViewById(R.id.Edit); unenable=(Button)findViewById(R.id.Unenable); enable=(Button)findViewById(R.id.enable); mImageView=(ImageView)findViewById(R.id.imageUrl); edit.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent imageIntent = new Intent(Intent.ACTION_GET_CONTENT,null); imageIntent.setType("image/*"); //T601T_P000903 hjh --begin-- ComponentName comp = new ComponentName("com.cooliris.media","com.cooliris.media.Gallery"); imageIntent.setComponent(comp); // --end-- imageIntent.putExtra("crop", "true"); imageIntent.putExtra("aspectX", 1); imageIntent.putExtra("aspectY", 1); imageIntent.putExtra("outputX", 176); imageIntent.putExtra("outputY", 144); imageIntent.putExtra("return-data", true); startActivityForResult(imageIntent, 1); } }); unenable.setOnClickListener(new OnClickListener() { public void onClick(View v) { putAbleVlue("0"); updateScreen(); } }); enable.setOnClickListener(new OnClickListener() { public void onClick(View v) { putAbleVlue("1"); updateScreen(); } }); File destDir = new File(VT_TEMP); if (!destDir.exists()) { destDir.mkdirs(); } File defaultImage=new File(VT_ALTERNATIVE_IMAGE_DEFAULT_URL); if(!defaultImage.exists()) { Bitmap bitmap=BitmapFactory.decodeResource(this.getResources(), R.drawable.background); try { SaveMyBitmap(bitmap,VT_ALTERNATIVE_IMAGE_DEFAULT_URL); } catch(IOException e) {} }
} @Override protected void onResume() { Log.i("++alternativeImage onResume++","++"); updateScreen(); super.onResume(); } @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); menu.add(0, menuId, 0,R.string.vt_alternative_image_reset); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case menuId: putSrc(VT_ALTERNATIVE_IMAGE_DEFAULT_URL); updateScreen(); } return super.onOptionsItemSelected(item); }
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { Log.i("alternativer onActivityResult+++","++++"); if(resultCode==RESULT_OK) { final Bitmap bitmap=data.getParcelableExtra("data"); putSrc(VT_ALTERNATIVE_IMAGE_NEW_URL); try { SaveMyBitmap(bitmap, VT_ALTERNATIVE_IMAGE_NEW_URL); } catch(IOException e) {} } super.onActivityResult(requestCode, resultCode, data); } public void SaveMyBitmap(Bitmap bitmap,String src) throws IOException { int width,height; width = bitmap.getWidth(); height = bitmap.getHeight(); mBitmapSize=width*height*4; File f=new File(src); f.createNewFile(); try{ OutputStream fout=new FileOutputStream(f);// bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fout);// fout.flush();// fout.close(); ByteBuffer mBuf = ByteBuffer.allocate(mBitmapSize); Bitmap FuBitmap=bitmap.copy(Bitmap.Config.RGB_565, false); FuBitmap.copyPixelsToBuffer(mBuf); fout.write(mBuf.array()); fout.close(); } catch(FileNotFoundException e) { e.printStackTrace(); } } public void putSrc(String src) { Log.i("putSrc++","++"); if(Settings.System.putString(this.getContentResolver(), VT_ALTERNATIVE_SETTING, src)) { Log.i("putSrc+++","++true"); } } public void readSrcFromData() { String src=Settings.System.getString(this.getContentResolver(),VT_ALTERNATIVE_SETTING); Log.i("readSrcFromData+++","++src="+src); File file=new File(src); if(!file.exists()) { file=new File(VT_ALTERNATIVE_IMAGE_DEFAULT_URL); } byte[] data=new byte[(int)file.length()]; try{ InputStream ip=new FileInputStream(file); ip.read(data); Bitmap bb=Bitmap.createBitmap(176, 144, Bitmap.Config.RGB_565); ByteBuffer buf=ByteBuffer.wrap(data); bb.copyPixelsFromBuffer(buf); mImageView.setImageBitmap(bb); ip.close(); } catch(Exception e) {} } public void updateScreen() { readSrcFromData(); if(readAbleVlueFromDate().equals("1")) { edit.setVisibility(View.VISIBLE); unenable.setVisibility(View.VISIBLE); enable.setVisibility(View.GONE); } else { edit.setVisibility(View.GONE); unenable.setVisibility(View.GONE); enable.setVisibility(View.VISIBLE); } } public String readAbleVlueFromDate() { return Settings.System.getString(this.getContentResolver(),VT_IS_ENABLE); } public void putAbleVlue(String value) { if(Settings.System.putString(this.getContentResolver(), VT_IS_ENABLE, value)) { Log.i("putSrc+++","++true"); } }}