Changeset 2ff9cec in dispositivos_moviles for TibisayMovil/src/ve/gob/cenditel/tibisaymovil/PreferencesActivity.java
- Timestamp:
- Oct 30, 2013, 5:37:46 PM (11 years ago)
- Branches:
- master
- Children:
- 16fd839
- Parents:
- 931bb65
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TibisayMovil/src/ve/gob/cenditel/tibisaymovil/PreferencesActivity.java
r288126d r2ff9cec 1 1 package ve.gob.cenditel.tibisaymovil; 2 import java.io.File; 3 4 import android.content.Intent; 5 import android.content.SharedPreferences; 6 import android.database.Cursor; 7 import android.graphics.Bitmap; 8 import android.graphics.BitmapFactory; 9 import android.net.Uri; 2 10 import android.os.Bundle; 11 import android.preference.ListPreference; 12 import android.preference.Preference; 13 import android.preference.Preference.OnPreferenceChangeListener; 14 import android.preference.Preference.OnPreferenceClickListener; 3 15 import android.preference.PreferenceActivity; 16 import android.provider.MediaStore; 17 import android.view.Window; 18 import android.widget.Toast; 4 19 5 public class PreferencesActivity extends PreferenceActivity { 20 public class PreferencesActivity extends PreferenceActivity implements OnPreferenceClickListener,OnPreferenceChangeListener{ 21 22 static final int PICK_IMAGE = 33; 23 public static final String imageKey = "image"; 24 public static final String positionKey = "position"; 25 private static final int MAXWIDTH = 400; 26 private static final int MAXHEIGHT = 400; 27 private static final long SIZELIMIT = 1024 * 1024; 28 29 private SharedPreferences options; 30 private Preference imagePreference; 31 6 32 @Override 7 33 public void onCreate(Bundle savedInstanceState) { 34 //Estilando la barra de titulo 35 final boolean customTitleSupported = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 36 8 37 super.onCreate(savedInstanceState); 9 38 10 39 addPreferencesFromResource(R.xml.preferences); 40 41 this.options = this.getPreferenceManager().getSharedPreferences(); 42 43 44 45 46 this.imagePreference = (Preference) findPreference(PreferencesActivity.imageKey); 47 this.imagePreference.setOnPreferenceClickListener(this); 48 this.imagePreference.setOnPreferenceChangeListener(this); 49 50 this.loadSummary(); 51 52 53 //Estilando Barra de titulo 54 if(customTitleSupported) 55 getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_bar); 56 11 57 } 58 59 private void loadSummary() { 60 String path = options.getString(PreferencesActivity.imageKey, ""); 61 if (!path.equals("")){ 62 this.imagePreference.setSummary(path); 63 } 64 65 } 66 67 68 69 @Override 70 public boolean onPreferenceChange(Preference preference, Object newValue) { 71 String summary=""; 72 73 74 if (summary!=null && !summary.equals("")){ 75 preference.setSummary((CharSequence) summary); 76 77 } 78 return true; 79 } 80 81 82 83 @Override 84 public boolean onPreferenceClick(Preference preference) { 85 86 if (preference.getKey().equals(PreferencesActivity.imageKey)){ 87 Intent i = new Intent( 88 Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 89 startActivityForResult(i, PreferencesActivity.PICK_IMAGE); 90 return true; 91 } 92 return false; 93 } 94 95 protected void onActivityResult(int requestCode, int resultCode, Intent data) { 96 super.onActivityResult(requestCode, resultCode, data); 97 98 99 if (requestCode == PreferencesActivity.PICK_IMAGE && resultCode == RESULT_OK){ 100 101 Uri selectedImage = data.getData(); 102 String[] filePathColumn = { MediaStore.Images.Media.DATA }; 103 104 Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null); 105 cursor.moveToFirst(); 106 107 int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 108 String imageSelectedPath = cursor.getString(columnIndex); 109 cursor.close(); 110 111 //Filter images if wrong format. 112 boolean validImage = this.validateImage(imageSelectedPath); 113 114 if (validImage==true){ 115 //Save and edit summary text in user interface. 116 SharedPreferences.Editor editor = this.options.edit(); 117 editor.putString(PreferencesActivity.imageKey, imageSelectedPath); 118 editor.commit(); 119 this.imagePreference.setSummary(imageSelectedPath); 120 } 121 122 123 124 } 125 126 127 128 129 } 130 131 //Check image dimensions and format. 132 private boolean validateImage(String imageSelectedPath) { 133 File f = new File(imageSelectedPath); 134 long size = f.length(); 135 136 if (size <= (PreferencesActivity.SIZELIMIT)) { 137 138 Bitmap chosenImage = BitmapFactory.decodeFile(imageSelectedPath); 139 140 if (chosenImage !=null) 141 return this.checkDimensions(chosenImage); 142 else{ 143 Toast.makeText(this, this.getString(R.string.errorformat),Toast.LENGTH_SHORT).show(); 144 return false; 145 } 146 147 } else { 148 Toast.makeText(this, this.getString(R.string.errorsize)+" "+(PreferencesActivity.SIZELIMIT)/(1024*1024)+"MB",Toast.LENGTH_SHORT).show(); 149 return false; 150 } 151 152 153 154 } 155 156 157 private boolean checkDimensions(Bitmap chosenImage) { 158 159 int width = chosenImage.getWidth(); 160 int height = chosenImage.getHeight(); 161 162 if (width <= PreferencesActivity.MAXWIDTH && height <= PreferencesActivity.MAXHEIGHT) { 163 return true; 164 165 } else { 166 167 Toast.makeText( this,this.getString(R.string.errordimension) +" "+ PreferencesActivity.MAXWIDTH 168 + "x" + PreferencesActivity.MAXHEIGHT,Toast.LENGTH_SHORT).show(); 169 return false; 170 } 171 } 172 173 174 175 12 176 }
Note: See TracChangeset
for help on using the changeset viewer.